当前位置:首页 > CSS

css制作圆环扇形

2026-03-11 20:11:06CSS

使用 CSS 制作圆环扇形

方法一:利用 conic-gradient 和伪元素

conic-gradient 可以创建圆锥渐变,适合制作扇形效果。结合伪元素和 border-radius 可以实现圆环扇形。

css制作圆环扇形

.ring-sector {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: conic-gradient(red 0deg 90deg, transparent 90deg);
  position: relative;
}

.ring-sector::after {
  content: '';
  position: absolute;
  width: 140px;
  height: 140px;
  background: white;
  border-radius: 50%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
  • conic-gradient 定义扇形角度范围(如 0deg 90deg 表示 0° 到 90° 的红色扇形)。
  • 伪元素 ::after 通过绝对定位覆盖中心部分,形成圆环效果。

方法二:使用 SVG 实现

SVG 的 pathcircle 元素可以更灵活地绘制扇形圆环。

css制作圆环扇形

<svg width="200" height="200" viewBox="0 0 200 200">
  <path d="M100,100 L100,0 A100,100 0 0 1 170,50 L100,100 Z" fill="red" />
  <circle cx="100" cy="100" r="70" fill="white" />
</svg>
  • pathd 属性通过贝塞尔曲线和圆弧命令绘制扇形。
  • circle 覆盖中心区域形成圆环。

方法三:CSS 旋转与裁剪

通过旋转和 overflow: hidden 裁剪实现动态扇形。

.pie {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: red;
  position: relative;
  overflow: hidden;
}

.slice {
  position: absolute;
  width: 100%;
  height: 100%;
  background: transparent;
  transform-origin: center;
  clip: rect(0, 100px, 200px, 0);
  transform: rotate(45deg);
}

.inner-circle {
  width: 140px;
  height: 140px;
  background: white;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
  • .slice 通过 cliprotate 控制扇形角度。
  • .inner-circle 形成圆环内圈。

注意事项

  • conic-gradient 兼容性较好,但需检查目标浏览器支持。
  • SVG 方案适合复杂图形或动画需求。
  • 动态调整角度时,CSS 旋转方案需配合 JavaScript 计算。

标签: 扇形圆环
分享给朋友:

相关文章

vue实现圆环

vue实现圆环

实现圆环的基本方法 在Vue中实现圆环可以通过多种方式完成,常见的有使用CSS样式、SVG或Canvas。以下是几种常见的方法: 使用CSS样式 通过CSS的border-radius属性可以轻松创…

vue实现多个圆环

vue实现多个圆环

使用 SVG 实现多个圆环 SVG 是绘制圆环的高效方式,适合动态调整样式。以下是一个基于 Vue 的示例: <template> <svg width="200"…

css制作圆环

css制作圆环

使用 border-radius 和 border 属性 通过设置元素的 border-radius 为 50% 将其变为圆形,再通过 border 属性控制圆环的宽度和颜色。调整 width 和 h…

css 制作扇形

css 制作扇形

使用 CSS 制作扇形 通过 CSS 的 border-radius 和 clip-path 属性可以轻松实现扇形效果。以下是几种常见方法: 使用 border-radius 和 transform…

vue实现扇形进度

vue实现扇形进度

Vue 实现扇形进度条 使用 SVG 绘制扇形 SVG 提供了一种灵活的方式来绘制扇形进度条。可以通过 path 元素结合 d 属性动态生成扇形路径。 <template> <…

vue实现扇形图表

vue实现扇形图表

使用 SVG 实现扇形图表 在 Vue 中可以通过 SVG 的 <path> 元素绘制扇形。SVG 的路径数据 (d 属性) 使用极坐标公式计算扇形的起点和终点。 扇形路径计算公式:…