是否可以设置一个在CSS中以不同方式设置达到其最大值的进度条而不是尚未启动或已启动的进度条?
例如做某事
progress[max=value] { background: green // color when maxed out } progress { background: red;//default color }
或者我是否必须使用Javascript来检测它?
解决方法
这个答案假设我们知道进度条的最大值.我将使用以下标记:
<progress max=100 value=100></progress>
我们的进度条最大值为100,值为100,表示它处于完成状态.由此我们可以使用[att=val] selector将其定位到完成状态:
progress[value="100"] { ... }
Chris Coyier有一个article on CSS Tricks,解释了如何在Chrome,Firefox和IE10中设置progress元素.在此之后,我们可以将样式应用于完成的进度条.首先我们重置样式:
progress[value="100"] { -webkit-appearance: none; -moz-appearance: none; appearance: none; }
然后我们可以专门将样式应用于:: – webkit-progress-value和:: – moz-progress-bar来定位Chrome和Firefox上的前台进度条.为此,我设置了#f00(红色)的背景颜色:
/* Chrome */ progress[value="100"]::-webkit-progress-value { background:#f00; } /* Firefox */ progress[value="100"]::-moz-progress-bar { background:#f00; }
最后,我们可以通过在主选择器上添加颜色属性来添加IE10样式:
progress[value="100"] { -webkit-appearance: none; -moz-appearance: none; appearance: none; /* IE10 */ color:#f00; }
这是一个JSFiddle demo,展示了两个进度条 – 第一个是50%,第二个是100%.对于懒惰,这是Chrome,Firefox和IE10的结果: