什么!在CSS中的重要意义?

时间:2012-02-12 00:32:51

标签: css

  

可能重复:
  What are the implications of using “!important” in CSS?
  How do you read !important in CSS?

!important在CSS中意味着什么?

CSS 2中是否可用? CSS 3?

支持哪里?所有现代浏览器?

5 个答案:

答案 0 :(得分:364)

基本上,它意味着它所说的; “这很重要,忽略后续规则,以及任何常见的特殊问题,应用规则!”

在正常使用中,外部样式表中定义的规则被文档的head中定义的样式否决,而该样式又被元素本身内的样式所取代(假设相等)选择者的特异性)。使用!important'属性'(?)定义规则会丢弃关于覆盖'较早'规则的'后来'规则的正常问题。

此外,通常,更具体的规则将覆盖不太具体的规则。所以:

a {
    /* css */
}

通常被否定:

body div #elementID ul li a {
    /* css */
}

由于后一个选择器更具体(并且它通常不重要,找到更具体的选择器(在head或外部样式表中),它仍然覆盖不太具体的选择器(内联样式属性总是覆盖'more-'或'less-'特定选择器,因为它的总是更具体

但是,如果您将!important添加到不太具体的选择器的CSS声明中,它将具有优先权。

使用!important有其目的(尽管我很难想到它们),但这就像使用核爆炸阻止狐狸杀死你的鸡一样;是的,狐狸会被杀死,但鸡也会被杀死。和邻居。

它还使调试你的CSS成为一场噩梦(来自个人,经验,经验)。

答案 1 :(得分:122)

  

!important规则是一种制作CSS级联的方法,但也有   你觉得最重要的规则总是适用。有规则   无论在哪里,都会应用!important属性   规则出现在CSS文档中。

所以,如果您有以下内容:

.class {
   color:red !important;
}
.outerClass .class {
   color:blue;
}

重要的规则将是应用的规则(不计算specificity

我相信{1}出现在CSS1中,所以每个浏览器都支持它(IE4到IE6部分实现,IE7 +全部)

此外,这是您不想经常使用的东西,因为如果您与其他人合作,您可以覆盖其他属性。

答案 2 :(得分:21)

!important是CSS1的一部分。

支持它的浏览器:IE5.5 +,Firefox 1 +,Safari 3 +,Chrome 1 +。

这意味着:

如果周围没有其他任何重要内容,请使用我!

不能说它更好。

答案 3 :(得分:10)

用于在按原点排序时影响CSS级联中的排序。 它与其他答案中所述的特异性无关。

以下是从最低到最高的优先级:

  1. 浏览器样式
  2. 用户样式表声明(不含!重要)
  3. 作者样式表声明(不含!重要)
  4. !重要作者样式表
  5. !重要的用户样式表
  6. 之后,对于仍然有一个手指的规则,特殊性就会发生。

    参考文献:

答案 4 :(得分:6)

它改变了css级联的覆盖优先级规则。请参阅the CSS2 spec