(1)CSS层叠性
层叠性指多种CSS样式的叠加。这是浏览器处理冲突的一个能力。
当出现样式冲突,会按照CSS书写的顺序,以最后的样式为准:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> div {
color: skyblue;
font-style: 30px;
}
div {
color: hotpink;
}
</style>
</head>
<body>
<div>月读当空照,斑爷对我笑。</div>
</body>
</html>
(2)CSS继承性
继承性是指在写CSS样式表时,子标签会继承父标签的某些样式。
- 恰当地使用继承可以简化代码,降低CSS样式的复杂性。
- 子元素可以继承父元素的样式(text-,font-,line-这些元素开头的都可以继承,一级color属性)。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> div {
color: pink;
font-size: 30px;
}
</style>
</head>
<body>
<div>
<p>胜利女神在微笑</p>
</div>
</body>
</html>
(3)CSS优先级/CSS特殊性(specificity)
CSS优先级是为了解决CSS层叠性的一些问题。
使用CSS specificity计算CSS权重:
- 继承/*贡献值------0.0.0.0;
- 标签贡献值------0,0,0,1;
- 类/伪类贡献值------0.0.1,0;
- ID贡献值-----0,1,0,0;
- 行内样式贡献值------1,0,0,0;
- !important贡献值------∞无穷大
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
/* 最大的 div { color: orange !important; } */
/* id选择器 0,0,1,0 */
#ning {
color: red;
}
/* 类选择器 0,0,1,0 */
.king {
color: blue;
}
/* 伪类选择器 0,0,1,0 */
:first-child {
color: green;
}
/* 标签选择器 0,0,0,1 */
div {
color: pink;
}
</style>
</head>
<body>
<div>
<p class="king" id="ning" style="color:skyblue">得来失 聚了散 千万莫求全</p>
</div>
</body>
</html>
权重叠加的例子:
div ul li ------ 0,0,0,2;
.nav ul li ------ 0,0,1,2;
a:hover ------ 0,0,1,1;
.nav a ------ 0,0,1,1;
#nav p ------ 0,1,0,1;
同一类选择器遵循就近原则
优先级总结:
权重是优先级的算法,层叠是优先级的表现。