【前端基础系列】CSS篇-选择器的优先级

本文详细解释了前端面试中常见的CSS选择器优先级问题,包括权重计算规则,如何处理多重样式设置,以及!important的作用和避免使用的重要原则。通过实例演示了权重比较和!important的例外情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前端面试中,经常会遇到CSS选择器的问题三连:

  1. 说一下CSS的选择器有哪些

  2. 优先级是怎样的

  3. 权重计算方式

我们在上一篇 【前端基础系列】CSS篇-常用选择器介绍[1] 中已经对问题1进行了详细的解答,今天就来给大家介绍选择器的优先级和权重计算方式。

优先级是什么?有什么用?

先提出一个问题:如果一个元素通过多种方式设置了字体大小,那么浏览器在最后渲染时会使用哪个属性值呢?

其实,浏览器会通过优先级来判断哪些属性值与一个元素最为相关,从而在该元素上应用这些属性值。优先级是基于不同种类选择器组成的匹配规则。

换种说法,优先级就是分配给指定的 CSS 声明的一个权重,它由 匹配的选择器 中的 每一种选择器类型的数值 决定。

总结一下:

  • 权重决定了你css规则怎样被浏览器解析直到生效,css权重关系到你的css规则是怎样显示的。

  • 当很多的样式被应用到某一个元素上时,权重决定哪种样式生效。

  • 每个选择器都有自己的权重。你的每条css规则,都包含一个权重级别。 这个级别是由不同的选择器加权计算的,通过权重,不同的样式最终会作用到你的网页中 。

  • 如果两个选择器同时作用到一个元素上,权重高者生效。

权重的计算规则

接着介绍权重的计算规则:

  • 第一优先级:!important会覆盖页面内任何位置的元素样式

  • 内联样式,如style="color: green",权值为1000

  • ID选择器,如#app,权值为0100

  • 类、伪类、属性选择器,如.foo, :first-child, div[class="foo"],权值为0010

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Web面试那些事儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值