为什么CSS中多个类选择器声明时,最后声明的样式会覆盖前面的样式?

为什么CSS中多个类选择器声明时,最后声明的样式会覆盖前面的样式?

探究类选择器样式的覆盖规则

给定如下htmlcss代码:

html

<p><span class="a2 a3 a1">展示的内容</span></p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p>
登录后复制

css

.a1 {   color: red; } .a2 {   color: green; } .a3 {   color: blue; }
登录后复制

元素的文本显示为蓝色,这是为什么?

答案:

由于css是一种层叠样式表,因此同一元素的样式将根据其优先级顺序进行应用。在这种情况下,优先级顺序如下:

  1. 具有 !important 声明的样式
  2. 内联样式(在html标记中设置样式)
  3. id 选择器(以 # 开头)
  4. 选择器(以 . 开头)、属性选择器伪类选择器
  5. 类型选择器(以html元素名称开头)
  6. 通配选择器(以 * 开头)

在给出的示例中,a1、a2 和 a3 都是类选择器。由于 a3 是最后声明的,因此它将覆盖前面声明的类选择器的样式,导致文本显示为蓝色。

提示:

  • css 优先级规则不是基于html 中的元素顺序,而是基于 style 标签中的声明顺序。
  • 如果 a2 类放在 a3 类前面,文本将显示为绿色。
  • !important 声明可以覆盖所有其他优先级,确保特定样式被应用。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容