美文网首页
2css选择器的优先级-css选择器世界

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

作者: 咕叽咕叽_6130 | 来源:发表于2019-10-31 21:39 被阅读0次

2.1 css优先级规则概览

css优先级有6级。
0级:通配选择器、选择符和逻辑组合伪类。
通配选择器是 * 。
选择符有+、-、~、空格和 || 。
逻辑组合伪类有 :not()、:is()和 :where。这些伪类影响优先级的是括号里的选择器。
eg::not([rel=nofollow])
1级:标签选择器。
2级:类选择器、属性选择器和伪类。
3级:ID选择器
4级:内联选择器
5级:!important

2.2深入css选择器优先级

2.2.1 计算规则

(1)数值计算法
0级--优先级为0;
1级--优先级为1;
2级--优先级为10;
3级--优先级为100。
(2)后来居上
优先级数值相同情况下,越后面优先级越高。
1.增加css选择器优先级的方法
(1)重复选择选择器自身
.foo.foo {}
(2)借助必然会存在的属性选择器
.foo[class] {}
#foo[id] {}
除了这两种方法,常用的是增加父级嵌套和增加标签选择器,但这种方法增加了耦合,降低了可维护性,不建议使用。
2.数值计算法的点评
不同级别的选择器优先级差距并不是10比1,差距比这大得多,而是因为实际开发中不会连续写10个而已。

2.2.2 256个选择器的越级现象

 <span id='foo' class='f'>颜色</span>
#foo{ color : #000;}
.f{color : #555;}

在ie浏览器下,256个类选择器的优先级大于id选择器的优先级,原因是类名是以8字节存储的,8字节所能容纳的最大值就是255.
除了ie外,其他都使用16进制,不会出现这种情况。

2.3为什么按钮:hover变色

了解css选择器的优先级后,日常工作就知道是怎么回事了。
是因为默认的优先级高于设置的优先级,所以显示不正确。

相关文章

网友评论

      本文标题:2css选择器的优先级-css选择器世界

      本文链接:https://www.haomeiwen.com/subject/tqcxbctx.html