详解HTML5中的进度条progress元素简介及兼容性处理

时间:2022-07-15 22:53:31

一、progress元素基本了解

1.基本知识

progress元素属于HTML5家族,指进度条。IE10+以及其他靠谱浏览器都支持。

注释:Internet Explorer 9 以及更早的版本不支持 <progress> 标签。

<progress> 标签标示任务的进度(进程)

2.基本属性

max, value, position, 以及labels.

(1)max指最大值。若缺省,进度值范围从0.0~1.0,如果设置成max=100, 则进度值范围从0~100.
(2)value就是值了,若max=100, value=50则进度正好一半。value属性的存在与否决定了progress进度条是否具有确定性。

比方说<progress></progress>没有value,是不确定的,因此IE10浏览器下其长相是个无限循环的虚点动画;

但是,一旦有了value属性(即使无值),如<progress value></progress>, 也被认为是确定的,

(3)position是只读属性,当前进度的位置,就是value / max的值。如果进度条不确定,则值为-1.
(4)labels也是只读属性,得到的是指向该progress元素的label元素们。例如document.querySelector("progress").labels,返回的就是HTMLCollection。

二、progress元素兼容性处理示例

<p class="progressbar"><progress max="100" value="10"><ie style="width:10%;"></ie></progress></p>
样式:progress {display: inline-block;width:100%;height: 5px;border-radius: 5px;overflow: hidden;float: left;} 
/*ie6-ie9*/
progress ie {display:block;height: 100%;background: #ff8a00; } 
progress::-moz-progress-bar { background: #ff8a00; } 
progress::-webkit-progress-bar { background: #e5e5e5; } 
progress::-webkit-progress-value { background: #ff8a00; }