CSS层叠就是指在样式表里有多条相同选择器的样式声明时,这些声明之间的优先级如何确定,以及声明相同的情况下,如何选择其中的某一条作为生效样式。
以下是CSS中重要的层叠概念详解的完整攻略:
在CSS中,层叠规则由以下几个因素构成,按优先级排列:
由于CSS可以在多个文件和位置中定义样式,同一样式可能会被定义多次,此时就需要确定样式的层叠顺序。由上述基本规则,确定优先级的方法是通过以下三个过程:
其中,CSS选择器的属性选择应该优先使用ID选择器,其次是class选择器,最后才是标签选择器,因为ID选择器的权重最大,所以在权重没有特别要求的时候应该优先使用ID选择器。
为了保证样式的简洁性和可设置性,应该尽量避免使用!important声明,且避免使用内联样式,优先在文件中通过选择器定义样式。
以下是两个示例:
p {
color: red;
}
#text {
color: blue;
}
<h1>标题</h1>
<p>这是一个段落。</p>
<p id="text">这是另一个段落。</p>
在本示例中,第一个p段落会用红色的颜色进行渲染,第二个p段落会用蓝色的颜色进行渲染,ID选择器的优先级高于标签选择器。
.menu>.item {
color: blue;
}
.item {
color: red;
}
<div class="menu">
<a class="item">主页</a>
</div>
在本示例中,a标签的文字颜色会被定义为红色,而不是蓝色。因为同级别的选择器,后解析的会优先生效,即在.item选择器更靠下的位置出现的样式覆盖了在.menu>.item选择器中定义的样式。