的“*”选择的特异性可能是最低的(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