您现在的位置是:网站首页> 编程资料编程资料
CSS优先级的两种理解方式CSS优先级计算的规则css优先级计算方法(推荐)详解CSS中的选择器优先级顺序详解CSS中的选择器优先级及样式层叠问题解决CSS z-index 层级关系优先级的概念
2023-10-18
352人已围观
简介 本文给大家分享css 优先级的两种理解方式,每种方式给大家介绍的非常详细,需要的朋友参考下吧
方式一:值相加
我们先去MDN看看官方的解释:
优先级是如何计算的?
优先级就是分配给指定的 CSS 声明的一个权重,它由 匹配的选择器中的 每一种选择器类型的 数值 决定。
而当优先级与多个 CSS 声明中任意一个声明的优先级相等的时候,CSS 中最后的那个声明将会被应用到元素上。
当同一个元素有多个声明的时候,优先级才会有意义。因为每一个直接作用于元素的 CSS 规则总是会接管/覆盖(take
over)该元素从祖先元素继承而来的规则。
我们从上面一段描述中得到个很重要的信息: 权重
我们再来看选择器优先级关系:ID选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器。
看来真相已经呼之欲出了。
我们只要给不同类型的选择器设定一个权重值,然后在根据选择器的数量进行相加,就很容易得出优先级,例如:
ID选择器的权重值设为 1000
类选择器 、属性选择器 、伪类选择器的权重值设为 100
标签选择器、伪元素选择器的权重值设为 10
我们可以很快速的计算出下面这段CSS的权重值并作出正确的判断。
//权重值1110 #app .menu .item{} //权重值210 .menu.menu .item{} //权重值30 .item.item.item{}可是。。。细心的你可能会发现只要低优先级的选择器数量足够多(例如: .item...x200 {} ),那么低优先级的权重值就可以超过高优先级的权重值,但实际效果其实还是以高优先级样式为准。当出现这种情况时可能用现在的权重值计算方式就无法解释了!
当然可以通过限制选择器的最大数量及拉大选择器的权重值数值还是可以解释的,但我总觉得这不是一种好的实现方式。
方式二:bit位存储
我们假设权重值是用 unsigned int 变量存储,那么该变量的 bit 位一共有32位(4字节),我们从高位按字节展开如下:
字节1:00000000
字节2:00000000
字节3:00000000
字节4:00000000
按字节和选择器对应:
字节1:00000000
字节2:00000000 ;ID选择器
字节3:00000000 ;类选择器 、属性选择器 、伪类选择器
字节4:00000000 ;标签选择器、伪元素选择器
相同类型选择器直接进行个数相加,并填入到指定字节内。
例1:
#app .menu .item{}
得到的权重值 bit 位如下:
结果为:65793
例2:
.menu.menu .item{}
得到的权重值 bit 位如下:
结果为:513
例3:
.item.item.item{}
得到的权重值 bit 位如下:
结果为:3
上面示例中位存储容量只有8位,所以选择器的最大限制为255,当然我们可以提高bit位来提高选择器的最大值。
总结
这里介绍了2种CSS优先级理解方式,你觉得那种更适合你呢?
感兴趣的朋友可以给小编留言,说出你的想法。
相关内容
- CSS实现多层嵌套结构最外层旋转其它层不旋转效果纯css多种方法实现div中单行文字、多行文字及嵌套div垂直水平居中LESS 让css也支持变量,运算符,include,嵌套规则等等 使用CSS做出一个嵌套导航.简单学习css组合与CSS嵌套的写法CSS 即将支持嵌套,SASS/LESS 等预处理器该何去何从
- CSS中display flex整理(布局利器) 详解CSS中的flex布局CSS3 Flex 弹性布局实例代码详解css flex几种多列布局详解CSS3伸缩布局盒模型Flex布局css flex 弹性布局详解CSS3新增布局之: flex详解
- css实现不同浏览器下兼容文本两端对齐对常见的css属性进行浏览器兼容性总结(推荐)CSS浏览器兼容性常见问题总结大全(推荐)详解CSS3浏览器兼容兼容主流浏览器的CSS透明代码(必看篇)史上最全的CSS hack方式一览(兼容多浏览器)CSS设置DIV垂直居中的N种方法 兼容IE浏览器 使用CSS的@supports标记来检测浏览器的兼容情况关于老式浏览器兼容HTML5和CSS3的问题CSS左侧固定宽 右侧自适应的实现代码(兼容所有浏览器)主流浏览器css兼容问题汇总
- 无尽之剑3 稀有宝石提升及宝石合成的方法_手机游戏_游戏攻略_
- 找你妹2人物拉不拉稀酋长详细介绍_手机游戏_游戏攻略_
- 找你妹2人物亚美蝶详细介绍_手机游戏_游戏攻略_
- 找你妹2人物互鲁娃详细介绍_手机游戏_游戏攻略_
- 找你妹2人物玛丽莲萌露详细介绍_手机游戏_游戏攻略_
- 百万亚瑟王 麽麽有什么用_手机游戏_游戏攻略_
- 全民英雄维护后英雄消失解决方法_全民英雄维护后英雄消失怎么解决_手机游戏_游戏攻略_
