CSS样式的层叠性

层叠性就是相同的选择器给设置相同的样式(值不一样),此时一个样式就会层叠另一个冲突的样式。

层叠性原则

样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式。
样式不冲突,不会层叠。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*就近原则,后来居上,层叠red,显示blue*/
div {
color: red;
}

div {
color: blue;
}
</style>
</head>
<body>
<div>码农浅知-高质量码农编程学习笔记</div>
</body>
</html>

CSS样式的继承性

子标签会继承父标签的某些样式(text- font- line- color)。恰当地使用继承可以简化代码,降低CSS样式的复杂性。
行高的继承性:
行高可以跟单位,也可以不跟单位。

行高继承的优势在于子元素可以根据自己文字大小自动调整行高。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*p标签继承父标签div的red颜色*/
div {
color: red;
/*font: 14px/14px 'Microsoft YaHei';*/
/*以下写法表示:如果子元素p没有设置行高,则p行高=1.5 * p文字大小 */
font: 14px/1.5 'Microsoft YaHei';
}
</style>
</head>
<body>
<div>
<p>码农浅知-高质量码农编程学习笔记</p>
</div>
</body>
</html>

CSS样式的优先级

当同一个元素(标签)有多个选择器为其设置样式,就会有优先级的产生。

选择器相同,则执行层叠性。

选择器不同,则根据选择器权重执行。

继承或者 * 权重为 (0,0,0,0)
标签选择器,伪元素选择器 (0,0,0,1)
类选择器,伪类选择器、属性选择器 (0,0,1,0)
id选择器 (0,1,0,0)
行内样式 (1,0,0,0)
!important 无穷大

权重叠加:如果是复合选择器,则会有权重叠加。

码农浅知-CSS样式的三大特性层叠性继承性和优先级