HTML5 进度条的替代方案

Alternative to the HTML5 progress bar

背景

据我所知,对 HTML5 进度条的支持仍然是零星的,使它在每个浏览器或操作系统中显示相同的方法通常很复杂。

http://www.hongkiat.com/blog/html5-progress-bar/ 展示了如何在 css 中创建多个伪 类,试图在每个浏览器中影响 progress 元素的样式。

progress {
    /* style rules */
}
progress::-webkit-progress-bar {
    /* style rules */
}
progress::-webkit-progress-value {
    /* style rules */
}
progress::-moz-progress-bar {
    /* style rules */
}

这似乎是一个非常臃肿的方法,因为样式将完全依赖于实验兼容性规则。

有关 HTML5 进度元素样式的更多信息:https://css-tricks.com/html5-progress-element/

问题

是否有使用 HTML、CSS 和 Javascript 制作通用进度条的更简单的一步解决方案?

是的。最简单的方法是将一个跨度放置在另一个跨度内。然后,几乎所有浏览器和操作系统都可以使用所有样式,您可以简单地修改内部跨度的宽度 属性 和 Javascript 以更改其值。

<span id="progressContainer">
  <span id="progress" style="width:50%;"></span>
</span>

<style>
#progressContainer {
  display: inline-block;
  width: 400px;
  height: 4px;
}

#progress {
  display: block;
  height: 100%;
  background-color: green;
}
</style>

我以 this codepen 为例来说明此方法的强大之处。