新闻中心

如何使用CSS制作简单圆形进度条_border-radius与stroke结合

2025-11-25
浏览次数:
返回列表
使用SVG的stroke-dasharray和stroke-dashoffset实现动态圆形进度条,配合transform控制起始角度,结合border-radius做静态装饰,通过J*aScript动态计算偏移值实现进度动画。

如何使用css制作简单圆形进度条_border-radius与stroke结合

要制作一个简单的圆形进度条,可以结合使用CSS的 border-radius 和 SVG 的 stroke 属性。虽然 border-radius 通常用于创建圆角或圆形元素,但实现真正可动的进度效果更推荐使用 SVG 配合 stroke-dasharraystroke-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-dasharraystroke-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对游戏性能的影响分析 

搜索