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

如何仅用HTML和CSS实现进度条中间显示进度数值

进度条中间显示数值实现方法

原生<progress>是浏览器内置的替换元素,写在标签内部的文本不会直接渲染到控件可视区域,因此直接在标签内写进度值无法显示。以下是两种纯HTML+CSS的实现方案,都可以将进度值固定显示在进度条正中间。


方案1:自定义结构实现(推荐,兼容性最佳)

不依赖原生progress标签,通过自定义DOM结构实现,全浏览器表现一致,样式调整自由度最高。

  • HTML代码:
<div class="progress-wrap">
  <div class="progress-fill" style="width: 80%"></div>
  <span class="progress-val">80%</span>
</div>
  • CSS代码:
/* 进度条外层容器,作为内部元素的定位参照 */
.progress-wrap {
  position: relative;
  width: 300px;
  height: 20px;
  background-color: #e5e7eb;
  border-radius: 999px;
  overflow: hidden;
}
/* 进度填充部分,宽度对应进度比例 */
.progress-fill {
  height: 100%;
  background-color: #2563eb;
  border-radius: 999px;
}
/* 进度数值,绝对定位实现水平垂直居中 */
.progress-val {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 12px;
  font-weight: 600;
  color: #000;
  /* 加文字阴影避免进度填充到文字位置时对比度不足看不清 */
  text-shadow: 0 0 2px #fff;
}

修改进度值时,只需要同步调整.progress-fill的width属性和.progress-val的文本内容即可。


方案2:保留原生<progress>标签实现

如果需要保留原生progress的语义,可配合伪元素读取自定义属性显示进度值,需要针对不同浏览器内核写适配样式。

  • HTML代码(新增data-text属性存储要显示的进度文本):
<progress id="file" value="80" max="100" data-text="80%"></progress>
  • CSS代码:
progress {
  position: relative;
  width: 300px;
  height: 20px;
  border: none;
  border-radius: 999px;
  background-color: #e5e7eb;
}
/* webkit内核(Chrome、Edge、Safari)进度条底槽样式 */
progress::-webkit-progress-bar {
  background-color: #e5e7eb;
  border-radius: 999px;
}
/* webkit内核进度填充样式 */
progress::-webkit-progress-value {
  background-color: #2563eb;
  border-radius: 999px;
}
/* 火狐浏览器进度填充样式 */
progress::-moz-progress-bar {
  background-color: #2563eb;
  border-radius: 999px;
}
/* 伪元素读取自定义属性的文本,居中显示 */
progress::after {
  content: attr(data-text);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 12px;
  font-weight: 600;
  text-shadow: 0 0 2px #fff;
}

注意:该方案需要兼容不同浏览器的私有伪元素,样式可控性弱于自定义结构方案,适合需要保留原生标签语义的场景使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 21:33:19