当前位置: 首页 > 面试题库 >

重要与CSS特异性之间的关系

孔驰
2023-03-14
问题内容

查看CSS特异性规范,没有提到该!important规则值得多少“要点”

一个人何时超越另一个人?如果一个在另一个之后被声明会怎样?哪个规则更重要?有某种模式吗?

从它的外观看,!important适用于具有更多特异性点的对象。但是,如果我声明一个bazillion
id与类堆叠在一起并深深嵌套的话,会发生什么?它会否覆盖另一个未指定的标有的规则中设置的规则!important


问题答案:

CSS中的特异性仅涉及选择器,而不涉及它们的关联声明。!important适用于声明,因此仅在声明方面不起作用。

但是,这会!important影响级联,这是当多个相同属性声明适用于某个元素时,该样式对于某个元素的整体计算。或者,正如克里斯托弗·奥特曼(Christopher Altman)简要描述的那样:

!important是黑桃卡。它胜过所有特异性点。
不仅如此:因为它会整体影响级联,所以如果您有多个!important选择器,并且其规则包含!important与相同元素匹配的声明,则选择器特异性将继续适用。同样,这仅仅是由于对同一元素应用了多个规则。

换句话说,对于在同一样式表中具有不相等选择器的两个规则(例如,相同的用户样式表,相同的内部作者样式表或相同的外部作者样式表),将使用具有最特定选择器的规则。如果有任何!important样式,则规则中具有最特定选择器的样式将获胜。最后,由于您只能拥有或不重要的事物,因此影响级联的范围就足够了。

这是的各种用法!important及其应用说明:

!important声明总是覆盖(除IE6及以上),而它的人:

/* In a <style> element */
#id {
    color: red !important;
    color: blue;
}

如果!important一条规则中具有相同程度的特定性的声明不止一个,则后一个声明为准:

/* In a <style> element */
#id {
    color: red !important;
    color: blue !important;
}

如果在两个不同的位置声明相同的规则和相同的属性,则在两个!important声明都很重要的情况下,请遵循级联顺序:

/* In an externally-linked stylesheet */
#id {
    color: red !important;
}

/* In a <style> element appearing after the external stylesheet */
#id {
    color: blue !important; /* This one wins */
}

对于以下HTML:

<span id="id" class="class">Text</span>

如果您有两个不同的规则,其中一个!important:

#id {
    color: red;
}

.class {
    color: blue !important;
}

那!important总是赢。

但是当您有多个时!important:

#id {
    color: red !important;
}

.class {
    color: blue !important;
}


 类似资料:
  • 问题内容: 根据CSS文档: 特异性是由选择器中的属性和伪类的数量定义的。 因此,我的问题是,是否可以通过一遍又一遍地重复相同的类名来提高特异性? 例如: 将 具有更高的特异性 要么 ? 问题答案: 是的,有可能并且有意这样做。尽管CSS2规范中未提及,但Selectors3规范中明确提及: 注意: 允许同一简单选择器重复出现 [sic] ,并且确实增加了特异性。 因此,浏览器在遇到重复的简单选择

  • 问题内容: 有一个共识,使用接口比使用类更好。我当然同意:库法接受ArrayList替代的List将是一个废话。 也有一个共识,就是性能总是一样的。在这里,我的基准要求不同。 接口和抽象类结果都有1到4种实现。当使用两个以上的实现时,性能开始出现差异。我正在寻找这种行为的解释(以及错误共识的由来)。 问题答案: 有一个共识,使用接口比使用类更好。 这太简单了。接口和抽象类都 具有彼此之间的优势。

  • 问题内容: CSS如何确定何时将一种样式应用于另一种样式? 我已经遍历了W3CSS3选择器文档几次,这帮助我了解了如何在jQuery中更好地使用CSS选择器,但是并没有真正帮助我理解何时将一个CSS规则应用于另一个CSS规则。 我有以下HTML: 我有以下CSS: 鉴于以上所述,链接1和链接2的样式将由CSS 确定。为什么与Link 2 关联的样式没有优先级? 显然,我可以这样解决: 但是,由于缺

  • 在swift中似乎有两个相等运算符:双相等()和三相等(),这两者有什么区别?

  • 上次,我发现了Java8及以上版本函数式编程的难点,并在Collectors类中发现了一个静态方法。 我们有一个类员工像: 假设我们有一个类的POJO列表,并且我们希望接收一个所有员工姓名的列表。我们有两种方法,比如: 我知道第一种方法在上使用终端操作,而第二种方法在上使用中间操作,但我想知道第一种方法的性能是否比第二种方法差,反之亦然。如果您能解释第一种情况的潜在性能下降,当我们的数据源(emp

  • 问题内容: 我没有NoSQL数据库系统的经验,但是如果我必须选择最著名的数据库系统(MongoDb,Cassandra,CouchDb,Redis),有人可以描述每个数据库的相关主要功能/差异吗?关于它们的功能,我是否应该了解任何可能影响我使用的NoSQL系统的选择> 问题答案: Redis是一个 键值存储 。通常,您可以在单个键下插入原始值(int,string,bool)或原始数组。数据检索通