`
liboxlu
  • 浏览: 63402 次
  • 性别: 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技术理论:CSS层叠与继承 一、CSS层叠 我们知道文档中的一个元素可能同时被多个CSS选择器选中,每个选择器都有一些CSS规则,这就是层叠。这些规则有可能不矛盾的,自然这些规则将会同时起效,然而有些规则是相互...

    Web开发培训第8课-CSS继承和层叠.pptx

    Web开发培训第8课-CSS继承和层叠.pptx

    CSS的继承与层叠.pdf

    CSS的继承与层叠.pdf 学习资料 复习资料 教学资源

    html+css+js网页设计

    层叠和继承: 理解 CSS 层叠规则和继承机制,以及如何通过合理的样式层叠和继承来管理样式。 布局技巧: 实现复杂的布局可能需要使用一些技巧,如弹性布局、网格布局、定位布局等,需要深入理解和实践。 兼容性和...

    CSS(层叠样式表)笔记.txt

    CSS(层叠样式表)是一种用于控制网页样式和布局的语言,它赋予网页以美观的外观和结构。通过将HTML文档与CSS样式分离,开发人员可以更好地管理、修改和维护网页的外观。以下是关于CSS笔记的详细描述: 样式规则: ...

    CSS样式继承和层叠

    主要介绍了CSS样式继承和层叠的相关资料,需要的朋友可以参考下

    CSS层叠样式表的层叠是什么意思(自我理解)

    基本上层叠的意思就是“继承”、“权重”、“覆盖”,通过良好的层级命名更好的实现效果,更少的代码,更多的功能,下面为大家详细介绍下,感兴趣的朋友不要错过

    CSS教程:学习CSS的继承性

    CSS是层叠样式表(Cascading Style Sheets)的简称,它的规范代表了互联网历史上一个独特的发展阶段。现在对于从事网页制作的朋友来说,很少没有听说过CSS了吧,因为在制作网页过程中我们经常需要用到。CSS允许我们为...

    CSS特殊性、继承与层叠

    主要介绍了CSS特殊性、继承与层叠的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    CSS3笔记1

    多背景(CSS3)凹凸文字导航栏案例文本的装饰CSS 三大特性CSS层叠性CSS继承性CSS优先级CSS特殊性(Specificity)盒子模型(CSS重点)看

    《CSS设计彻底研究》光盘源码

     1.5.1 继承关系   1.5.2 CSS继承的运用   1.6 CSS的层叠特性  1.7 本章小结  第2章 “CSS禅意花园”作品鉴赏   2.1 “CSS禅意花园”简介   2.2 郊野——两列布局   2.3 像素画——三列布局  ...

    精通CSS高级Web标准解决方案-包含源码(高清PDF中文版)

    本书将最有用的CSS技术汇总在一起,在介绍基本的CSS概念和最佳实践之后,讨论了核心的CSS技术,例如图像、链接、列表操纵、表单设计、数据表格设计以及纯CSS布局。每一章内容由浅入深,直到建立比较复杂的示例。之后...

    css设计彻底研究 源代码

    1.3.2 类别选择器 1.3.3 ID选择器 1.4 复合选择器 1.4.1 “交集”选择器 1.4.2 “并集”选择器 1.4.3 后代选择器 1.5 CSS的继承特性 1.5.1 继承关系 1.5.2 CSS继承的运用 1.6 CSS的层叠特性 1.7...

Global site tag (gtag.js) - Google Analytics