html5 progress标签如何更改进度条颜色?progress进度条详解

2020-07-18 22:37:03
本篇文章介绍了关于html5中新出来的progress进度条标签的样式解析,说明了如何通过html5 progress标签来改变进度条的颜色。接下来就让我们一起来看这篇文章吧

首先我们先来认识下html5 progress标签的简介:

progress是HTML5的一个新元素,表示定义一个进度条,用途很广泛,可以用在文件上传的进度显示,文件下载的进度显示,也可以作为一种loading的加载状态条使用。

提示:请结合<progress>标签与javaScript一同使用,来显示任务的进度。

注释:<progress>标签不适合用来表示度量衡(例如,磁盘空间使用情况或查询结果)。如需表示度量衡,请使用<meter>标签代替。

html5 progress进度条语法:

<progress value='70' max='100'></progress>

我们来准备个html5 progress标签的实例:

<html><head><meta charset="utf-8"><title>PHP中文网</title><style type="text/css">progress{        width: 168px;    height: 5px;}progress::-webkit-progress-bar{       background-color:#d7d7d7;}progress::-webkit-progress-value{     background-color:orange;}</style></head><body><progress value="100" max="100" class="hot"></body></html>

解释下,在Chrome浏览器中progress是以如下结构渲染的

progress

:-webkit-progress-bar 全部进度

:-webkit-progress-value 已完成进度

通过这两个伪元素为其添加样式。

但在别的浏览器中又有所不同,如IE10,这两个伪元素不起作用,直接用color样式可以修改已完成进度的颜色,而全部进度为background

FireFox中progress-bar为已完成进度,background为全部进度,而Opera中对这个样式只能为浏览器默认样式。

因此兼容性写法可以考虑如下:

progress{   color:orange; /*兼容IE10的已完成进度背景*/   border:none;   background:#d7d7d7;/*这个属性也可当作Chrome的已完成进度背景,只不过被下面的::progress-bar覆盖了*/      }progress::-webkit-progress-bar{   background:#d7d7d7;}progress::-webkit-progress-value,progress::-moz-progress-bar{     background:orange;}