CSS权重及其计算

CSS权重及其计算:

CSS的意思

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

如果你不了解CSS权重,写CSS代码的过程中使用各种选择器时,你不知道哪个选择器的优先级高,哪个选择器的优先级低,就只能最原始最粗俗的方式是“死记硬背”,但如果理解了CSS权重后,会事半功倍!!!

选择器优先原则:!important > 行间样式 > ID 选择器 >class 选择器|伪类选择器|属性选择器 >元素选择器|伪元素选择器 > 通配符选择器|子选择器选择器|相邻兄弟选择器

1.关于CSS权重

是指样式的优先级,有两条或多条样式作用于一个元素,权重高的那条样式对元素起作用,权重相同的,后写的样式会覆盖前面写的样式。

CSS权重权重值例如
!important(加在样式属性值后)10000demo{ background-color:red!important; }
行间样式1000style=""
id100#content
class、属性、伪类10.demo{}、[span]{}、a:link {color:red;}
标签、伪元素1div{}
通配符(*)、子选择器(>)、相邻选择器(+)、同胞选择器(~)0*{}、div > span{}

注意:上图中的数值不是我们日常生活中使用的10进制数值,而是256进制数!!

!important的权重值在256数值中是正无穷大的数,在权重运算过程中,正无穷+1和正无穷相比,如果在数学的角度来说是无法比较的,但在计算机中,始终是正无穷+1>正无穷,这是因为计算机表示的数字是有穷的(即有界),计算机里面的正无穷表示一个定量值,所以无穷大的数在计算机中运算是能与无无穷大的数比较的,无论是哪种计算机语言的运算,都是如此!

2.CSS权重计算

CSS文件
demo.css

/*这是class选择器*/
.classDiv .classP{
	/*权重值:(.classDiv=10)+ (.classP=10) =20 */
	background-color: red;
}
/*
这个是id选择器
*/
#idDiv #idP{
	/*权重值:(#idDiv=100) + (#idP= 100) = 200 */
	background-color: green;
}
/*这是id选择器和class选择器*/
#idDiv .classP{
	/*权重值:(#idDiv=100) + (.classP= 10) = 110*/
	background-color: pink;
}

/*这个是id选择器 和 标签选择器*/
#idDiv p{
	/*权重值:(#idDiv=100) + (p=1)=101*/
	background-color: yellow;
}

HTML文件
cry.html

<html lang="zh,en">
<head>
	<title>myWeb</title>
	<meta charset="utf-8">
	<link rel="stylesheet" type="text/css" href="demo.css">
</head>
<body>
	<div class="classDiv" id="idDiv">
		<p class="classP" id="idP">
			Test
		</p>
	</div>
</body>
</html>

运行结果

从上图很明显地我们就可以看见权重值运算是根据选择器的权重值运算,权重值大的优先级大于权重值小的,所以输出权重值大的输出结果!

以上没有列出所有情况,但运算的方式大同小异,希望此文章可以帮助到你!!
总结的较为粗略,以上如有误,可在评论区指正!!!
谢谢浏览!

  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
CSS选择器的权重计算是通过CSS Specificity(特殊性)来确定的。在计算权重时,可以按照以下规则进行计算: 1. 选择器的特殊性由选择器本身的组成部分决定,包括元素选择器、类选择器、id选择器和内联样式。通常来说,id选择器的特殊性最高,其次是类选择器和属性选择器,再次是元素选择器。 2. 对于相同特殊性的选择器,后面出现的选择器会覆盖前面出现的选择器。 3. 使用!important声明的样式具有最高的特殊性,将覆盖其他所有的样式。 根据上述规则,可以用以下公式来计算选择器的权重: - id选择器:权重为1,例如#myId{} - 类选择器、属性选择器或伪类选择器:权重为10,例如.class{}、[type="text"]{}、:hover{} - 元素选择器或伪元素选择器:权重为100,例如div{}、::before{} - 内联样式:权重为1000,例如<div style="color:red;"> 在计算完各个选择器的权重后,具体的权重比较规则是:按照权重从左到右依次比较,权重值较大的样式会覆盖权重值较小的样式。 需要注意的是,CSS权重计算只适用于冲突的样式规则。如果没有发生冲突,那么所有样式规则都会生效。 总结起来,CSS选择器的权重计算是通过特殊性来确定的,特殊性由选择器本身的组成部分决定,而权重比较是按照权重从左到右依次比较的原则。这样,在编写CSS样式时,我们可以更好地控制样式的优先级。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [CSS选择器与权重计算(详细)](https://blog.csdn.net/weixin_44164982/article/details/107227294)[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: 50%"] - *2* *3* [CSS选择器的权重计算](https://blog.csdn.net/u010297791/article/details/58602255)[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: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

四块五.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值