`
lbyzx123
  • 浏览: 476174 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

CSS样式覆盖规则 Css优先级

 
阅读更多
大家都知道CSS的全称叫做“层叠样式表”,但估计很多人都不知道“层叠”二字的含义。其实,“层叠”指的就是样式的覆盖,当一个元素被运用上多种样式,并且出现重名的样式属性时,浏览器必须从中选择一个属性值,这个过程就叫“层叠”。样式覆盖(这种叫法更大众化些)遵循一定的规则,之前我对这个规则一直似懂非懂的,直到这几天看了”CSS: The Missing Manual”,才豁然开朗。下面是我的一些学习笔记。

 

首先需要明确的是,很多情况都会导致一个元素被运用上多种样式,样式覆盖的规则也需要根据不同的情况来定,具体规则如下。

规则一:由于继承而发生样式冲突时,最近祖先获胜。CSS的继承机制使得元素可以从包含它的祖先元素中继承样式,考虑下面这种情况:
<html>
<head>
<title>rule 1</title>
<style>
body {color:black;}
p {color:blue;}
</style>
</head>
<body>
    <p>welcome to <strong>gaodayue的网络日志</strong></p>
</body>
</html> 

strong分别从body和p中继承了color属性,但是由于p在继承树上离strong更近,因此strong中的文字最终继承p的蓝色。

规则二:继承的样式和直接指定的样式冲突时,直接指定的样式获胜。在上面的例子中,假如还指定了strong元素的样式,如:

1 strong {color:red;} 

那么根据规则二,strong中的文字最终显示为红色。

规则三:直接指定的样式发生冲突时,样式权值高者获胜。样式的权值取决于样式的选择器,权值定义如下表。

css选择器 权值 
标签选择器 1 
类选择器 10 
ID选择器 100 
内联样式 1000 
伪元素(:first-child等) 1 
伪类(:link等) 10 

可以看到,内联样式的权值>>ID选择器>>类选择器>>标签选择器,除此以外,后代选择器的权值为每项权值之和,比如”#nav .current a”的权值为100 + 10 + 1 = 111。

规则四:样式权值相同时,后者获胜。考虑下面这种情况

1 <pclass=”byline”>Written by <aclass=”email”href=”mailto:jean@cosmofarmer. com”>Jean Graine de Pomme</a></p> 

1
2 .byline a {color:red;}
p .email {color:blue;} 

“.byline a”与”p .email”都直接指定了上面的a元素,且权值都为11,根据规则四,最终显示蓝色。

由于样式表可以是外部的,也可以是内部的,规则四提醒我们要注意外部样式表引入的顺序(及<link>元素的顺序),以及外部样式表与内部样式表的出现位置。一般来说,内部样式表出现在所有外部样式表的引入之后,一般是在</head>之前。

规则五:!important的样式属性不被覆盖。!important可以看做是万不得已的时候,打破上述四个规则的”金手指”。如果你一定要采用某个样式属性,而不让它被覆盖的,可以在属性值后加上!important,以规则四的例子为例,”.byline a {color:red !important;}”可以强行使链接显示红色。大多数情况下都可以通过其他方式来控制样式的覆盖,不能滥用!important。

 

分享到:
评论

相关推荐

    css优先级总结

    CSS优先级是指当多个样式规则同时作用于同一个HTML元素时,决定哪个样式规则最终被应用的规则体系。了解并掌握CSS优先级对于解决样式冲突问题至关重要。 ##### 1. 大小写不敏感性 CSS属性名和值不区分大小写。例如...

    css样式应用优先级实用PPT课件.pptx

    CSS 样式应用优先级是指在CSS样式规则应用时的顺序和优先级。该优先级规则决定了哪些样式规则将被应用于HTML元素。下面是CSS样式应用优先级的详细解释: 1. 重要声明(!important) 重要声明是CSS样式规则中最高的...

    css样式优先级比较实例

    了解这些基本原理后,你可以更精确地控制CSS样式,避免不必要的覆盖和冲突。在开发过程中,合理使用选择器权重可以帮助优化代码结构,提高可维护性。记住,尽量避免过度依赖`!important`,因为它会降低代码的可读性...

    CSS优先级总结.pdf

    CSS优先级总结是一个非常重要的知识点,它决定了CSS样式的应用顺序和优先级。在CSS中,优先级是指样式规则的应用顺序,高优先级的样式规则将覆盖低优先级的样式规则。 在CSS中,有多种选择器可以用来指定样式规则,...

    HTML5&CSS3网页制作:CSS优先级.pptx

    在多个CSS规则应用于同一元素时,理解CSS优先级至关重要,因为它决定了哪个样式会生效。这个概念对于创建美观且功能完备的网页至关重要。 首先,我们来探讨CSS优先级的基本原则: 1. 继承性:当一个元素没有明确的...

    CSS 优先级 详细分析

    CSS优先级是网页设计中一个至关重要的概念,它决定了浏览器如何解析和应用样式规则,从而影响页面元素的呈现。在深入探讨优先级之前,我们先简单回顾一下CSS的基础。CSS,全称为层叠样式表(Cascading Style Sheets...

    CSS优先级冲突:终极解决指南

    CSS优先级是指在多个样式规则同时应用于同一元素时,决定哪一个规则会被执行的机制。这个机制基于以下几点来确定优先级: 1. **内联样式**:直接写在HTML元素上的`style`属性具有最高的优先级。 2. **ID选择器**:...

    使用DIV+CSS做网站时CSS样式的优先级

    CSS 样式的优先级是指在多个样式规则同时作用于同一个元素时,浏览器如何决定采用哪一个样式规则。一般来说,CSS 样式的优先级顺序是:[1 位重要标志位] &gt; [4 位特殊性标志] &gt; 声明先后顺序。 使用 `!important` ...

    CSS优先级计算的规则

    CSS优先级计算规则是网页设计与开发中的一个基础知识点,它决定了当多个CSS规则应用于同一元素时...在实际开发中,合理利用CSS优先级规则,可以帮助开发者更有效地控制样式的应用和覆盖,从而达到预期的网页设计效果。

    css样式的优先级详解(本人整理过的,做过笔记)

    最权威的CSS样式优先级,本人整理过的,做过笔记。

    css优先级98908u0

    #### CSS优先级的基本规则 在CSS中,样式表的优先级决定了元素最终采用哪一套样式。理解CSS优先级的基本规则对于开发人员来说至关重要,尤其是在处理复杂的页面布局时。 1. **ID选择器**:具有最高的优先级,形如`...

    解决CSS样式冲突的几个办法(小结)

    通过使用组合器(Combinator)将选择器的描述写得更加精确(参考CSS选择器 – MDN ),例如对于下述代码片段,如果想给.cellphones中的.apple增加样式,只使用.apple,势必会对.fruit中的.apple也造成影响。...

    SharePoint 的CSS样式

    5. **CSS优先级**:理解CSS的优先级规则(内联样式 &gt; ID选择器 &gt; 类选择器 &gt; 标签选择器)对于确保自定义样式生效至关重要。 在实践中,通过深入研究"CSS Reference Chart for SharePoint 2007",你可以: 1. **...

    css样式应用优先级实用PPT学习教案.pptx

    简而言之,CSS样式应用优先级的基本规则是:`!important` &gt; 内联样式 &gt; ID选择器 &gt; 类选择器 &gt; 属性选择器和伪类 &gt; 元素选择器 &gt; 通配符选择器。结合符的使用可以进一步增加选择器的特异性,从而提升优先级。在编写...

    CSS样式参考.rar

    这个名为“CSS样式参考.rar”的压缩包包含了一个名为“CSS参考.doc”的文档,很显然,它是为初学者或有经验的开发者提供的一份CSS样式指南。 **CSS基础** 1. **选择器**:CSS中的选择器用于选取我们想要样式的HTML...

    CSS优先级规则的细节

    详解CSS优先级的读法,CSS优先级包含四个级别(文内选择符,ID选择符,Class选择符,元素选择符)以及各级别出现的次数。根据这四个级别出现的次数计算得到CSS的优先级。  最近看到篇对CSS优先级有比较好的解释的...

    element.style覆盖样式因优先级顺序导致的解决方法

    CSS优先级的基本规则如下: 1. **内联样式(Inline Styles)**:如`;"&gt;`,优先级最高。 2. **内部样式表(Internal Style Sheets)**:如`&lt;style&gt;`标签中的样式,优先级次之。 3. **外部样式表(External Style ...

    Web前端开发中新手必看的CSS优先级关系教程共3页.pd

    在Web前端开发中,CSS(层叠样式表)...同时,理解并掌握CSS优先级关系也能帮助开发者在遇到样式冲突时快速定位问题,节省调试时间。因此,无论是新手还是经验丰富的开发者,都应重视对CSS优先级的深入理解和实践应用。

    CSS样式表中文手册教程(我见过最好的,共享了!)

    这个“CSS样式表中文手册教程”提供了全面的CSS知识,对于Web开发者来说是极有价值的资源。 首先,CSS的基础概念是至关重要的。它由选择器和声明组成,选择器定位要应用样式的元素,而声明则定义具体的样式规则。...

    网页css优先级为您详细解读

    在多个CSS样式规则可能同时应用于同一HTML元素的情况下,CSS优先级决定了哪些规则将最终被浏览器所采用。 CSS优先级的规则基于几个原则,主要包括特殊性的权重计算和选择器类型的区分。特殊性是一个量度,用以表示...

Global site tag (gtag.js) - Google Analytics