# CSS权重计算
# 权重计算
CSS 的一个重要特性就是层叠性,即多个css块可以同时作用在一个标签上,效果可以叠加。
如果作用在同一个标签上的css语句块中有相同的语句内容, 那么他们之间谁会生效呢?
因此,必须要有一个机制去从中间协调, 这种机制就是权重计算。
CSS规定几种简单的选择器之间的权重如下
#从中我们不难看出,class选择器作用域越细,权重就越大
行内样式 > id选择器权重 > class选择器权重 > 标签选择器权重
复杂的选择器可以通过ID选择器的个数、class选择器的个数、标签选择器的个数来计算权重。如果得出的分类个数一致,则哪个css写在最后以哪个为准。
提升权重
如果我们需要某个选择器内的某个属性提升权重,则在该属性后面写 !important (有此标记的通常权重无穷大, 优先以此为准)
举例
<style>
/*权重 (2, 1, 0)*/
#box1 .box2 #box3 {
color: greenyellow;
}
/*权重 (2, 1, 0)*/
#box1 #box2 .box3 {
color: red;
background-color: antiquewhite;
}
/*权重 (1, 2, 0)*/
#box1 .box2 .box3 {
color: blueviolet;
background-color: yellow !important;
}
</style>
<div id="box1">
<div id="box2" class="box2">
<div id="box3" class="box3">
<p>我是段落</p>
</div>
</div>
</div>