我有这个CSS:
h2 {
color: #000;
font-size: .9em;
}
#exp {
color: red;
font-size: .8em;
}

<div id="exp">
hello
<h1>hello</h1>
<h2>hello</h2>
<h3>hello</h3>
</div>
&#13;
结果如下:
我理解字体大小的变化。 #exp
比h2
更具体,但为什么没有变色?
答案 0 :(得分:2)
当一个元素由两个规则匹配时,特异性计数;在这种情况下,具有更高特异性的规则获胜。但是,在您的示例中并非如此;规则#exp { }
与h2
元素不匹配。
以下是您的示例中的规则如何工作:
/* rule #1 */
h2 {
color: #000;
font-size: .9em;
}
/* rule #2 */
#exp {
color: red;
font-size: .8em;
}
&#13;
<div id="exp">
hello <!-- red color (via rule #2) -->
<h1>hello</h1> <!-- red color (inherited from parent) -->
<h2>hello</h2> <!-- black color (via rule #1) -->
<h3>hello</h3> <!-- red color (inherited from parent) -->
</div>
&#13;