2011-05-25 63 views
5

我使用的是JQuery移动版,我希望所有文本在我的应用程序上都是紫色的。我这样做了:color: #7A68AE !important;在我的css的body部分。!重要重写

然后我试着在firebug中调试它,注意到我的!important被覆盖。

这怎么可能?是不是!important应该覆盖一切?

注意我已经解决了这一问题,我是真的很好奇,为什么!important没有工作

+0

它与特异性有关。 – drudge 2011-05-25 18:51:31

回答

5

看看上specificity规范。尽管!important应该被覆盖,但是由于它所承载的重量,可能会由于内嵌样式而忽略该内容。

但是,没有看到一个例子,我不能100%肯定。 !

请参见!important rules

1

重要并在骑在同一层次级别任何东西 - 但用户的样式表的重要宣言就像是无与伦比的!

完整层次结构是 在头<链接样式表<包埋样式在文档风格块(受影响的元件之前)<直列式(depriciated)<在元件式(风格=“” ATTR

这就是为什么它们被称为层叠备案

所以链接的样式表的!important声明,你可以看到样式表,是不是所有的这!毕竟是重要的。

Firebug的使用上即时用户声明与!对于很多的工具,其重要(如高亮的div /链接/等)

尝试查看没有萤火虫。如果它改变了它,它的萤火虫就会变形它

1

这可能是因为很多原因而发生的。例如:

  • 一个你!important条款被另一!important条款进行覆盖,以更具体的选择(编辑:其他人的一个回答你的问题,布拉德指出资源看:www.w3.org/TR/CSS2/cascade.html#specificity
  • 你已经使用了特定的元素一些内嵌样式,
  • 您使用JavaScript来实际添加一些内嵌样式到元素,

你说你有Firebug的,所以你应该能够确定什么是案子。查看启用和禁用JS,查看适用于特定选择器的样式并查看结果样式。没有这些代码,我们就没有太多可以说的了。