css选择器优先级判定

CSS selector 优先级


理解1微笑

如何确定CSS的优先级?这里我们要先引入一个机制,
分别用4个数字(a,b,c,d)表示优先级组合,比如1,1,1,1和0,1,0,1。它们的意思分别是:
第一个数字(a)表示style属性,优先级最高。由于一般都是class样式,所以该值一般都是0。
第二个数字(b)是该CSS选择器上的id数量的总和,一般都是1个。
第三个数字(c)是用在该CSS选择器上的其他属性CSS选择器以及伪类的总和。
  这里包括class(.btn)和属性CSS选择器(比如li[id=red])。
第四个数字(d)计算元素(就像table、p、div等)和伪元素(就像first-child等)。
通用CSS选择器(*)是0优先级。
如果两个CSS选择器有同样的优先级,在样式表中后面的那个起作用。


例:

#leftbar li#first { color: red; }
#leftbar li:first-child{ color: blue; }
结果肯定是第1个比第2个优先级高,因为第1个的优先级是0,2,0,1,而第2个是0,1,0,2。


理解2得意

分为 id > class > 标签 > 伪类 四类,计算每个类别中的选择器个数,然后先比较 id 个数,越多越优先,在 id 个数相同的情况下,再比较 class 个数,以此类推。带有 !important 的优先级最高,都带 !important 的再以之前的顺序计算优先级。


理解3生气

CSS Specificity由四个部分组成,如0,0,0,0.

计算规则如下:
每多一个html内部的内联样式,加1,0,0,0
每多一个id选择器,加0,1,0,0
每多一个类选择器,属性选择器或伪类选择器,加0,0,1,0
每多一个元素选择器,伪元素选择器,加0,0,0,1
每多一个通配选择符(*),加0,0,0,0
!important是最优先应用的。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值