聊一下环(圆)形进度条的实现

658 阅读2分钟

扇形 => 环(圆)形进度

image.png

  • 新增一个 div 元素, 并且根据扇形的大小设置进度(如:25%) 即可完成
  • 通过在父元素设置以下样式, 让新增的元素保持居中显示
display: flex;
align-items: center;
justify-content: center;
  • 在新增的元素上设置以下样式
/* 设置背景大小、形状和颜色 */
width: 90%;
height: 90%;
background: #fff;
border-radius: 50%;
/* 让文字显示在中间 */
display: flex;
align-items: center;
justify-content: center;

优劣对比

方式设置角度/百分比角度计算过渡效果渐变效果内部透明两端圆角
遮盖/旋转支持--不支持不支持支持复杂
clip-path不支持复杂不支持不支持支持复杂
渐变图像支持--不支持支持支持复杂
SVG直接实现不支持简单支持支持支持简单

小结

  • 通过上表可以看出来 SVG 在实现上会更简单一些, 能达到的效果也更好一些
  • 如果你真的不想研究 SVG, 其实复制一下代码也是可以支持用的
  • 假如你还是不想用 SVG, 那另外的3种处理方式也不错; 但作为一个前端开发了解一些 SVG 的知识也是应该的
  • 最近写了很多关于 css 实现扇形和进度条的文章, 基本上也说的差不多了, 本文算是一个小总结吧.

相关文章

CSS 绘制任意角度扇形(第一种)--遮盖/旋转
CSS 绘制任意角度扇形(第二种)--clip-path
CSS 绘制任意角度扇形(第三种)-渐变图像(css)
CSS 绘制任意角度扇形(第三种)-渐变图像-示例
CSS 绘制任意角度扇形(第四种)-SVG
CSS 绘制任意角度扇形-总结
使用 SVG 实现圆(环)形 进度条
环(圆)形进度条
CSS 实现环(圆)形进度条(渐变效果)
CSS 实现关闭(close) Icon