前言:
在工作中,有时我们会有饼状图的需求,如统计图表、进度指示器、定时器等,当然,实现方式也有很多,甚至有现成的js库可以拿来直接使用。兴趣使然,自己动手利用纯css实现饼状图,看看效果如何。
(视频css视频教程)
<div class="pie"></div>.pie { width: 100px; height: 100px; border-radius: 50%; background: yellowgreen; background-image: linear-gradient(to right, transparent 50%, #655 0); } .pie::before { content: ''; display: block; margin-left: 50%; height: 100%; border-radius: 0 100% 100% 0/50%; background-color: inherit; transform-origin: left; transform: rotate(.2turn); }
效果:
改变rotate的角度就可以实现不同大小的饼状图效果,但是亲手试验的读者会发现,旋转50%以上并不能呈现出理想的效果,而是会呈现出如下效果:
要解决这个问题,改变伪元素的背景色就可以解决,当需要展示的区域大于一半时,改变背景色就OK。
下面笔者展示一个简单的进度指示器示例,读者亲手试验的话,会发现一个不断变化的饼状图效果。
.pie { width: 100px; height: 100px; border-radius: 50%; background: yellowgreen; background-image: linear-gradient(to right, transparent 50%, #655 0); } .pie::before { content: ''; display: block; margin-left: 50%; height: 100%; border-radius: 0 100% 100% 0/50%; background-color: inherit; transform-origin: left; animation: spin 3s linear infinite,bg 6s step-end infinite; } @keyframes spin{ to{transform: rotate(.5turn);} } @keyframes bg{ 50%{background: #655;} }
效果如下:
读者最好亲手试验,尝试修改其中的属性,理解其中的意思,只有理解了才能做出更有趣的东西。如果读者对svg感兴趣的话,可以尝试使用svg来实现饼状图,svg实现的效果要更加丰富多彩些。
CSS教程
消息,苹果公司正在进行AI业务的重大重构,Vision Pro负责人迈克罗克韦尔被任命为Siri团队的新...
2 江卓尔:Strategy不会大幅净卖出BTC消息,莱比特矿池CEO江卓尔发推表示,他认为Strategy不会大幅净卖出BTC,并给出三点理由:第一...
3 Yuga Labs完成白帽行动追回多种NFT资产消息,Yuga Labs首席执行官Michael Figge在X平台发文称,团队已完成针对Flooring Protocol漏洞的白帽行...
4 XBIT DEX:霍尔木兹海峡交通预计6月底恢复消息,预测市场显示,霍尔木兹海峡交通预计将在6月底恢复正常,当前「宏观经济」板块热门...
5 美官员:以方“勉强同意”按兵不动,特一名美国高级官员和一名熟悉通话细节的以色列消息人士透露,特朗普当地时间周日在电话中...
6 地址0x709…cad6e再次建仓,抵押10570 ETH借出消息,链上分析师AI姨指出,地址0x709cad6e时隔六个月再次建仓,14小时前抵押10570 ETH借出1600万...
7 伊朗声称还向以色列发射了攻击无人机伊朗声称还向以色列发射了攻击无人机。如果这些无人机确实已发射,那么它们几个小时后便...
8 美国总统特朗普对AXIOS表示:伊朗的袭击消息,美国总统特朗普对AXIOS表示:伊朗的袭击没有造成任何伤害。希望以色列不会进行报复。...
9 预计真主党将进行更大规模的升级行动消息,以色列消息人士向第12频道透露:预计真主党将进行更大规模的升级行动,以色列有可能...
10 XBIT DEX:Nithya Raman击败Spencer Pratt晋级洛杉消息,据XBIT DEX预测市场显示,Nithya Raman已击败Spencer Pratt晋级洛杉矶市长决选,当前胜算为9...
成都来彰科技 蜀ICP备2025134723号-1
资讯来源互联网,如有版权问题请联系管理员删除。