当前位置:首页 > CSS

css制作扇形图

2026-02-12 14:52:36CSS

使用CSS制作扇形图

利用conic-gradient实现基础扇形

通过CSS的conic-gradient可以快速创建扇形效果。定义一个圆形元素并应用角度渐变色:

.pie-chart {
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: conic-gradient(
    #FF6384 0% 30%, 
    #36A2EB 30% 70%,
    #FFCE56 70% 100%
  );
}

其中百分比值控制各扇区的角度范围,颜色值可自定义。

通过transformclip-path创建单个扇区

需要单独控制某个扇区时,可组合使用旋转和裁剪:

css制作扇形图

.sector {
  width: 100px;
  height: 100px;
  background: #4CAF50;
  border-radius: 100% 0 0 0;
  transform-origin: right bottom;
  transform: rotate(45deg);
  clip-path: polygon(0 0, 100% 0, 100% 100%);
}

调整rotate()角度和clip-path形状可改变扇区大小。

使用伪元素构建半圆扇区

通过::before::after创建半圆效果:

css制作扇形图

.half-circle {
  position: relative;
  width: 200px;
  height: 100px;
  overflow: hidden;
}
.half-circle::after {
  content: '';
  position: absolute;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: #3498db;
  clip-path: polygon(0 0, 100% 0, 50% 50%);
}

SVG与CSS结合方案

更精确的控制可以使用内联SVG配合CSS样式:

<svg viewBox="0 0 100 100" class="svg-pie">
  <path d="M50 50 L50 0 A50 50 0 0 1 100 50 Z" fill="#e74c3c"/>
</svg>

通过修改SVG路径的d属性和CSS填充色实现动态效果。

动画效果实现

为扇形添加旋转动画增强交互性:

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
.animated-sector {
  animation: spin 3s linear infinite;
}

关键点在于合理组合CSS的图形处理属性,现代浏览器对conic-gradient的支持已较完善,但需要针对旧版本浏览器提供降级方案。动态数据展示建议结合JavaScript实时计算角度值。

标签: 扇形css
分享给朋友:

相关文章

css制作

css制作

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。其基本语法由选择器和声明块组成。选择器指定要样式化的HTML元素,声明块包含一个或多个属性-值对,用花括号 {} 包裹。 select…

css 制作导航

css 制作导航

基础导航栏制作 使用HTML和CSS创建一个水平导航栏。HTML结构通常使用<ul>和<li>标签,CSS负责样式布局。 <nav> <ul clas…

怎么制作css

怎么制作css

创建CSS文件 新建一个文本文件,将文件扩展名改为.css。例如styles.css。确保文件名简洁且能反映其用途。 编写CSS基础结构 CSS由选择器和声明块组成。选择器用于指定要样式化的HTM…

css 制作表格

css 制作表格

基础表格结构 使用HTML的<table>标签创建表格框架,搭配<tr>(行)、<th>(表头)和<td>(单元格)标签。例如: <table&…

css 导航栏制作

css 导航栏制作

水平导航栏制作 使用无序列表<ul>和<li>标签构建基础结构,通过CSS将列表项横向排列 <nav> <ul class="horizontal-na…

css制作圆形

css制作圆形

使用 border-radius 属性 通过设置 border-radius 为 50%,可以将元素变为圆形。元素的宽度和高度需相同,否则会呈现椭圆形。 .circle { width:…