首页 > 代码库 > css中选择器优先级问题详解

css中选择器优先级问题详解

先根据引入方式分:内联样式,头部样式,外部引入;这三个的优先级依次降低;

相同的引入方式时,根据选择器优先级判断显示哪个样式,具体规则如下:

将选择器的特殊性分为4个等级,a,b,c,d

  • 行内样式,a=1
  • b 是ID选择器的总数
  • c 是类,伪类,属性选择器的总数
  • d 是元素(类型),伪元素选择器的总数

举例说明:

 选择器特殊性以10为基准的特殊性
1style=""1,0,0,01000
2#id01 #id02{}0,2,0,0200
3#id .class{}0,1,1,0110
4div#id{}0,1,0,1101
5#id{}0,1,0,0100
6p.class01 .class02{}0,0,2,121
7p.class{}0,0,1,010
8div p{}0,0,0,22
9p{}0,0,0,11

在 4 行中的并不是后代选择器,div和#id是挨着的,表示的是id是id的div,之前不知道,这个选择器的权重是按照一个id选择器计算,还是一个id一个元素算,经过试验,这个是按照后者,即:一个id一个元素计算的;

举例说明:

         

属性选择器的级别跟类选择器的相同,但是上边的属性选择器还带有一个元素选择器,所以最后显示的是pink;

          

这个时候两个的权重是相同的,后定义的显示,green;

另外,子元素选择器 (>) 跟兄弟选择器 (+) 这两个符号对计算权重是没有影响的。

css中选择器优先级问题详解