!重要的被覆盖

时间:2011-05-25 18:47:59

标签: jquery css jquery-mobile

我正在使用JQuery mobile,我希望我的应用程序上的所有文本都是紫色的。我这样做了:color: #7A68AE !important;在我的body部分。{/ p>

然后我尝试在firebug中调试它,发现我的!important被覆盖了。

这怎么可能?是不是!important应该覆盖其他所有内容?

注意我已经解决了问题,我对!important无效的原因感到非常好奇

3 个答案:

答案 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 ),
  • 您已为特定元素使用了一些内联样式,
  • 您使用JavaScript实际向元素中添加了一些内联样式,

你说你有Firebug,所以你应该能够确定是什么情况。请参阅JS启用和禁用,查看应用于特定选择器的样式并查看生成的样式。如果没有代码,我们就可以说不多了。