有一天,群里有个问题,这样的刻度盘刻度如何实现:这其实是个很有意思的问题,有很多种方法。单标签,使用conic-gradient实现表盘刻度最简单方便的方法就是使用conic-gradient角度渐变,代码也很简单,首先我们实现一个重复的角度渐变:
div{宽度:300px;高度:300px;边界半径:50%;background:repeating-conic-gradient(#0000,#000.8deg,transparent1deg,transparentcalc((360/60)*1deg));}其实比较难理解的是calc((360/60)*1deg),因为表盘上通常有60个刻度。效果大概是这样的:接下来只需要将中间挖空即可。如果底色是白色,直接叠加一个圆就可以了。当然更好的办法是通过mask属性挖空:{background:repeating-conic-gradient(#0000,#000.8deg,transparent1deg,transparentcalc(/60*1deg));mask:radial-gradient(transparent0,transparent140px,#000140px)}这样我们就得到了刻度盘刻度:这是使用标签的方式,当然缺点也很明显:锯齿严重,梯度是一个常见的问题。由于使用的角度梯度,秤存在头重脚轻的现象。越靠近内部,宽度越窄(尺度越大,差异越明显)。如果你不介意使用太多标签,通常更容易想到60个标签,加上轮换: