CSS的三大特性:层叠性,继承性,优先级。
1.层叠性
相同选择器给设置相同的样式,此时一个相同的样式就会覆盖(层叠)另一个冲突的样式,层叠性主要解决样式冲突问题。
层叠性原则:
样式冲突遵循的原则就是就近原则,那个样式离结构近,就执行那那个样式。
样式不冲突,不会叠加。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
div {
font-size: 50px;
}
div {
color: pink;
}
</style>
</head>
<body>
<div>刘德华</div>
</body>
</html>
2.继承性
恰当的使用继承可以简化代码,降低CSS的复杂性。
子元素可以继承父元素的样式(text-,font-,line- 这些元素开头的可以继承,以及color属性)
CSS中的继承性:子标签会继承父标签的某些此样式,如文本的颜色和字号,简单理解:子承父业
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
div {
color: pink;
font-size: 20px;
}
</style>
</head>
<body>
<div>
<p>刘德华</p>
</div>
</body>
</html>
3.优先级
当同一个元素指定多个选择器就会由优先级产生。
选择器相同,则执行层叠性。
选择器不同,则根据选择器权重执行
选择器 | 选择器权重 |
标签选择器 | 0,0,0,1 |
类选择器,伪类选择器 | 0,0,1,0 |
Id选择器 | 0,1,0,0 |
行内选择器 style=" " | 1,0,0,0 |
继承<通配符选择器<标签选择器<类选择器<id选择器<行类样式<!important(无穷大)
注意点:
- 权重是由四组数字组成,但不会有进位。
- 可以理解为类选择器永远大于元素选择器,id选择器永远大于类选择器。
- 等级判断,从左向右,如果某一位数值相同,则判断下一位数值。
- 可以简单记忆法:通配符和继承权重为0,标签选择器为1,类(伪类)选择器10,id选择器为100,行类样式为1000,!important 无穷大。
- 继承的权重为0,如果该元素没有直接选中,不管父元素权重多高,子元素得到的权重都是0。
- 权重叠加:如果是复合选择器,则会有权重叠加,需要计算权重多高
div ul li ——> 0,0,0,3
a:hover ——>0,0,1,1
.nav ul li ——>0,0,1,2
.nav a ——> 0,0,1,1