编程教育资源分享平台

网站首页 > 后端开发 正文

了解CSS选择器优先级,写更优雅的代码

luoriw 2024-02-01 14:26:49 后端开发 11 ℃ 0 评论

选择器特征

  • 继承(父节点定义的样式会被子节点继承)
  • 优先级(不同的选择器之间存在优先级)
  • 层叠(层叠就是对一个元素多次设置同一个样式,这将使用最后一次设置的属性值。)

选择器分类

  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的复用性、继承性、组件化和模块化的优点。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表
最新留言