【发布时间】:2012-05-29 09:05:22
【问题描述】:
HTML:
<div id="test">This is a test</div>
JavaScript:
var elem = document.getElementById('test');
elem.style.setProperty('color', 'green', 'important');
elem.style.color = 'red';
现场演示: http://jsfiddle.net/4fn6h/3/
文本在 Chrome、Safari 和 IE9 中为绿色,但在 Firefox 和 Opera 中为红色。 (另外,IE7和IE8中的文字是黑色的,因为代码会抛出错误,但是我们忽略它......)
那么,哪些浏览器在这里遵循标准?是否可以覆盖setProperty(...,'important')?
【问题讨论】:
-
当然,在我看来,Firefox 的行为会更受欢迎。一个属性不能有两个值,对吧?
-
@cliffsofinsanity 但问题是:哪种样式应该生效,最后分配的样式还是优先级最高的样式?
-
...在任何情况下,使“重要”看起来不是一个合理的方法,以至于它的当前值比同一元素的未来值更重要。似乎“重要”应该只影响级联。
-
因此 Chrome 不会让您在设置后恢复重要性。太好了... Firefox 应该是蓝色的,因为元素上的本地“重要”已设置为
null,并且样式表现在具有优先权。 -
除了样式表中的“!important”会覆盖内联样式。我认为这就是直接在元素上提供“重要”的原因。 ...等等,也许我又误会了。
标签: javascript css