声明和特殊性
选择器的特殊性:
1.对于选择其中给定的各个ID属性值,加0,1,0,0
2.对于选择器中给定的各个类属性值、属性选择或伪类,加0,0,1,0
3.对于选择器中给定的各个元素和伪元素,加0,0,0,1
4.结合符和通配符选择器对于特殊性没有任何贡献,特殊性为0。
5.内联样式特殊性为1,0,0,0
例子:
(a) h1{color:red;} /*0,0,0,1*/
body h1{color:green;} /*0,0,0,2(winner)*/
(b) h2 .grape{color:purple;} /*0,0,1,1(winner)*/
h2{color:siliver;} /*0,0,0,1*/
(c) html > body table tr[id="totals"] td ul > li {color:maroon;} /*0,0,1,7*/
li #answer{color:navy;} /*0,1,0,1(winner)*/
注意:
继承的值没有特殊性,所以比0特殊性还弱。
*{color: gray;}
h1 #page-title{color:black;}
<h1 id="page-title">Meerkat <em>Central</em></h1>
Meerkat会显示为黑色,但是Central会显示为灰色,因为通配符特殊性为0,强于继承的黑色。
!important
!important: 有时某个声明非常重要,超过了所有其他声明,CSS2.1称之为重要声明,并允许在这些声明的结束分号之前插入!important来标志。
p.dark{color: #333 !important; background: white;} :仅仅color是重要声明,如果background也要标志为重要,需要在white后,分号前加上!important。