加载中...
CSS 优先级(Specificity,特异性)是层叠算法的一部分:当多条规则命中同一元素的同一属性时,浏览器根据选择器的权重决定采用哪条声明。
优先级通常记为三元组 (a, b, c):
比较时从 a 到 c 逐位对比,高位胜出。通配符 * 与组合符不计权重;内联样式高于任何选择器;!important 声明凌驾于普通规则之上,但应尽量避免使用。
:where() 伪类的权重恒为零,:is() 与 :not() 取参数中最高权重,@layer 层叠层则允许在优先级之前先按层排序,为大型项目提供更可控的覆盖关系。
保持选择器扁平、优先使用类选择器、避免 ID 与 !important 滥用,是维持样式可维护性的通行做法,BEM 等命名规范正是为规避优先级战争而生。
登录 后参与讨论
暂无讨论,来发表第一条评论吧