css选择器世界-选择器的优先级

1 .几乎所有的css样式冲突,样式覆盖都和css声明的优先级错位有关

选择器优先级规范0-5,6个等级

0级 0

1 .通配选择符*,一般会做全局的样式重设
2 .选择符 ,+,>,~,空格,||
3 .逻辑组合伪类,:not,:is,:where。这些伪类本身并不影响css优先级,影响优先级的是括号里面的选择器
:not(){}

1级,标签选择器 1

1 div{}

2级 10

1 .类选择器 .div
2 .属性选择器 []
3 .伪类

3级 id选择器 100

1 .#div

4级 内联选择器

1 .style

5级 !important

1 .顶级优先级,唯一使用场景是用来使js的设置无效,其余场景千万不要使用

深入优先级的计算规则

1 .前三级是最关键的,学会了前三级,就差不多了
2 .默认的是根据计数法,0级+0,1级+1,2级+10,3级+100
3 .如果权重值相同,那么就是后来居上原则,后面的样式会覆盖前面的样式
4 .增加css选择器优先级的小技巧,重复选择器自身 .div{},可以变成.div,.div
5 .对数值计算的点评

1 .数值计算其实是一种很非常不严谨的算法,1和10的差距很小,那就意味着10个1级的选择器就和1个2级选择器的样式相同了
2 .但是实际情况并不是这样,不同等级的选择器之间的差距无法通过数量来弥补,也就是绝对不可超越。
3 .256个选择器越界现象,256个.f样式覆盖了#f的样式,本质原因就是之前浏览器内部的类名都是以8字节存储的,最大值就是256,因此同时出现256个类名时,就会越过其边缘,到了#f存储的诶之,现在采用16字节的字符串存储,容纳的多了,就不会出现这个问题了

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容