的「*」選擇的特異性可能是最低的(0,0,0,0),但它適用於適用的每一個元素,所以每格爲:
* { font-size: 15pt; }
通過您正在使用#選擇設置新的特異性時間:
#smaller-size { font-size: 0.8em; }
只有具有相應的ID選擇的元素將有比其他人,受*,這些都是他們的高特異性。 在此特定元素(0,1,0,0)中創建特定值。 此標識僅適用於該特定元素。
例如,如果你stablish類似:
#smaller-size>div { font-size: 0.2em }
然後根據編號較小尺寸的所有元素的div將有較高的特異性比那些受剛*
創建類似的東西:
<div> -- specificity (0,0,0,0) = 0
<div id="smaller-size"> -- specificity (0,1,0,0) = 100
<div> -- specificity (0,1,0,1) = 101
</div>
</div>
</div>
利用該邏輯:
* { font-size: 15pt; }
#smaller-size { font-size: 0.8em; }
#smaller-size>div { font-size: 0.7em; }
#smaller-size>.smaller { font-size: 0.6em; }
<div>
specificity of this element (0,0,0,0) = 0
<div id="smaller-size">
specificity of this element (0,1,0,0) = 100
<div>
specificity of this element (0,1,0,1) = 101
</div>
<div class="smaller">
specificity of this element (0,1,1,1) = 111
</div>
<div class="smaller" style="font-size: 0.5em;">
specificity of this element (1,1,1,1) = 1111
</div>
<p>
specificity of this element (0,0,0,0) = 0
</p>
</div>
</div>
Here是一個很好的文章,解釋的特異性是如何工作的。
有什麼理由要使用'*'選擇器嗎?爲什麼不定義身體的15pt大小?然後'.smaller-size'內的所有內容將繼承0.8em –
如果是新項目,請重新考慮如何定義初始字體大小。如果項目太遠了(遺留項目),那麼試試這個:https://jsfiddle.net/egdsfwvL/ – seemly