8个扇形组成一个中间镂空的圆环,每个扇形之间有几个角度的空白间隙。
如何实现这样的效果
.ring {
width: 120px;
height: 120px;
border-radius: 50%;
background: conic-gradient(
#ff6b6b 0% 25%,
#4ecdc4 25% 50%,
#45b7d1 50% 75%,
#96ceb4 75% 100%
);
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
.ring::after {
content: "";
position: absolute;
width: 90px;
height: 90px;
background: white;
border-radius: 50%;
}
实现原理分步说明:
支持动画的改进版(添加旋转动画):
.ring {
animation: rotate 3s linear infinite;
}
@keyframes rotate {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
如果需要不同比例的分段,调整conic-gradient的百分比值即可。此方案兼容现代浏览器,如需支持老旧浏览器可改用transform拼接方案。
2 回答7.2k 阅读
3 回答4.6k 阅读✓ 已解决
2 回答2.4k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答969 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
问了下ChatGPT,代码我试了能实现划入高亮,手动设置高亮,使用vue代码能更少。
样式你可以再调整下。