CSS的优先级
css优先级规则
CSS 优先规则1: 最近的祖先样式⽐其他祖先样式优先级⾼。
CSS 优先规则2:"直接样式"⽐"祖先样式"优先级⾼。
CSS 优先规则3: 优先级关系:内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器
CSS 优先规则4: 计算选择符中 ID 选择器的个数(a),计算选择符中类选择器、属性选择器以及伪类选择器的个数之和(b),计算选择符中标签选择器和伪元素选择器的个数之和(c)。按 a、b、c 的顺序依次⽐较⼤⼩,⼤的则优先级⾼,相等则⽐较下⼀个。若最后两个的选择符中 a、b、c 都相等,则按照"就近原则"来判断。
规则四,我们可以这样想:
⾸先,CSS的优先级是根据样式声明的特殊性值来判断的。
根据规则三可以把特殊性分为四个等级:如下:
标签内选择符x,0,0,0
ID选择符0,x,0,0
class选择符/属性选择符/伪类选择符 0,0,x,0
元素标签和伪元素选择符0,0,0,x
每个选择器初始值都为0 0 0 0 ,根据规则四,进⾏相应的加1,判断优先级时,从左向右判断,若两个优先级相等,则后出现的优先级⼤。
出现!important的权重最⼤。可以认为是1 0 0 0 0
eg:
这个优先级为 0 1 0 1
#con-id span{
color: red;
}
答:
**判断选择器优先级时,先判断样式声明后⾯是否由 !important,有的话,权重最⼤;
说明:cssclass属性
当在⼀个样式声明中使⽤⼀个 !important 规则时,此声明将覆盖任何其他声明。虽然技术上 !important 与优先级⽆关,但 !important 却⼜与 CSS 优先级直接相关。
破坏级联规则
使⽤ !important 是⼀个坏习惯,应该尽量避免,因为这破坏了样式表中的固有的级联规则 使得调试 bug 变得更加困难了。当两条相互冲突的带有 !important 规则的声明被应⽤到相同的元素上时,拥有更⼤优先级的声明将会被采⽤。
然后,判断优先级时,多个选择器综合权重来判断优先级:我们可以把选择器的优先级分为四个等级,
第⼀个等级:⾏内样式,为1000
第⼆个等级:id选择器,为0100
第三个等级:类选择器、伪类选择器、属性选择器,为0100
第四个等级:标签选择器和伪元素选择器,为0001
分割符=============================================
规则中出现的每⼀个选择器,会根据他们的特殊性进⾏叠加。判断优先级时,从左向右判断,数字⼤的优先级⼤。**

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。