特殊性
有的时候我们为同一个元素设置了不同的CSS样式代码,那么元素会启用哪一个CSS样式呢?我们来看一下面的代码:
1 2 3 |
p{color:red;} .first{color:green;} <p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p> |
p和.first都匹配到了p这个标签上,那么会显示哪种颜色呢?green是正确的颜色,那么为什么呢?是因为浏览器是根据权值来判断使用哪种css样式的,权值高的就使用哪种css样式。
下面是权值的规则:
标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。例如下面的代码:
1 |
p{color:red;} <strong>/*权值为1*/</strong> p span{color:green;} <strong>/*权值为1+1=2*/</strong> .warning{color:white;} <strong>/*权值为10*/</strong> p span.warning{color:purple;} <strong>/*权值为1+1+10=12*/</strong> #footer .note p{color:yellow;} <strong>/*权值为100+10+1=111*/</strong> |
注意:还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。
重要性