何时重写另一个?如果一个人被宣布为另一个呢?宣布哪一项规则更重要?有某种模式吗?
从looks of it起,重要的是应用于具有更多特点的开始。但是,如果我宣布一个bazillion id堆叠在一起,深深嵌套,会发生什么?它是否会覆盖另一个规则集,较少的规则标记为!important?
解决方法
然而,!important
影响级联,这是当同一属性声明适用于某个元素时,对某个元素的样式的总体计算。或者,as Christopher Altman succinctly describes:
!important
is a 07002. It trumps all specificity points.
但不仅如此:因为它影响了整体的级联,如果你有多个!重要的选择器,其中包含一个匹配相同元素的重要声明的规则,那么选择器的特性将继续适用。同样,这只是因为有多个规则应用于同一个元素。
换句话说,对于具有相同样式表中不等选择器的两个规则(例如,相同的用户样式表,相同的内部作者样式表或相同的外部作者样式表),具有最特定选择符的规则将适用。如果有任何重要的样式,则具有最特定选择器的规则中的一个将胜出。最后,既然你只能有一些重要的东西,那么就像你可以去影响级联一样。
以下是对各种用途的重要说明及其应用方法:
>!!重要的声明总是覆盖一个没有它的(除了IE6和更旧的):
/* In a <style> element */ #id { color: red !important; color: blue; }
>如果有不止一个!具有相同特异性水平的规则中的重要声明,则稍后声明的一个胜利:
/* 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>
如果你有两个不同的规则和一个重要的:
#id { color: red; } .class { color: blue !important; }
那个!重要的总是胜利。
但是当你有多个!重要的是:
#id { color: red !important; } .class { color: blue !important; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。