css多个扇形怎么拼凑成圆?

clipboard.png

各个扇区还需要些内容,文字应该是对着圆心的。

阅读 5k
3 个回答

可以用斜切+旋转

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>扇形</title>
  <style>
  
 
.pie {
    position: relative;
    margin: 1em auto;
    padding: 0;
    width: 32em;
  height: 32em;
    border-radius: 50%;
    list-style: none;
  overflow: hidden;
}
.slice {
    overflow: hidden;
    position: absolute;
    top: 0; 
  right: 0;
    width: 50%;
  height: 50%;
    transform-origin: 0% 100%; 
     color:#fff;
}
.slice-one {
  transform: rotate(30deg) skewY(-30deg);
  background: black;
}
.slice-two {
  transform: rotate(-30deg) skewY(-30deg);
  background: yellow;
}
.slice-three {
  transform: rotate(-90deg) skewY(-30deg);
  background: black;
}
.slice-four {
  transform: rotate(-150deg) skewY(-30deg);
  background: yellow;
}
.slice-five {
  transform: rotate(-210deg) skewY(-30deg);
  background: black;
}
.slice-six {
  transform: rotate(-270deg) skewY(-30deg);
  background: yellow;
}
 
  </style>
</head>
<body>
 
<ul class='pie'>
    <li class='slice-one slice'> </li> 
    <li class='slice-two slice'> </li>
    <li class='slice-three slice'> </li>
    <li class='slice-four slice'> </li>
    <li class='slice-five slice'></li>
    <li class='slice-six slice'> </li>
  <ul>
</body>
</html>

可以用css3锥形渐变

可能兼容性不好,用图片也可以

<style>
    .conic{
        width: 200px;
        height: 200px;
        border-radius: 50%;
        background: repeating-conic-gradient(black 30deg, black 90deg, yellow 30deg, yellow 150deg);
    }
</style>
<div class="conic"></div>

clipboard.png

用canvas吧大哥

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题