CSS层叠性和继承性:
层叠性:子容器的样式会继承父容器的样式。但并不是所有的样式都能继承。只有部分样式能继承,比如:文字相关字体大小、颜色、字体样式、行高、鼠标样式等。
例如:<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#two{color:red;
font-size:30px;
width:200px;
height:300px;
}
.one{
color:blue;
width:200px;
height:300px;
}
</style>
</head>
<body>
<p class="one" id="two">重要消息</p>
</body>
</html>
因为对于相同方式的样式表,其选择器排序的优先级为:ID选择器 > 类选择器 > 标签选择器
并不是所有的CSS属性都可以继承,例如,下面的属性就不具有继承性:
继承性:所谓继承性是指书写CSS样式表时,子标记会继承父标记的某些样式,如文本颜色和字号。
例如:<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
#two{
font-size:300px;
color:blue;
}
.one{
color:red;
}
</style>
</head>
<body>
<p id="two">内容</p>
<p class="one">123</p>
</body>
</html>
定义CSS样式时,经常出现两个或更多规则应用在同一元素上,这时就会出现优先级的问题。
选择器排序的优先级为:ID选择器 > 类选择器 > 标签选择器**
ID选择器 :100;
类选择器 :10;
标签选择器:1;
对应的权重值:
p strong{ color:black} /权重为:1+1/
strong.blue{ color:green;} /权重为:1+10/
.father strong{ color:yellow} /权重为:10+1/
p.father strong{ color:orange;} /权重为:1+10+1/
p.father .blue{ color:gold;} /权重为:1+10+10/
#header strong{ color:pink;} /权重为:100+1/
#header strong.blue{ color:red;} /权重为:100+1+10/
在考虑权重时,还需要注意一些特殊的情况,具体如下:
1.继承样式的权重为0。
2.行内样式优先。
3.权重相同时,CSS遵循就近原则。
4.CSS定义了一个!important命令,该命令被赋予最大的优先级。
复合选择器的权重为组成它的基础选择器权重的叠加,但是这种叠加并不是简单的数字之和。