美文网首页@IT·互联网程序员
CSS选择器优先级详解

CSS选择器优先级详解

作者: 燕青在简书 | 来源:发表于2018-09-11 17:09 被阅读99次
选择器特征
  • 继承(父节点定义的样式会被子节点继承)
  • 优先级(不同的选择器之间存在优先级)
  • 层叠(层叠就是对一个元素多次设置同一个样式,这将使用最后一次设置的属性值。)
选择器分类
  1. 标签选择器(p,div)
  2. 类选择器(class名)
  3. ID选择器(id名)
  4. 全局选择器(* and so on)
  5. 组合选择器(p a{color: red})
  6. 后代选择
  7. 群组选择器
  8. 继承选择器
  9. 伪类选择器
  10. 字符串匹配的属性选择符(^ $ *三种,分别对应开始、结尾、包含)
  11. 子选择器
  12. CSS相邻兄弟选择器器
选择器优先级

!important > 行内样式 > ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性

实际应用中,选择器优先级权重的计算

对于单个选择器的运用,我们容易知道选择器的优先级,但在实际的场景中,更多的是选择器的组合使用;因此,我们需要学习如何计算选择器的权重,以此来确定选择器的优先级。

选择器的权重计算,遵循ABCD法则,其中ABCD分别表示四类选择器的权重,对应关系如下:

  • A类: 行内选择符
  • B类: ID选择符
  • C类: 类选择符/属性选择符/伪类选择符
  • D类: 元素选择符/伪元素选择符

单个选择器的初始权重(A,B,C,D)的表示为(0,0,0,0),如果这个选择器是一个行内选择器,其权重则表示为(1,0,0,0),如果是一个ID选择器,则表示为(0,1,0,0)。

对于组合的选择器,将各个组合选择器的权重,按ABCD对应位相加,便得到组合选择器的权重。将权重按照高位A到低位D的顺序比较(高位相同比低位),就能计算组合选择器的优先级了。

建议与扩展
  • 在选择器的运用中,建议采用低权重原则,可充分发挥CSS的复用性、继承性、组件化和模块化的优点。
  • 选择器解析原理(阅读

相关文章

网友评论

    本文标题:CSS选择器优先级详解

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