新闻中心
如何使用CSS制作简单圆形进度条_border-radius与stroke结合
使用SVG的stroke-dasharray和stroke-dashoffset实现动态圆形进度条,配合transform控制起始角度,结合border-radius做静态装饰,通过J*aScript动态计算偏移值实现进度动画。

要制作一个简单的圆形进度条,可以结合使用CSS的 border-radius 和 SVG 的 stroke 属性。虽然 border-radius 通常用于创建圆角或圆形元素,但实现真正可动的进度效果更推荐使用 SVG 配合 stroke-dasharray 和 stroke-dashoffset 来控制描边长度,从而形成动态进度。
1. 使用 border-radius 制作静态圆形容器
你可以用纯 CSS 创建一个圆形背景,作为进度条的外框:
.circular-progress {
width: 100px;
height: 100px;
background: #e0e0e0;
border-radius: 50%;
position: relative;
}
这个方法能做出一个圆形外观,但无法精确表示“进度”动画,适合做静态装饰。
2. 使用 SVG + stroke 实现动态圆形进度条
更实用的方法是使用 SVG 绘制一个圆形路径,并通过修改描边来展示进度。
HTML 结构示例:
<svg width="120" height="120" viewBox="0 0 120 120">
<circle cx="60" cy="60" r="50" fill="none" stroke="#e6e6e6" stroke-width="10"/>
<circle cx="60" cy="60" r="50" fill="none" stroke="#4caf50"
stroke-width="10"
stroke-dasharray="314"
stroke-dashoffset="94.2"
transform="rotate(-90 60 60)" />
</svg>
说明:
语鲸
AI智能阅读辅助工具
314
查看详情
- r="50":半径为50,周长 = 2πr ≈ 314
- stroke-dasharray="314":把描边切成等份,总长度等于周长
- stroke-dashoffset:控制虚线起点偏移。值越小,显示的弧越长
- 例如:70% 进度 → 偏移 = 314 × (1 - 0.7) = 94.2
- transform="rotate(-90 ...)":让进度从顶部开始(默认从右侧开始)
3. 添加 CSS 动画
你可以通过 CSS 让进度条动起来:
circle:nth-child(2) {
transition: stroke-dashoffset 0.3s ease;
}
然后通过 J*aScript 或类名改变 stroke-dashoffset 的值,实现动态效果。
例如,用 J*aScript 控制:
function setProgress(percent) {
const offset = 314 * (1 - percent / 100);
document.querySelector('.progress-ring').style.strokeDashoffset = offset;
}
setProgress(70); // 设置为70%
4. 结合 border-radius 与 SVG 的优势
虽然 border-radius: 50% 可以做出圆形,但它不能像 SVG 那样精确控制描边进度。建议:
- 用 SVG + stroke 实现带进度动画的圆形条
- 用 border-radius 做容器或背景装饰
- 两者可结合使用,比如把 SVG 放在圆形卡片内
基本上就这些。核心是理解 stroke-dasharray 和 stroke-dashoffset 如何模拟进度变化,border-radius 更适合静态视觉造型。不复杂但容易忽略细节。
以上就是如何使用CSS制作简单圆形进度条_border-radius与stroke结合的详细内容,更多请关注其它相关文章!
# 可以用
# 周口关键词排名优化软件
# 北京seo的优化方案
# seo怎么设置好
# seo经验分享是什么
# 荔湾seo搜索优化公司
# 信息类关键词搜索排名
# 延边百度seo
# 淘客软件和网站怎么推广
# 河口网站建设服务
# 黄岛网站建设优化
# 相关文章
# 推荐使用
# css
# 你可以
# 放在
# 不均匀
# 切成
# 中不
# 如何使用
# 进度条
# svg
# html
# java
# javascript
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Win10快速启动功能利弊分析 Win10开启或关闭快速启动教程【技巧】
电脑屏幕颜色不舒服怎么办_Windows夜间模式与色彩校准教程【护眼技巧】
移动端XML文件怎么转换成Excel 手机和平板上的解决方案
抖音创作助手登录入口_抖音创作辅助工具官网直达
Lar*el头像管理:图片缩放与旧文件删除的最佳实践
小红书网页版入口链接分享 小红书官网直接进
迅雷下载到U盘速度很慢怎么办_迅雷U盘下载慢优化方法
高德地图沿途添加点失败如何解决 高德多点规划方法
漫蛙漫画官方首页 漫蛙2漫画在线阅读入口
Highcharts 雷达图径向轴标签定制指南:利用多Y轴实现数值标注
yy漫画网页版官方入口_yy漫画官网登录页面链接
抖音DOU+怎么投最有效 抖音付费推广的ROI提升技巧
c++如何使用chrono库处理时间_c++标准库时间与日期操作
C++如何操作大型数据集_使用C++流式处理(Streaming)技术避免一次性加载大文件
淘宝支付提示失败如何解决 淘宝支付流程优化方法
MongoDB聚合管道:正确匹配对象数组中_id的方法
微博网页版怎么开启两步验证_微博网页版账号安全两步验证设置方法
学习通在线学习平台 学习通网页版直接进入课程中心
Win11怎么用U盘重装系统 Win11制作启动盘并重装系统完整教程【详解】
TypeScript/J*aScript:高效查找数组中首个唯一ID对象
单射、满射与双射的关系 一文理清所有逻辑
iwriter统一登录平台 iwrite账号密码登录页面
KFC早餐时段怎么领特惠代码_KFC早餐订餐优惠代码获取与使用说明
如何在网页中实现特定地点的随机图片展示
qq邮箱日历功能怎么用_创建日程与会议邀请的技巧
MinIO大规模对象列表性能瓶颈深度解析与外部元数据管理策略
一加手机电池耗电快怎么办_一加手机电池耗电快的解决方法
Excel函数批量查找替换超快方法_Excel用REPLACE和FIND函数秒级替换
j*a toString()的覆盖
Golang如何实现状态模式管理对象状态_Golang State模式实现技巧
冬*霸灯泡不亮怎么办_浴霸取暖灯一盏不亮的灯座清洁修复法
在Go Martini框架中高效服务动态生成图像的实践指南
c++项目目录结构应该如何组织_c++工程化项目结构规范
C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用
在J*a项目里如何构建对象之间的契约_接口约束的实际落地
如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略
ACG动漫视频网入口 ACG动漫*免费正版观看地址
优化Django表单:提交验证失败后保留用户输入
支付宝解绑银行卡步骤_支付宝如何解除绑定银行卡
使用 Pandas 高效处理 .dat 文件:数据清洗与数值计算实战
Win11怎么合并任务栏图标 Win11开启任务栏合并减少图标占空间【方法】
QQ邮箱官网登录入口 QQ邮箱网页版邮箱快速登录
如何在 Excel Online 和 Google 表格中更改日期格式
汽水音乐车机版横屏版7.1 汽水音乐车机版横屏版下载入口
谷歌浏览器一键优化方案_谷歌浏览器直达主页极速不卡版
sublime怎么设置启动时打开的窗口_sublime会话管理与热退出
手机屏幕碎了但能正常使用怎么办 手机外屏碎裂的修复建议
学习通网页版官方登录 超星学习通电脑端入口指南
在J*a中如何使用Stream.map转换元素_Stream映射操作解析
手机CPU怎么影响游戏体验_手机CPU对游戏性能的影响分析


2025-11-25
浏览次数:次
返回列表