我正在使用JQuery mobile,我希望我的应用程序上的所有文本都是紫色的。我这样做了:color: #7A68AE !important;
在我的body
部分。{/ p>
然后我尝试在firebug中调试它,发现我的!important
被覆盖了。
这怎么可能?是不是!important
应该覆盖其他所有内容?
注意我已经解决了问题,我对!important
无效的原因感到非常好奇
答案 0 :(得分:5)
查看specificity上的规范。虽然!important
应该覆盖,但由于其承载的重量,内联样式可能会覆盖它。
然而,如果没有看到一个例子,我就无法100%肯定。
另请参阅!important rules
答案 1 :(得分:1)
!重要的是在相同的层次结构级别上进行任何操作 - 但是带有!important声明的用户样式表就像是无与伦比的。
完整的heirarchy是 链接样式表<在头部嵌入样式<在doc样式块中(受影响的元素之前)<内嵌式( depriciated )<元素样式( style =“”attr )
这就是他们被称为记录的层叠样式表
的原因所以,如你所见,带有!important声明的链接样式表并不是全部!重要的是。
Firebug使用即时用户声明,对于很多工具都有!important(例如高亮显示div / links /等)。
尝试不使用Firebug进行查看。如果改变它,它的firebug改变它
答案 2 :(得分:1)
这可能是因为许多原因而发生的。例如:
!important
子句被另一个!important
子句覆盖,具有更具体的选择器(编辑:其中一个人回答您的问题,Brad,指出了有关它的资源:www.w3.org/TR/CSS2/cascade.html#specificity ),你说你有Firebug,所以你应该能够确定是什么情况。请参阅JS启用和禁用,查看应用于特定选择器的样式并查看生成的样式。如果没有代码,我们就可以说不多了。