首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[分享]css3怎么画圆形进度条

发布于 2024-11-11 15:37:48
0
13

CSS3是前端设计的重要技术之一,它不仅能够实现各种样式效果,还能够实现动态的交互效果。其中一种比较常见的效果就是圆形进度条。下面来介绍一下CSS3如何画圆形进度条:.progresswrap { :...

CSS3是前端设计的重要技术之一,它不仅能够实现各种样式效果,还能够实现动态的交互效果。其中一种比较常见的效果就是圆形进度条。下面来介绍一下CSS3如何画圆形进度条:

.progress-wrap {
  position: relative;
  display: inline-block;
  width: 100px; /* 圆形宽度 */
  height: 100px; /* 圆形高度 */
}

.progress-wrap .progress-circle {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) rotate(-50%); /* 起始角度,为0度顺时针旋转 */
  width: 100%;
  height: 100%;
  clip: rect(0, 50px, 100px, 0); /* 截取圆形左半边 */
  border-radius: 50%;
  background: #f2f2f2;
}

.progress-wrap .progress-circle-right {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  clip: rect(0, 50px, 100px, 0); /* 截取圆形左半边 */
  border-radius: 50%;
  border: 7px solid #4285f4;
  border-left-color: transparent;
  border-bottom-color: transparent;
  transform-origin: left bottom;
}

.progress-wrap .progress-circle-left {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  clip: rect(0, 50px, 100px, 0); /* 截取圆形左半边 */
  border-radius: 50%;
  border: 7px solid #4285f4;
  border-right-color: transparent;
  border-top-color: transparent;
  transform-origin: left bottom;
} 

上述代码中,我们使用CSS3的clip属性实现了圆形的截取。然后通过border属性来实现进度条的显示,通过border-left-color和border-right-color来控制进度条的颜色。通过设置transform-origin来实现进度条的旋转。

下面是HTML代码:

<div class="progress-wrap">
  <div class="progress-circle"></div>
  <div class="progress-circle-right"></div>
  <div class="progress-circle-left"></div>
</div> 

最终的效果如下:

通过以上方法,我们可以轻松地实现一个圆形进度条,定制起来也比较容易。希望对大家有所帮助!

评论
一个月内的热帖推荐
91云脑
Lv.1普通用户

62849

帖子

14

小组

291

积分

赞助商广告
站长交流