在CSS中,选择器的优先级由四个级别和各级别的出现次数决定。这四个级别分别为:行内选择符、ID选择符、类别选择符、元素选择符,优先级依次降低。
具体计算规则如下
- 每个规则对应一个初始的“四位数”:0、0、0、0。
- 若是行内选择符,则加1、0、0、0。
- 若是ID选择符,则加0、1、0、0。
- 若是类选择符/属性选择符/伪类选择符,则分别加0、0、1、0。
- 若是元素选择符/伪元素选择符,则分别加0、0、0、1。
根据以上规则,将每条规则中选择符对应的数相加后得到的“四位数”,从左到右进行比较,大的优先级越高。需要注意的是,!important
用于优先级提升,其优先级比行内样式还要高。
示例说明:
为了更好地理解这些计算规则,下面将提供一些代码实例来说明:
- 选择器
p + span
选择p
元素的下一个span
元素,优先级为110。 - 选择器
p ~ span
选择p
元素后面的所有span
元素,优先级为110。 - 选择器
p > strong
选择p
元素的直接子元素strong
,优先级为111。 - 选择器
.myClass + strong
选择具有myClass
类的p
元素的下一个strong
元素,优先级为111。 - 选择器
.myClass ~ strong
选择具有myClass
类的p
元素后面的所有strong
元素,优先级为111。 - 选择器
p strong
选择p
元素中的所有strong
元素,优先级为101。
在实际应用中,可以根据需要灵活使用不同类型的选择器,并结合优先级规则来达到预期的样式效果。