我知道你可以使用边框半径黑客在CSS3中做一个圆圈。但是有没有办法使他们有这样的图片的细分?有没有办法通过HTML和CSS而不是JS?
解决方法
是的,您可以使用以下两种方法之一获得自定义角度的切片:
>如果您不需要这些切片作为元素本身,您可以简单地用一个元素和线性渐变来实现 – 看到上个月我做了这个rainbow wheel。
>如果你需要切片作为元素本身,那么你可以通过链接旋转和扭转变换来实现 – 看到这个circular menu我做了一段时间。
对于#2,另请参阅我非常简化的example我现在做的。
.pie { position: relative; margin: 1em auto; border: dashed 1px; padding: 0; width: 32em; height: 32em; border-radius: 50%; list-style: none; } .slice { overflow: hidden; position: absolute; top: 0; right: 0; width: 50%; height: 50%; transform-origin: 0% 100%; } .slice:first-child { transform: rotate(15deg) skewY(-22.5deg); } .slice-contents { position: absolute; left: -100%; width: 200%; height: 200%; border-radius: 50%; background: lightblue; } .slice:first-child .slice-contents { transform: skewY(22.5deg); /* unskew slice contents */ } .slice:hover .slice-contents { background: violet; } /* highlight on hover */
<ul class='pie'> <li class='slice'> <div class='slice-contents'></div> </li> <!-- you can add more slices here --> <ul>