学习过面向对象语言的读者,对于继承的概念一定不会陌生。在CSS语言中的继承并没有像在C++和Java等语言中的那么复杂,下面就CSS的继承特性做一详细介绍。
简单的说就将将各个HTML标记看作一个个容器,其中被包含的小容器会继承包含它的大容器的风格样式。本节从页面各个标记的父子关系出发,来详细地讲解CSS的继承。
一、什么是CSS的继承特性
所有的CSS语句都是基于各个标记之间的继承关系的,为r更好地理解继承关系,首先从HTML文件的组织结构人手,如下例所示,
相应的页面效果如图1所示:
图1 包含多层列表的页面
可以看到这个页面中,标题的前两个文字使用了<em>(强调)标记,在浏览器中显示为斜体。后面使用了列表结构,其中最深的部分使用了三级列表。
这里着重从“继承”的角度来考虑各个标记之阃的“树”型关系。如图2所示。在这个树型关系中,处于最上端的<html>称之为"根(root)",它是所有标记的源头,往下层层包含。在每一个分支中,称上层标记为其下层标记的“父”标记;相应地,下层标记称为上层标记的“子”标记。例如<h1>标记是<body>标记的子标记,同时它也是<em>的父标记。lodidance.com
图2 继承关系树型图
二、CSS继承的运用
通过上一节的讲解,已经对各个标记间的父子关系有了认识,下面进一步了解CSS继承的运用。CSS继承指的是子标记会继承父标记的所有样式风格,并可以在父标记样式风格的基础上再加以修改,产生新的样式,而子标记的样式风格完全不会影响父标记。
例如在前面的案例中加入如下CSS代码,即将hl标记设置为蓝色,加上下划线,并将em标记设置为红色,示例文件位于网页CSS教程资源中“第1章\14.htm”。
显示效果如图3所示,可以看到其子标记em也显示出下划线,说明对父标记的设置也对子标记产生效果,而em文字显示为红色.h1标题中其他文字仍为蓝色,说明对子标记的设置不会对其父标记产生作用。
图3 父子关系示例
CSS的继承贯穿整个个css设计的始终,每个标记都遵循着CSS继承的概念。可以利用这种巧妙的继承关系,大大缩减代码的编写量,并提高可读性,尤其是在页面内容很多且关系
复杂的情况下。
例如,现在如果要嵌套最深的第3级州表的文字显示为绿色,那么增加如下样式设置:
效果将如图4示,所有列表项目的文字都变成了绿色。要仪使"CSS"项下的最深的3个项目显示为绿色,其他项目仍显示为黑色,该怎么没置呢?
图4 各级列表均变成绿色
一种方法是设置单独的类别,比如定义一个“.green”类别,然后将该类别赋予需要变为绿色的项目,但是这样设置显然很麻烦。
可以利用继承的特性,使用前面介绍的“后代选择器”。这样不需要设置性的类别,即可完成同样的任务,示例文件位于网页CSS教程资源中“第1章\15.htm”。
实际上,对上面的选择器,还可以化简,比如化简为:
效果也是完全相同的。最后给读者出一个选掸题,请读者思考,如果设置改为:
那么在最终的效果中,绿色显示的文字一共有几行,备选答案为:
(A) 3行
(B) 6行
(C) 8行
(D) 9行
(E) 10行
请读者一定要亲自在浏览器中实验一下.看一看结果如何,很可能和你想象的不同。如果和判断的结果不同,再仔细思考一下其中的原因。
以上就是精品学习提供的关于CSS的继承特性的内容,希望能够带给您帮助。