源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 223|回复: 21

[CSS] 权重和层叠规则决定了CSS样式优先级

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2014-10-20 16:36:31 | 显示全部楼层 |阅读模式
基本的规则为同一级别的个数,数量多的优先级高,影响CSS样式权重的两个因素即顺序、数量,下面由几个示例,大家可以感受下 首先,给大家看一篇关于CSS优先级的示例

复制代码代码如下:
<span style=”font-size:14px;”><html>
<head>
<style type=”text/css”>
#redP p {
/* 权值 = 100+1=101 */
color:#F00; /* 红色 */
}
#redP .red em {
/* 权值 = 100+10+1=111 */
color:#00F; /* 蓝色 */
}
#redP p span em {
/* 权值 = 100+1+1+1=103 */
color:#FF0;/*黄色*/
}
</style>
</head>
<body>
<div id=”redP”>
<p class=”red”>red
<span><em>em red</em></span>
</p>
<p>red</p>
</div>
</body>
</html></span>


一、基本的优先级规则

比较同一级别的个数,数量多的优先级高,如果相同即比较下一级别的个数,至于各级别的优先级如下:

important > 内联 > ID > 类 > 标签 | 伪类 | 属性选择 > 伪对象 > 通配符 > 继承

二、CSS权重规则

在《页面重构中的模块化设计》中提到,影响CSS样式权重,有两个重要因素:

A:样式的优先级跟样式定义的顺序有关

B:权值的大小跟选择器的类型和数量有关

一般来说,在同一个CSS文件中,如果有两个同名的样式,则后定义的会覆盖先定义的。选择器类型的优先级见(一)。

那么,CSS的权重是怎么算的呢?

一个selector的权重表示方式:0.0.0.0,按照计算规则给每位填充数字,对应位置相等,则比较下一位。

权重的计算规则如下:(为方便,用A.B.C.D代替各位置的值)

1、内嵌样式:A=1,B=C=D=0(即1.0.0.0)

2、ID样式:selector中带几个ID,第2位就加几个1 如#header{color:red},就是A=C=D=0,B=1(即0.1.0.0)

3、类,伪类,以及属性的个数就是第三位的值:

.a.b[type="text"]:hover{},选择器中有2个类,1个属性,1个伪类,所以它的第3位为4, A=B=D=0,C=4,(即0.0.4.0)

4、伪元素和标签元素的个数就是第四位的值

p:first-letter,有一个标签元素p和伪元素first-letter,值为2,A=B=C=0,D=2(即0.0.0.2)

5、通配符和继承得到的CSS属性对权重没有影响

三、几个示例

针对以上,看以下几个示例

1、.a .b .c {color:red;} //0.0.3.0 说明:只有三个类

2、*{…} //0.0.0.0 说明:通配符对权重没有影响

3、.a .b a {color:green} //0.0.2.1 说明:两个类和一个标签

4、#hid {color:black;} //0.1.0.0 说明:只有一个ID
回复

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-10-14 15:28:56 | 显示全部楼层
还有什么好东西没
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-11-28 10:11:59 | 显示全部楼层
非常vbcbvcvbvcb
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-12-12 03:37:22 | 显示全部楼层
啪啪啪生怕PSP怕
回复 支持 反对

使用道具 举报

4

主题

1万

回帖

60

积分

注册会员

Rank: 2

积分
60
发表于 2023-6-26 03:21:21 | 显示全部楼层
先把创新班才能下班才能下班
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-12-8 21:34:21 | 显示全部楼层
来看看!!!
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

380

积分

中级会员

Rank: 3Rank: 3

积分
380
发表于 2024-3-10 17:36:53 | 显示全部楼层
额头额定法国队是范德萨
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

176

积分

注册会员

Rank: 2

积分
176
发表于 2024-5-18 16:41:04 | 显示全部楼层
哦哦哦ijhhsdj
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-6-14 12:40:12 | 显示全部楼层
老大你好你好好你好
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

115

积分

注册会员

Rank: 2

积分
115
发表于 2024-6-23 20:55:39 | 显示全部楼层
还可以不错
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2025-2-1 19:53 , Processed in 0.130317 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表