元素类型

元素是文档结构的基础,在CSS中,每个元素生成了一个包含了元素内容的框(box,也译为“盒子”)。但是不同的元素显示的方式会有所不同,例如<div>和<span>就不同,而<strong>和<p>也不一样。在文档类型定义(DTD)中对不同的元素规定了不同的类型,这也是DTD对文档之所以重要的原因之一。

…阅读全文…

CSS3新增选择器[2]:结构伪类(1)

4.7.3 结构伪类(Structural pseudo-classes)

CSS 3增加了大量的结构伪类,利用文档结构树来实现表现,从而可以减少页面内class属性和ID属性的定义,使得文档更加简洁。

提示:以下示例,请使用Google Chrome、Firefox 3.5+、Safari 3.1+或者Opera 9.63+查看。

…阅读全文…

CSS 3选新增择器[1]:更多的属性选择器

前言:Google的Chrome对于学习最新的CSS选择器的人来说是一个好消息,因为它支持CSS3的新选择器,所以本猫也把书里面没有展开介绍的部分,重新充实了一下。当然,书已经下印厂无法修改了,但是来这里看的人们可以先睹为快了。目前支持这3种匹配方式的属性选择器的浏览器有:IE 7.0、Firefox 2.0、Opera 9.2、Safari等。现在还有Google的Chrome。

CSS 3在CSS 2支持的选择器的基础上,又增加了多种功能强大而且非常实用的选择器,在本节内将对这些选则器作简单介绍。

…阅读全文…

7.4 垂直对齐:vertical-align属性

图7-34 文字和图片内容默认垂直对齐方式为基线对齐

上一小节讲解了行高与单行纯文字的垂直居中,而如果行内含有图片和文字,在浏览器内浏览时,读者可以发现文字和图片在垂直方向并不是沿中线居中,而是沿基线对齐,如图7-34所示。

这是因为,元素默认的垂直对齐方式为基线对齐(vertical-align: baseline)。

…阅读全文…

7.3 行高:line-height属性[3]

7.3.4 浏览器的差别与错误

浏览器在显示的时候往往会有自己的表现形式,例如在Opera内,行高将按照CSS定义的将行距除以2增加到内容区域的上下两边,而IE和Firefox则不是完全平分,如图7-29所示。

图7-29 不同浏览器对行高的显示

…阅读全文…

7.3 行高:line-height属性[2]——行高的计算与继承

7.3.3 行高的计算与继承

以em、ex和百分比为单位的行高,其基数是元素本身的字体尺寸。例如有代码如下:

<p style="font-size:20px;line-height:2em;">字高20px,行高2em。</p>
<p style="font-size:30px;line-height:2em;">字高30px,行高2em。</p>

2个段落的行高都为2em,但是字体大小不同,因此显示如图7-23所示。
…阅读全文…

7.3 行高:line-height属性[1]

提示:行高的概念看上去很简单――文字行的高度,其实,行高所涉及到的基础知识,对于今后理解其它属性也很重要。

大片密密麻麻的文字往往会让人觉得乏味,因此适当地调整行高(line-height)可以减低阅读的困难与枯燥,并且使页面显得美观。行高指的是文本行的基线间的距离,但是文本之间的空白距离不仅仅是行高决定的,同时也受字号的影响。

…阅读全文…

4.6层叠

在本书的[2.3.1 (X)HTML与浏览器内置样式]一节曾经介绍过,样式表可能有三个不同的来源:制作者、用户和浏览器。这三个来源的样式表可能在范围上有重叠,它们根据层叠规则互相作用。

4.6.1 层叠的顺序

CSS的层叠对每一个样式规则指定一个权重。如果要应用若干个规则,那么权重最大的那个规则具有优先权。层叠规则依据下面几个步骤进行:

…阅读全文…

4.5 继承

在本书的[3.3.2继承与层叠]一节曾经简要介绍过继承:(X)HTML元素可以从其父元素那里继承部分CSS属性,即使当前元素并没有定义该属性。

4.5.1 值的继承

继承也是基于文档树的,文档树中元素的某些属性可以被其子元素继承,每一个CSS属性都定义了它能否被继承。例如有下列代码,其在浏览器内显示如图4-29所示。

…阅读全文…

4.4 指定值、计算值和实际值

制作者定义CSS时,不需要对每个属性都指定一个值,而对于解释网页的用户端(例如:浏览器),当它解析了一个文档并且生成了文档树,它必须为文档树中的每一个元素,根据目标媒介类型所适用的每一个属性,指定一个值。也就是说,无论制作者是否在CSS中定义了某个属性,每个属性都有一个值,可能是制作者定义得值,也可能是属性的初始值,或者浏览器内部样式的值。

…阅读全文…