纯css制作圆形进度条

效果图大概是这样的

 

第一步 先定义出一个方形盒子

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title></title><style>.circleProgress_wrapper{width: 200px;height: 200px;margin: 50px auto;position: relative;border:1px solid #ddd;}</style>
</head>
<body><div class="circleProgress_wrapper"></div>
</body>
</html>

 

第二步  将盒子分为两半,左右个占一半

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title></title><style>.circleProgress_wrapper{width: 200px;height: 200px;margin: 50px auto;position: relative;border:1px solid #ddd;}.wrapper{width: 100px;height: 200px;position: absolute;top:0;overflow: hidden;}.right{right:0;border: solid 1px black;}.left{left:0;border: solid 1px red;}</style>
</head>
<body><div class="circleProgress_wrapper"><div class="wrapper right"></div><div class="wrapper left"></div></div>
</body>
</html>

 

第三步  在这两个盒子中再分别放一个盒子 并且给他们的边框大小为20px

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title></title><style>.circleProgress_wrapper{width: 200px;height: 200px;margin: 50px auto;position: relative;border:1px solid #ddd;}.wrapper{width: 100px;height: 200px;position: absolute;top:0;/* overflow: hidden; */}.right{right:0;border: solid 1px black;}.left{left:0;border: solid 1px red;}.circleProgress{width: 160px;height: 160px;border:20px solid rgb(172, 172, 172);position: absolute;top:0;}.rightcircle{border: solid 20px rgb(71, 82, 10);right:0;}.leftcircle{border: solid 20px rgb(218, 252, 24);left:0;}</style>
</head>
<body><div class="circleProgress_wrapper"><div class="wrapper right"><div class="circleProgress rightcircle"></div></div><div class="wrapper left"><div class="circleProgress leftcircle"></div></div></div>
</body>
</html>

到这一步大家可以看见一个黄色的方形,但只能看见一个,另一个被这个黄色方形遮住了,这个时候我们要给那两个class为 wrapper的div加上个属性  overflow:hidden

          .wrapper{width: 100px;height: 200px;position: absolute;top:0;overflow: hidden;}

加上之后我们在看一看

此时我们已经能看见两个方形 了,只不过都只能看见一半,因为加上 overflow:hidden 后超出的部分隐藏了

 

第四步 给这两个黄色的方形和褐色的方形定义 右上边框 和 左下边框

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title></title><style>.circleProgress_wrapper{width: 200px;height: 200px;margin: 50px auto;position: relative;border:1px solid #ddd;}.wrapper{width: 100px;height: 200px;position: absolute;top:0;overflow: hidden;}.right{right:0;border: solid 1px black;}.left{left:0;border: solid 1px red;}.circleProgress{width: 160px;height: 160px;border:20px solid rgb(172, 172, 172);position: absolute;top:0;}.rightcircle{border-top:20px solid rgb(71, 82, 10);border-right:20px solid rgb(71, 82, 10);right:0;}.leftcircle{border-bottom:20px solid rgb(218, 252, 24);border-left:20px solid rgb(218, 252, 24);left:0;}</style>
</head>
<body><div class="circleProgress_wrapper"><div class="wrapper right"><div class="circleProgress rightcircle"></div></div><div class="wrapper left"><div class="circleProgress leftcircle"></div></div></div>
</body>
</html>

好 现在我们可以看见三种颜色 黄色 褐色 以及灰色

一个是左下边框的黄色 和右上边框的褐色 这两个颜色分别是我们自己刚刚定义的

而那个灰色则是默认色,因为之前我们是给所有的边框都定义了颜色,当现在我们只给左下 和 右上的边框定义了颜色 ,其他没有定义颜色的部分就默认为灰色

 

第五步 给这两个黄色和褐色的方形加上个属性    border-radius: 50%;

          .circleProgress{width: 160px;height: 160px;border:20px solid rgb(172, 172, 172);position: absolute;top:0;border-radius: 50%;}

此时我们可以看到这样的效果

 

 

 

第六步 旋转角度 关键的一步来了  transform: rotate(-135deg);

          .circleProgress{width: 160px;height: 160px;border:20px solid rgb(172, 172, 172);position: absolute;top:0;border-radius: 50%;transform: rotate(-135deg);}

此时我们看到的是一个全灰色的圆形

但这其实是两个圆形 就是刚刚那两个黄色和褐色的圆形,只不过旋转之后有颜色的部分都被遮住了

看到的只是没有颜色的部分 所有看起来是一个圆形

可以 把 overflow: hidden; 属性暂时去掉就能看到旋转后的效果

 

 

第七步  添加动画

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title></title><style>.circleProgress_wrapper{width: 200px;height: 200px;margin: 50px auto;position: relative;border:1px solid #ddd;}.wrapper{width: 100px;height: 200px;position: absolute;top:0;overflow: hidden;}.right{right:0;border: solid 1px black;}.left{left:0;border: solid 1px red;}.circleProgress{width: 160px;height: 160px;border:20px solid rgb(172, 172, 172);position: absolute;top:0;border-radius: 50%;transform: rotate(-135deg);}.rightcircle{border-top:20px solid rgb(71, 82, 10);border-right:20px solid rgb(71, 82, 10);right:0;animation: circleProgressLoad_right 5s linear infinite;}.leftcircle{border-bottom:20px solid rgb(218, 252, 24);border-left:20px solid rgb(218, 252, 24);left:0;animation: circleProgressLoad_left 5s linear infinite;}@keyframes circleProgressLoad_right{0%{-webkit-transform: rotate(-135deg);}50%,100%{-webkit-transform: rotate(45deg);}}@keyframes circleProgressLoad_left{0%,50%{-webkit-transform: rotate(-135deg);}100%{-webkit-transform: rotate(45deg);}}</style>
</head>
<body><div class="circleProgress_wrapper"><div class="wrapper right"><div class="circleProgress rightcircle"></div></div><div class="wrapper left"><div class="circleProgress leftcircle"></div></div></div>
</body>
</html>

这里注意 左边圆形的动画的开始时间是50%  而右边的是在0%

此时我们可以看一下旋转的效果  我这没有动图  大家可以自己复制代码看一下

 

 

最后一步  将两个圆形的边框颜色统一 ,此时圆形进度条完成

           .rightcircle{border-top:20px solid rgb(218, 252, 24);border-right:20px solid rgb(218, 252, 24);right:0;animation: circleProgressLoad_right 5s linear infinite;}.leftcircle{border-bottom:20px solid rgb(218, 252, 24);border-left:20px solid rgb(218, 252, 24);left:0;animation: circleProgressLoad_left 5s linear infinite;}

 

最后 贴出完整代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title></title><style>.circleProgress_wrapper{width: 200px;height: 200px;margin: 50px auto;position: relative;border:1px solid #ddd;}.wrapper{width: 100px;height: 200px;position: absolute;top:0;overflow: hidden;}.right{right:0;border: solid 1px black;}.left{left:0;border: solid 1px red;}.circleProgress{width: 160px;height: 160px;border:20px solid rgb(172, 172, 172);position: absolute;top:0;border-radius: 50%;transform: rotate(-135deg);}.rightcircle{border-top:20px solid rgb(218, 252, 24);border-right:20px solid rgb(218, 252, 24);right:0;animation: circleProgressLoad_right 5s linear infinite;}.leftcircle{border-bottom:20px solid rgb(218, 252, 24);border-left:20px solid rgb(218, 252, 24);left:0;animation: circleProgressLoad_left 5s linear infinite;}@keyframes circleProgressLoad_right{0%{-webkit-transform: rotate(-135deg);}50%,100%{-webkit-transform: rotate(45deg);}}@keyframes circleProgressLoad_left{0%,50%{-webkit-transform: rotate(-135deg);}100%{-webkit-transform: rotate(45deg);}}</style>
</head>
<body><div class="circleProgress_wrapper"><div class="wrapper right"><div class="circleProgress rightcircle"></div></div><div class="wrapper left"><div class="circleProgress leftcircle"></div></div></div>
</body>
</html>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1383408.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

实现一个圆形进度条(vue)

实现方式&#xff1a;首先是用svg画两个圆&#xff0c;同圆心同半径的两个圆&#xff0c;然后把颜色都设置成透明&#xff0c;利用圆的边框来实现。给两个圆设置相同的边框宽度&#xff0c;并且设置颜色&#xff08;设置一个透明&#xff0c;一个有颜色&#xff09;&#xff1b…

药都银行冲刺上交所:年营收22.78亿 古井集团是股东

雷递网 雷建平 5月1日 亳州药都农村商业银行股份有限公司&#xff08;简称&#xff1a;“药都银行”&#xff09;日前递交招股书&#xff0c;准备在上交所主板上市。 药都银行计划募资16.38亿元。 年营收22.78亿 药都银行坐落于世界中医药之都——亳州市&#xff0c;于2005年12…

自贸港首家公务机公司海航金鹿商务正式启动运营

日前&#xff0c;海航集团旗下金鹿公务在海口设立公务机总部 -- 金鹿商务航空有限公司&#xff08;简称&#xff1a;金鹿商务&#xff09;&#xff0c;已通过中国民用航空海南安全监督管理局运行审定&#xff0c;取得中国民用航空中南地区管理局颁发的运行规范。4月29日上午9时…

内网通朋友不在线

前段时间使用内网通发现同学老师的总是不在线&#xff0c;有时候改一下IP地址&#xff0c;又可以&#xff0c;后面才发现原来可以自己设置网段地址的 设置过程见下图&#xff1a; 输入老师的IP地址的前三位即可

基于html5在线学生学籍信息管理系统

随着高校人数越来越多&#xff0c;管理高校的学生人数成为难题&#xff0c;如何更好的管理高校的入学人数&#xff1f;通过学籍的管理方式可以很好的将各年级&#xff0c;各个院校&#xff0c;各个专业的学生进行统一的管理&#xff0c;对不同的学生分门别类&#xff0c;学籍管…

爱班级电脑端下载|二维码签到

最近上网课发现爱班级的扫码功能只能在手机上进行&#xff0c;如果手动点到有时候还是会显示我没考勤&#xff0c;那有没有电脑端的爱班级下载呢&#xff1f;搜了很久发现是有的&#xff0c;但是要装个模拟器&#xff1a; 1.下载链接如下&#xff1a; 网盘链接&#xff1a; …

最新升学e网通JS逆向分析

目标网址:https://web.ewt360.com/ 重要说明:文章教程仅供参考学习,请勿用于非法用途,否则后果自负。 目录 1、接口参数分析 2、加密函数分析

2023年中国政务云行业发展概况及发展趋势分析:政务云由基础设施建设向云服务运营转变[图]

政务云是指运用云计算技术&#xff0c;统筹利用已有的机房、计算、存储、网络、安全、应用支撑、信息资源等&#xff0c;发挥云计算虚拟化、高可靠性、高通用性、高可扩展性及快速、按需、弹性服务等特征&#xff0c;为政府行业提供基础设施、支撑软件、应用系统、信息资源、运…

Java+Excel+POI+testNG基于数据驱动做一个简单的接口测试【杭州多测师_王sir】

一、创建一个apicases.xlsx放入到eclipse的resource里面&#xff0c;然后refresh刷新一下 二、在pom.xml文件中加入poi和testng的mvn repository、然后在eclipse的对应目录下放入features和plugins&#xff0c;重启eclipse就可以看到testNG了 <!--poi excel解析 --><d…

【Minecraft】Fabric Mod开发完整流程3 - 配方与挖掘等级

目录 新配方工作台配方无序合成配方有序合成配方 熔炉配方 挖掘等级与掉落物挖掘等级标准等级配置易错点分析 战利品与掉落物普通方块掉落物矿石方块掉落物 新配方 工作台配方 为便于你快速创建配方&#xff0c;可以直接去这个网站上通过拖拽的方式创建属于你的配方表&#xf…

V4L2-框架

1.概述 V4L2 是专门为linux 设备设计的一套视频框架&#xff0c;其主体框架在linux内核&#xff0c;可以理解为是整个linux系统上面的视频源捕获驱动框架。 相机驱动层位于HAL Moudle 与硬件层之间&#xff0c;借助linux 内核驱动框架&#xff0c;以文件节点的方式暴露接口给用…

vue2(2)

目录 天气案例 监视属性watch 深度监视 监视简写属性 watch对比computed 绑定class样式 条件渲染 列表渲染 天气案例 绑定事件的时候&#xff0c;xxx"yyy" yyy可以写一些简单的语句 <!DOCTYPE html> <html lang"en"> <head>…

积分代换和周期函数

昨晚上看书&#xff0c;有一个稳定随机过程的例题&#xff0c;涉及积分上下限代换、周期函数的微积分性质等知识点。这种题型以前肯定接触过&#xff0c;当下遇到了&#xff0c;思维仍然迷迷糊糊&#xff0c;像是一团乱麻&#xff0c;纠缠不清&#xff0c;照着答案思考了半天&a…

BOE(京东方)赋能荣耀Magic V2系列新品

7月12日&#xff0c;在荣耀举办的全场景新品发布会上&#xff0c;重磅推出了“革命性”折叠旗舰Magic V2系列以及首款MagicPad平板产品&#xff0c;荣耀Magic V2系列搭载BOE&#xff08;京东方&#xff09;全新一代柔性OLED折叠屏解决方案&#xff0c;以超强硬件护眼防护、超清…

开源数据库 就是免费 ,我白嫖我光荣 荣耀V2

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

荣耀Magic V2折叠旗舰发布,内外双屏均支持手写笔

7月12日&#xff0c;荣耀全新一代折叠旗舰荣耀Magic V2正式发布。通过深入洞察消费者需求&#xff0c;根植于强大的技术研发实力&#xff0c;荣耀以打破边界的思维创新重新定义折叠屏手机&#xff0c;荣耀MagicV2系列实现了9.9mm的闭合态厚度&#xff0c;引领折叠屏手机进入毫米…

sip语音对讲终端怎么样?

sip语音对讲终端怎么样&#xff1f; IP语音对讲终端是一种通过网络进行语音通信的设备&#xff0c;具有以下特点&#xff1a; 1. 便捷性&#xff1a;IP语音对讲终端可以通过互联网实现远程通信&#xff0c;用户可在任何地点与他人进行语音交流&#xff0c;无需受到距离的限制…

IDEA提示:StringBuffer xxx‘ may be declared as ‘StringBuilde

如图所示&#xff0c;编写代码时遇见了如下IDEA警告&#xff1a; 原因&#xff1a;StringBuilder是线程不安全的&#xff0c;但是其效率高&#xff0c;而StringBuffer则相反&#xff0c;虽然其线程安全&#xff0c;但是效率低下。 由于 StringBuilder 相较于 StringBuffer 有速…

jenkins自动化构建保姆级教程(持续更新中)

1.安装 1.1版本说明 访问jenkins官网 https://www.jenkins.io/&#xff0c;进入到首页 点击【Download】按钮进入到jenkins下载界面 左侧显示的是最新的长期支持版本&#xff0c;右侧显示的是最新的可测试版本&#xff08;可能不稳定&#xff09;&#xff0c;建议使用最新的…

【Linux】Reactor模式

​&#x1f320; 作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《学会Linux》 &#x1f387; 座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录 &#x1f449;Reactor …