`
liboxlu
  • 浏览: 64282 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

css层叠和继承间的关系

    博客分类:
  • css
阅读更多
css中元素样式既能从父层继承,也有层叠的规则,那么,如果有如下代码,其在浏览器内会如何显示呢?
.warning { color: red; }
p { color: green; }
<p class=”warning”>层叠和继承的规则如何实现?</p>
此代码在浏览器中的显示为红色,这是由于类选择器“warning”和类型选择器“p”的“特殊性”不同,具体原理如下:
特殊性 (specificity)描述了不同选择器的相对权重(weight)。一个选择器的特殊性是这样计算的:

·如果CSS属性是通过 (X)HTML元素的style属性定义的,则记为a=1,否则记为0;
由于style属性是写在(X)HTML标签内的,因此不存在选择器, 所以:a=1, b=0, c=0, 且 d=0;
·计算选择器中ID选择器的数量,计为b;
·计算选择器中类选择器、属性选择器和 伪类的数量,计为c;
·计算选择器中类型选择器的数量,计为d;
·忽略伪元素。

将这4个数字 (a, b, c, d)相连(数字进制要以大的为准),得到特殊性。例如:

{ …… }         特殊性 = 0, 0, 0, 0
li { …… }         特 殊性 = 0, 0, 0, 1
ul li { …… }         特殊性 = 0, 0, 0, 2
ul ol+li { …… }         特 殊性 = 0, 0, 0, 3
h1 + [rel="up"] { …… }         特殊性 = 0, 0, 1, 1
ul ol li.warning { …… }         特 殊性 = 0, 0, 1, 3
li.menu.level { …… }         特殊性 = 0, 0, 2, 1
#x34y { …… }         特 殊性 = 0, 1, 0, 0
<p styel=”……”>         特殊性 = 1, 0, 0, 0


特殊性高的规则会取代特殊性低的规则,无论其书写的先后顺序如何,例如:
h1 {color red;}           0,0,0,1
body h1 {color green;}   0,0,0,2 (胜 出)


或者:
h2.grape {color purple;}    0,0,1,1 (胜出)
h2 {color silver;}          0,0,0,1

在特殊性的框架下,继承的特殊性为“0”。也就 是说,任何显式的规则声明都会覆盖掉继承的样式,例如有如下代码:
em { color: blue; }
p.list { color: gray; }
<p class="list"& gt;继承的特殊性为<em>“0”</em>。</p>

虽然“p.list”的特殊性为“0, 0, 1, 1”,但是,对“em”的color声明还是会覆盖掉从“p.list”继承的color样 式
因此,如果需要让p内的em能呈现和p一样的颜色,则需要如下定义:
p.list,
p.list em { color gray; }

转自:http://hi.baidu.com/lansesansan/blog/item/37e0518d5b5689e2f01f3634.html
分享到:
评论

相关推荐

    CSS中的继承关系

    在CSS(层叠样式表)的设计...综上所述,CSS中的继承关系是前端开发中不可或缺的一部分,它简化了样式设置过程,增强了代码的可维护性和一致性。理解并熟练掌握继承机制,对于提升网页设计的效率和质量具有重要意义。

    CSS层叠样式表

    ### CSS层叠样式表:深度解析与应用 #### 一、CSS简介与重要性 CSS,全称为Cascading Style Sheets(层叠样式表),是由W3C组织制定的用于控制网页元素显示规则的一种强大技术。它允许网页设计者不仅能够高效地...

    CSS层叠样式表中文手册

    **CSS层叠样式表中文手册**是一份详细且全面的指南,旨在帮助用户理解和掌握CSS(Cascading Style Sheets)这一强大的网页设计语言。CSS是用于控制网页元素外观和布局的关键技术,它允许设计师分离内容与表现,使...

    个人收集的CSS 层叠样式表

    3. **层叠与继承**:CSS的“层叠”特性决定了当多个样式规则应用于同一元素时,哪些规则会生效。继承则是子元素可以继承父元素的部分样式。 **CSS的主要功能** 1. **布局控制**:CSS可以控制元素的尺寸(width, ...

    CSS 层叠和继承实现

    CSS层叠(Cascade)和继承(Inheritance)是CSS样式应用中的两个核心概念,它们决定了元素如何获取和处理样式规则。理解这两个概念对于创建一致且可预测的网页布局至关重要。 1. **层叠** 层叠是CSS处理多个样式...

    DIV+CSS(WEB标准)精通CSS层叠样式表

    最后,《5日精通CSS层叠样式表》可能是另一本快速学习教程,旨在帮助读者在较短的时间内熟练掌握CSS的核心概念和实践技巧。 综合这三个资源,学习者将获得全面的DIV+CSS知识,从基础到进阶,从理论到实践,一步步...

    CSS层叠样式表手册

    **CSS层叠样式表手册详解** CSS(Cascading Style Sheets)层叠样式表是用于描述HTML或XML(包括如SVG、MathML等各种XML方言)文档样式的样式表语言。CSS使得网页设计者可以将样式与结构分离,提高了网页的可读性、...

    浅谈CSS中的继承性,特殊性,层叠性和重要性

    CSS(Cascading Style Sheets)层叠样式表是用于控制网页外观和格式的标记语言,它通过继承性、特殊性、层叠性和重要性这四个核心特性来决定样式应用的优先级和规则。 继承性是指一些CSS属性可以被子元素继承,也...

    CSS的继承与层叠.pdf

    了解CSS的继承与层叠,可以帮助开发者更加精确地控制网页的样式表现,避免不必要的样式冲突,并有效减少重复代码,提升CSS代码的效率和可读性。在编写CSS时,合理利用这两个特性能够使样式系统更加清晰,有助于网站...

    CSS层叠与继承的使用深入剖析

    总之,理解CSS层叠和继承的概念及其工作原理,可以帮助开发者更好地控制网页的样式,避免样式冲突,提升页面设计的可维护性和一致性。通过巧妙地运用层叠和继承,可以创建出灵活且响应式的网页设计。

    HTML5&CSS3网页制作:CSS层叠性.pptx

    CSS层叠性和继承性是CSS样式表中的核心概念,它们决定了元素如何呈现样式。层叠性(Cascading)指的是当一个元素有多个样式规则时,浏览器如何决定使用哪个规则来呈现样式。继承性则是指子元素可以从父元素那里继承...

    CSS层叠样式表学习手册

    以上只是CSS层叠样式表的基础知识和一部分高级应用,深入学习还包括理解CSS的最新特性、最佳实践以及浏览器兼容性问题。通过持续实践和学习,可以掌握CSS,从而创建出美观、高效且易于维护的网页设计。

    CSS 属性详解 - 继承、层叠与类型

    本文全面解析了 CSS 中有关元素隐藏、继承属性、层叠规则以及不同显示类型的概念与用法。主要内容包含了 CSS 属性是如何遗传的,哪些常见属性能够从祖先继承,如何解决多重样式的冲突并理解 CSS 权重机制;阐述了 ...

    5日精通CSS层叠样式表

    《5日精通CSS层叠样式表》是一本旨在帮助读者快速掌握CSS核心技术的教程。CSS,全称为Cascading Style Sheets,是用于...《5日精通CSS层叠样式表》提供的实例和练习将确保理论知识与实践操作相结合,使学习更加高效。

    5日精通css层叠样式表

    《5日精通CSS层叠样式表》是一本旨在帮助读者快速掌握CSS(Cascading Style Sheets)技术的电子书。CSS作为网页设计的核心部分,它允许我们实现丰富的视觉效果,控制网页元素的布局和样式。在短短五天的学习中,本书...

    CSS 2 中文手册+5日精通CSS层叠样式表

    这套资料包括两部分:《CSS 2 中文手册》和《5日精通CSS层叠样式表》。 《CSS 2 中文手册》是CSS 2规范的中文版,它详细阐述了CSS 2的所有特性和语法,是理解CSS基础的必备参考资料。CSS 2是CSS的第二个版本,发布...

Global site tag (gtag.js) - Google Analytics