什么是css权重
一个元素有多个样式对他进行设置的时候,那么哪个样式会起作用呢?这就需要一个规则计算,这个规则就是权重。谁的权重大,就使用那个样式。 根据w3c的规范,元素分为三个等级:
id选择器(称之为 a等级)
类选择器,属性选择器,伪类(我们称之为b等级)
标签,伪元素(我们称之为c等级)
计算权重
首先比较第一个等级a ,谁的 a 的个数多权重就大。如果 a的个数一样,则比较 b,跟 a的规则一样,谁的b的个数多,谁的权重就大。如果一样在比较 c。一样的规则。
如果最后abc 都一样怎么办,那就比较谁最后写的,一般后面写的会覆盖前面的样式。
body div{
background: blue
}
div{
background: red;
}
div的背景颜色为blue
!important 和 行内样式
除了以上三个等级之外,我们还有另外两个,一个是行内样式,一个是 !important 。
而行内样式 比 ID选择器高一级,!important 比行内样式又高一级。
等级关系
他们的等级关系:
!important > 行内样式 > ID选择器 > 类选择器 | 属性选择器| 伪类选择器 > 标签|伪元素