css制作charts
CSS 制作图表的方法
使用纯CSS制作图表可以通过多种方式实现,包括利用CSS属性如background、transform和伪元素等。以下是几种常见的方法:
柱状图(Bar Chart)
通过CSS的height和background属性可以创建简单的柱状图。每个柱子可以用一个div元素表示,高度通过百分比控制。

<div class="bar-chart">
<div class="bar" style="height: 60%;"></div>
<div class="bar" style="height: 30%;"></div>
<div class="bar" style="height: 80%;"></div>
</div>
.bar-chart {
display: flex;
height: 200px;
align-items: flex-end;
gap: 10px;
}
.bar {
width: 40px;
background: #4285f4;
}
饼图(Pie Chart)
使用CSS的conic-gradient可以创建饼图。通过设置不同的颜色角度来划分比例。
<div class="pie-chart"></div>
.pie-chart {
width: 100px;
height: 100px;
border-radius: 50%;
background: conic-gradient(
#4285f4 0% 30%,
#ea4335 30% 60%,
#fbbc05 60% 100%
);
}
折线图(Line Chart)
折线图可以通过CSS的border和transform属性模拟。使用多个div元素连接成线。

<div class="line-chart">
<div class="point" style="left: 10%; bottom: 20%;"></div>
<div class="point" style="left: 30%; bottom: 50%;"></div>
<div class="point" style="left: 50%; bottom: 30%;"></div>
</div>
.line-chart {
position: relative;
height: 200px;
width: 100%;
border-bottom: 1px solid #ccc;
border-left: 1px solid #ccc;
}
.point {
position: absolute;
width: 10px;
height: 10px;
background: #4285f4;
border-radius: 50%;
transform: translate(-50%, 50%);
}
动画效果
通过CSS的@keyframes可以为图表添加动画效果,例如柱状图的增长动画。
.bar {
animation: grow 1s ease-out forwards;
}
@keyframes grow {
from { height: 0%; }
to { height: var(--height); }
}
响应式设计
使用CSS的calc()和vw单位可以确保图表在不同屏幕尺寸下适配。
.bar-chart {
height: calc(100vw / 2);
}
注意事项
- 纯CSS图表适合简单需求,复杂图表建议使用JavaScript库(如Chart.js或D3.js)。
- 确保图表在无障碍环境下可用,例如为屏幕阅读器添加
aria-label。 - 测试不同浏览器的兼容性,尤其是
conic-gradient等较新的CSS特性。
以上方法提供了基础的CSS图表实现方案,可以根据实际需求调整样式和交互效果。






