CSS层叠就是指在样式表里有多条相同选择器的样式声明时,这些声明之间的优先级如何确定,以及声明相同的情况下,如何选择其中的某一条作为生效样式。
以下是CSS中重要的层叠概念详解的完整攻略:
基本层叠规则
在CSS中,层叠规则由以下几个因素构成,按优先级排列:
- !important声明:该声明的优先级最高,会覆盖其他所有规则。
 - 内联样式:放在HTML标记中的样式表,方法是在HTML标记的style属性中定义。
 - ID选择器:ID选择器的优先级高于类选择器和标签选择器。
 - 类选择器、属性选择器、伪类选择器:这些选择器的优先级相同,仅次于ID选择器。
 - 标签选择器:优先级最低的选择器类型,当其他规则都无法匹配时生效。
 
层叠顺序
由于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选择器中定义的样式。
The End


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)