You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用CSS将Progress Bar修改为预期样式?

实现分段式进度条样式

你想要的是分段式进度条(每一个进度单位对应一段独立填充块),当前代码实现的是连续填充效果,以下是修改后的实现方案:

修改后的CSS代码

progress {
  border: 1.5px solid silver;
  border-radius: 0;
  width: 170px;
  height: 18px;
  /* 重置浏览器默认外观 */
  -webkit-appearance: none;
  appearance: none;
}

progress::-webkit-progress-bar {
  background-color: whitesmoke;
  border-radius: 0;
}

progress::-webkit-progress-value {
  /* 基于max=5设置分段渐变,每段占总宽度20% */
  background: linear-gradient(
    to right,
    cornflowerblue 0%, cornflowerblue 20%,
    transparent 20%, transparent 100%
  );
  /* 重复渐变匹配分段数量 */
  background-size: 20% 100%;
}

/* 适配Firefox浏览器 */
progress::-moz-progress-bar {
  background: linear-gradient(
    to right,
    cornflowerblue 0%, cornflowerblue 20%,
    transparent 20%, transparent 100%
  );
  background-size: 20% 100%;
}

HTML代码(无需修改)

<section class="prog">
  <p>今日课程进度 <progress value="2" max="5"></progress></p>
</section>

实现说明

  • 利用线性渐变linear-gradient创建分段填充效果,因为进度条的max值为5,所以每段占总宽度的20%(100%/5)
  • 通过background-size设置渐变重复规则,确保分段数量与进度最大值匹配
  • 重置appearance属性避免浏览器默认样式干扰,同时补充Firefox适配样式保证多浏览器兼容性

内容的提问来源于stack exchange,提问作者DaiFuGu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:05:21