比如大家可以利用CSS3的transform属性来制作饼图。代码如下:
.pie { width: 200px; height: 200px; border-radius: 50%; position: relative; } .pie::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 50%; clip: rect(0, 100px, 200px, 0); background: red; transform-origin: center; transform: rotate(45deg); } .pie::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border-radius: 50%; clip: rect(0, 100px, 200px, 0); background: blue; transform-origin: center; transform: rotate(135deg); }
上面的代码实现了一个简单的饼图效果,大家可以通过添加额外的::before和::after伪元素来实现更多的饼图块。其中transform:rotate()用来指定旋转的角度,clip属性则用来剪切元素展示部分。
另外,作为数据可视化的一种常用效果,进度条也可以通过CSS来实现。代码如下:
.progress { width: 300px; height: 20px; background: #eee; position: relative; border-radius: 10px; } .bar { position: absolute; top: 0; left: 0; width: 50%; height: 100%; background: green; border-radius: 10px; transition: all 1s; } .progress:hover .bar { width: 80%; }
这里大家用了transition属性来指定进度条变化的过渡效果。当鼠标悬停时,bar类的宽度将从50%变为80%。这种简单有效的动态效果可以让用户更好的理解数据的变化。
利用CSS来制作数据可视化特效是一种很有趣的尝试。通过灵活使用CSS3的各种特性,大家可以实现很多让人眼前一亮的效果。