CSS级联与优先级

  • 级联

就是CSS声明前加了限制条件
ps:善用 CSS 的级联属性

比如在你需要选定的对象元素前加上更多的元素,使选择的范围缩小,你的选择器就变得更有针对性,从而提高优先级

比如:下面这段代码结果红色。

<h1 class="A B">标题颜色<h1>

h1.B{ color: red }
  .A{ color: blue }
  • 优先级

优先级就是分配给指定的CSS声明的一个权重,它由 匹配的选择器中的 每一种选择器类型的 数值 决定。
当优先级与多个CSS声明中任意一个声明的优先级相等的时候,CSS中最后的那个声明的规则将会覆盖先前声明的规则,并被应用到元素上。

优先级从高至低:

  • 内联样式:总会覆盖外部样式表的任何样式(style=”font-weight:bold”)
  • ID选择器(例如:#example)
  • 伪类选择器(例如::hover)
  • 类选择器 (例如:.example)
  • 属性选择器(例如:[type=”radio”])
  • 元素选择器(例如:p)
  • 伪元素选择器(例如:::before)

优先级的计算:

  • ID选择器:100
  • 类选择器:10
  • 元素选择器:1

所以上述代码h1.B{ color: red }的优先级为11,.A{ color: blue }的优先级为10,最终优先级高的声明将会应用于元素上。

  • !important 规则例外

当在一个样式声明上使用 !important 规则时,该样式声明会覆盖CSS中任何其他的声明,。尽管技术上 !important 与优先级毫无关系,但是它们之间直接相互影响。使用 !important 是一个坏习惯,应该尽量避免,因为这打断了样式表中的固有的级联规则 使得调试找bug变得更加困难了。当两条相互冲突的带有!important 规则的声明被应用到相同的元素上时,拥有更大优先级的声明将会被采用。

例如:

h1.B{ color: red !important}
  .A{ color: blue !important}

结果:
标题为红色

但是如果两个CSS声明有相同的优先级,则最后声明的CSS总会覆盖前面的声明。例如:

.B{ color: red !important}
.A{ color: blue !important}

结果:
标题为蓝色


参考文章https://developer.mozilla.org/zh-CN/docs/Web/CSS/Specificity

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值