如何利用纯CSS画扇形,原理和方法是什么
Admin 2022-07-09 群英技术资讯 874 次浏览
在实际应用中,我们有时候会遇到“如何利用纯CSS画扇形,原理和方法是什么”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“如何利用纯CSS画扇形,原理和方法是什么”文章能帮助大家解决问题。阅读此文需具备基本数学知识:圆心角、弧度制、三角函数。
为实现如下效果呕心沥血:

当然你可以拥抱 Svg...在此分享如何纯 Css 打造圆环进度条,只需三步!

此物乃 2 + 1 夹心饼干,蓝绿色部分为果酱。显而易见饼干为两个削成了圆形的 div,我们重点演示果酱是怎么制作的:

如图所示,大扇形由 6 个小扇形构成,每一小扇形占整个圆饼的 1/15,大扇形占整个圆饼的 6/15。我们只需构造一个扇形单元,将其复制 6 份后旋转相应角度连接至一起即可。
如何构造扇形?用三角形伪装...

三角形的宽高如何计算?假定圆半径 $radius 为 100px,等分数 $count 为 15。则小扇形的圆心角为 360deg / 15,三角形的高为 100px,宽为 2 * 100px * tan(360deg / 15 / 2)。其中 360deg / 15 / 2 转化弧度制为 PI / 15(PI == 360deg / 2)。
span {
width: 0;
height: 0;
border: $radius solid transparent;
$borderWidth: tan(pi() / $count) * $radius;
border-left-width: $borderWidth;
border-right-width: $borderWidth;
}
数学欠佳的同学请自行科普...
对于 $count 为 1 或 2 的情况需特殊处理,因为 tan(PI) 及 tan(PI / 2) 为无穷值,不了解的同学请研究正切函数图像:

相关代码(其中 $diameter = 2 * $radius 为圆直径):
span {
@if $count == 1 {
width: $diameter;
height: $diameter;
} @else if $count == 2 {
width: $diameter;
height: $radius;
} @else {
width: 0;
height: 0;
border: $radius solid transparent;
$borderWidth: tan(pi() / $count) * $radius;
border-left-width: $borderWidth;
border-right-width: $borderWidth;
}
}
最后,复制并逐一旋转扇形单元:
@for $index from 0 to $count {
span:nth-child(#{$index + 1}) {
$transform: translate(-50%, 0) rotate(360deg / $count / 2 + 360deg * $index / $count);
$origin: if($count == 2, bottom, center);
-webkit-transform: $transform;
transform: $transform;
-webkit-transform-origin: $origin;
transform-origin: $origin;
}
}
果酱制作完毕,其它点缀请自行添加喽...本例完整代码在此。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在css中,修改表格边框颜色的代码是“表格元素{border-color:颜色值;}”;“border-color”属性的作用就是设置元素的边框颜色,该属性值也可以分别设置四个边框的颜色。
爱站技术小编最近在项目中用到了CSS3中的动画属性。无奈对于css3几个新加的属性不太熟悉,常常容易搞混。所以从网站研究了点资料,总结一下,方便有需要的朋友们可以参考学习。
CSS3实现div放大效果有哪些方法?在实际的网页开发中,有时候我们需要实现div放大的效果,那么有什么方法呢?这篇就给大家来讲讲两个常见的方法,分别是使用transform属性和scale()函数放大div或用width和height属性实现放大div,接下来我们详细的了解看看。
CSS 制作图表的内容我们之前也有了解过,但本文介绍的是响应式柱状图的实现,那么具体怎样实现呢?下面我们就一起了解看看怎样用CSS Grid布局来制作一个普通的响应式柱状图,实现效果如下。
这篇文章主要介绍了使用CSS实现无滚动条滚动的两种方法,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008