CSS 选择器的优先级!important ,style,id,class,标签,后代选择器和子代选择器

100 篇文章 1 订阅

一、固定的优先级:

CSS选择器的优先级(从上至下,依次递减,权重值相同另考虑):

选择器权重
!important Infinity,“无穷大”(无法被超越)
行内样式(style=“”)1000
id选择器(#id)100
类选择器(.className)10
属性选择器(a[rel="external"])10
伪类选择器(a:hover,li:nth-child)10
标签选择器(div,h1,p)1
伪元素选择器1
子选择器、相邻选择器0
通配符选择器(*)0

注意:如果选择器的权重相同,优先级以代码出现的先后顺序,后出现的选择器样式为最终样式。通过js控制的样式也是最终样式。

二、变化的优先级:

相邻选择器(h1+p)
子选择器(ul>li)
后代选择器(li a)

判断优先级,以权重为指标,权重越大优先级越高:

一般约定 id选择器的权重为100,类选择器权重为10,标签选择器权重为1。

一个复杂的选择器的权重等于所有选择器的权重之和。

在后代选择器中其权重值达到了100+1=101超过了id选择器,所以可以排到id选择器之前。

!important的优先级虽然是最高的,不过如果出现相同的!important,那么就会再次对比选择器的优先级谁高,决定最终使用哪个样式。

CSS选择器优先级是由多个因素决定的。一般情况下,选择器优先级由其组成部分的权重决定,具体规则如下: 1. 使用!important标记的样式具有最高优先级,会覆盖其他所有样式。 2. 选择器中包含的ID选择器的权重最高,接下来是类选择器和属性选择器,最后是标签选择器。例如,#id选择器的权重高于.class选择器,而.class选择器的权重又高于标签选择器。 3. 组合选择器(如子选择器后代选择器等)的优先级与组合中各个选择器优先级相加。例如,div p选择器优先级高于div选择器。 4. 当具有相同优先级选择器应用于同一个元素时,后面出现的选择器具有更高的优先级。这意味着后渲染的样式会覆盖先渲染的样式。 为了避免样式冲突和样式覆盖的问题,可以采取以下措施: 1. 确保选择器的权重足够高,以覆盖其他可能的选择器。可以使用ID选择器或!important标记来提高权重,但需要谨慎使用!important,尽量避免滥用。 2. 使用更具体的选择器来定位目标元素,以减少与其他元素的冲突。 3. 避免使用嵌套选择器和通用选择器,这样可以减少选择器的复杂性和权重。 4. 使用样式层叠和继承的特性,合理组织样式表的结构,使得样式之间相互独立且易于维护。 通过合理的选择器使用和样式组织,可以有效地解决CSS选择器优先级的问题,避免样式冲突和样式覆盖的情况发生。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [CSS选择器优先级](https://blog.csdn.net/qq_40920910/article/details/122920539)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

草字

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

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

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

打赏作者

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

抵扣说明:

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

余额充值