首页  ·  知识 ·  前端
串接样式表(CSS)来显示XML文件
佚名  http://www.webdn.com/    编辑:dezai  图片来源:网络
【摘 要】 checkoutHeader>串接样式表是一个包含安排XML 文件中元素相关指令的档案。因为你已经利用XML创造了自己的元素,浏览器并

【摘 要】串接样式表是一个包含安排XML 文件中元素相关指令的档案。因为你已经利用XML创造了自己的元素,浏览器并不知道如何适当地显示这些元素。

  在本章中,你将学习显示XML 文件于Microsoft Internet Explorer 5 中的第一种方法:串接样式表(CSS)。串接样式表是一个包含安排XML 文件中元素相关指令的档案。因为你已经利用XML创造了自己的元素,浏览器并不知道如何适当地显示这些元素。建立串接样式表并将它链接到XML 文件中便是一种告诉浏览器如何显示文件中每个元素的方法。附加串接样式表的XML 文件可以直接在Internet Explorer 5 中被开启。你不需要使用HTML 网页来存取与显示资料(只需运用接下来两章中介绍的方法即可)。
    将显示元素的相关指令放在样式表中,使它与XML 文件分开,这样可以提高XML 文件的弹性并让它更容易维护。例如,借着简单地加上适当的样式表,你可以快速地将个别的XML 文件改编,使它适合多种不同的显示情况(不同的浏览器、应用程序、内文、外围装置等等),而不必重新建构文件本身。同时,借着仅重新校定附加在文件后面的共通样式表,你可以快速地更新一组类似XML 文件的编排,而不必开启与编辑每一份文件。
    使用串接样式表大概是显示XML 文件最简单的方法了。首先,因为目前CSS 在HTML 网页中的大量运用,使得CSS 语言已经广为众多网站设计人员熟悉。同时,目前的网站浏览器已经提供了对串接样式表的高度支持,但其它显示XML 文件的方法还正在发展中,而且浏览器也才开始支持这些方法。
    然而,相较于你在稍后数章中将学得的XML 显示方法,串接样式表还是有些限制。虽然串接样式表对于浏览器如何安排XML 文件中元素内容的显示方法提供了相当高度的控制权,但它并不让你修改或重新安排文件的内容。同时,它不允许你存取XML 的属性、实体、处理指令,以及其它组件,也不让你处理这些要素包含的信息。
    在接下来的章节中,你将学习某些较复杂,但也较具弹性的方法来显示XML 文件。在第八章中,你将学习如何将XML 文件链接到HTML 网页中,并借着连结标准的HTML 元素至XML 文件来显示XML 元素。在第九章中,你将学习如何借着在HTML 网页中撰写script 程序代码,来存取与显示XML 文件中个别的元素、属性与其它的组件。而在第十章中,你将发现如何使用更具威力的样式表语言-延伸样式表语言(XSL),让你不只能够安排XML 元素的内容,同时也能以高度弹性的方式来转换文件的内容。
    注意
    本章包含了大多数Internet Explorer 5 所支持的CSS 属性,与部分的CSS 原始版本,该版本是由World Wide Web Consortium(W3C)所制定,称为串接样式表第一级或CSS1。W3C 同时也定义了更多的CSS 进阶版本,大部分是CSS1 的超集,称为串接样式表第二级或CSS2。CSS2目前只被少数的浏览器支持,也超过了本书的范围。你可以参考位于 http://www.w3.org/TR/REC-CSS1 的完整W3C 的CSS1 规格,和位于 http://www.w3.org/TR/REC-CSS2 的完整W3C 的CSS2 规格。




The Adventures of Huckleberry Finn
Mark Twain
mass market paperback
298
$5.49


Leaves of Grass
Walt Whitman
hardcover
462
$7.75


The Legend of Sleepy Hollow
Washington Irving
mass market paperback
98
$2.95


The Marble Faun
Nathaniel Hawthorne
trade paperback
473
$10.95


Moby-Dick
Herman Melville
hardcover
724
$9.95


The Portrait of a Lady
Henry James
mass market paperback
256
$4.95


The Scarlet Letter
Nathaniel Hawthorne
trade paperback
253
$4.25


The Turn of the Screw
Henry James
trade paperback
384
$3.35


    注意
    列表7-1 中的范例样式表与列表7-2 的范例XML 文件都是你在第二章的 <显示使用串接样式表的XML 文件> 中所作练习的副本。
    一份样式表是由一个或多个规则(rules)(有时称为规则集(rule sets))所组成。规则包含了XML文件中某个元素的显示信息。在范例样式表中包含了三个规则:分别针对BOOK元素、TITLE元素,与AUTHOR 元素。下面是BOOK 元素的规则,内含规则的所有职责卷标:


    selector 是套用该显示信息元素型态的名称。
    紧跟在selector 之后是declaration block,被大括号({})包围且内含一个或多个宣告,以分号区隔(;)。
    每一个宣告详细指明了特定属性的相关设定,例如用来显示元素的字号。宣告是由一个属性,后面接着冒号(:),再接着一个属性值组成。例如,下面的宣告将font-size 属性设定成10pt (10点):

    样式表也可以包含批注。样式表的批注由斜线加上星号(/*)作为开始,以星号加斜线(*/)作为结束。在这两个限定字符组之间,你可以输入任何你想要的文字,当浏览器读取样式表以编排文件时,它会忽略这些批注文字。你可以使用批注来帮助文件更具可读性。在列表7-1 中,样式表起始部分的批注就是一个批注范例:
/*File Name:Inventory01.css */
    当开发样式表时,你也可以使用批注来暂时地启动规则或部份规则。例如,如果你想要看看BOOK元素在没有顶端的页边空白的样字,你可以暂时地将批注字符加到下面的BOOK 规则中:
BOOK
{display:block;
/*margin-top:12pt;*/
font-size:10pt}
    注意
    空格符(空白、tab 键与跳行)可以分开不同的CSS 文件,就像宣告区块中的个别宣告。本书使用空格符只有一种可能的方式。你可以利用任何可以帮助你组织与安排个人样式表的方法来使用空格符。例如,你可能将属于同一个规则的所有宣告放在同一行上,而不是像范例中你所见到的,将它分散在不同行中。
    列表7-1 中的范例样式表包含了下列宣告:
    display:block 在元素本文的前后加入换行。(这个设定有其它的实作方式,你将在本章稍后学到。)
    margin-top:12pt 在文件的本文上方加入一个12 点宽的页边空白。
    font-size:10pt 将用来显示元素文字的字号设定成10 点大小。
    font-style:italic 以斜体方式显示元素的文字。
    font-weight:bold 以粗体方式显示元素的文字。
    下面是Internet Explorer 5 如何使用这份样式表来显示XML 文件,后面接着由这些宣告所提供的的指令。

    这组串接样式表中可以获得的属性集合与那些你可应用在文书编辑器中文字的属性很类似。在本章稍后,你将学到关于你能使用的不同属性与你能够指定给这些属性的值。

CSS 中的大小写一致

    在Internet Explorer 5 中,串接样式表中字符的大小写是一样的。亦即,当Internet Explorer 5处理样式表时,它会忽略字母的大小写。例如,你可以运用三种方法来输入下面规则:
TITLE
{font-style:italic}
Title
{FONT-STYLE:Italic}
title
{Font-Style:ITALIC}
    串接样式表中的大小写一致拥有重要的涵意。因为XML 文件是有大小写之分的,你可以正常拥有两个不同的元素型态其名字的大小写不同,例如Book 与BOOK。然而,在串接样式表中,这两个名字会被视为相同的元素型态,而且你也无法为这两个元素型态指定不同的属性设定。因此,如果你想使用串接样式表来显示XML 文件,你应该让元素型态的名字所有的字符的大小写都不一样。

继承属性设定

    通常,你指定给特定元素(如BOOK 元素)的属性设定会影响到直接或间接套迭于该元素内的子元素,除非子元素被不同的属性设定所影响,父元素的属性才不会影响到子元素。然而,下面的属性却是例外的,而且将不被子元素所继承:
    display 属性 ,将在本章后面<设定displa 属性>中介绍。
    背景属性 (background-color(背景色彩)、background-image(背景影像)、background-repeat(背景重复)、与background-position(背景位置),将在本章后面<设定背景属性>中介绍。
    vertical-align 属性 ,将在本章后面<设定文字间隔与行高属性>中介绍。
    方块属性 ,将在本章后面<设定方块属性>中介绍。
    例如,列表7-1 中的范例样式表将BOOK 元素(位在列表7-2 中的文件中)显示成这个样子:
BOOK
{display:block;
margin-top:12pt;
font-size:10pt}
    每一个BOOK 元素拥有五个子元素。因为font-size(字号)是一个被继承的属性,所以BOOK元素内的所有子元素都会以10 点字号被显示。然而,子元素被不会继承display 与margin-top (上方边界)的属性设定(margin-top 是方块属性的一种)。
    当属性是一个非继承的属性,且你并未替元素指定属性值时,浏览器将使用属性的默认值。例如,display 属性的默认值是inline。本章为每一个非继承的属性都指定了默认值。
    因为许多属性的值都是继承而来,所以当你设计样式表,你可能会想要先从顶层的元素开始,然后往下继续设计更多紧密套迭的元素,你将只需作一些微调工作并加入一个偶尔的覆写设定。这个方法会将不必要的属性设定减到最少(也就是说,子元素将继承设定,因此你不需指派属性设定)。
    在本章后面的<在串接样式表中进行串接>章节中,你将学得更多有关继承的知识与继承如何配合的全部串接机制。

使用多个元素与多个规则

    你可以将单一的规则套用到数个元素,只需将所有元素的名称包含在选择者中,并以逗号来分隔每一个名称。例如,下面的规则应用到POEM、TITLE、AUTHOR、DATE,与STANZA 等组件型态:
POEM,TITLE,AUTHOR,DATE,STANZA
{display:block;
margin-bottom:12pt}
    如果一组元素共同使用同一组属性设定,借着将这些元素全部包含在单一规则中,而不是将这些设定分散在不同规则中,你将可以让你的样式表变得更短,且更容易让人了解。
    你也可以将给定的元素型态包含在超过一个以上的规则中,这些规则是位在相同的样式表中。例如,下面的规则都包含在DATA 元素中:
POEM,TITLE,AUTHOR,DATE,STANZA
{display:block;
margin-bottom:12pt}
DATE
{font-style:italic}
    第一个规则包含了DATA 与其它被列出元素所共同使用的宣告,而第二个规则对DATA 进行微调-意即,它指定了只能被应用到DATA 的属性设定。

使用上下文选择器

    在选择器中,你可以将一个或多个被继承元素的名称(父元素、父元素加上父元素的父元素(即祖父元素)等等)放置在元素名称之前,而且该规则只适用于拥有此套迭名称的元素。一个包含一个或多个被继承元素名称的选择器,被称为上下文选择器(contextual selector)。而一个不包含被继承元素名称的选择器(例如你在前面章节中所见到的选择器)则称为一般选择器(generic selector)。
    如果特定属性的某条规则拥有上下文选择器的设定,而且该元素还有另一条规则内含一般选择器的设定,那么位在上下文规则中的设定将取得更高的优先权,因为它比较特殊。
    例如,假设下面是一份XML 文件的根元素:


Santa Fe
New Mexico

California

    附加样式表中的下列规则可能会导致浏览器将「New Mexico」以一般字型编排,但「California」则是以斜体字型编排:
CITY STATE
{font-style:normal}
STATE
{font-style:italic}
    虽然New Mexico STATE 元素和CITY STATE 规则中的上下文选择器与位在STATE 规则中的一般选择器相配,但因为CITY STATE 规则中的选择器比较特殊,所以拥有较高的优先权。(在本章稍后的 <在串接样式表中进行串接> 章节中,你将学得更多冲突规则优先权的相关知识。)
    注意
    请确定你并未在上下文选择器中的元素名称之间加入逗号(,)。否则,该规则将适用所有的元素(如同前面章节中所叙述的),而不是最后被列出的字元素。

    使用STYLE 属性

    你可以在XML 文件中使用特殊的STYLE 属性-而不是在样式表中-来将一个或多个特殊属性设定指派给个别的元素。如果透过STYLE 属性来指派的属性设定与其它在附加样式表中设定的属性相冲突,则透过STYLE 属性的设定拥有较高的优先权。因此,STYLE 属性是一种简便的覆写方法-对于特殊元素-为附加样式表中STYLE 元素型态所做的一般属性设定。然而,使用STYLE 属性的确违反了将格式信息与XML 档案中文件内容的定义与结构分开的CSS 原则。
    要指定一个或多个属性设定,将宣告包含在被引号包围的STYLE 属性的属性值中,以分号来区隔个别的宣告,就像你在CSS 宣告区段中所作的一样。
    例如,列表7-1 中的范例样式表将TITLE 元素以斜体、10 点字号来编排。然而,如果你将下面的STYLE 元素包括在文件中特殊的TITLE 元素里的起始卷标中,只有该元素会以罗马正铅体字型(roman)(而不是斜体)、14 点字号被显示:
<BR>The Adventures of Huckleberry Finn<BR>
    下面是该文件在Internet Explorer 5 中看起来的样子。


    提示
    在有效的XML 文件中,在你使用该属性之前,你需要在DTD 中宣告STYLE 属性。你应该将属性宣告如下:


汇入其它样式表

    你可以在你的串接样式表中使用 @import 指令来合并一个或多个其它的样式表。汇入不同样式表的选项让你可以将相关的样式规则储存在不同的档案中,然后将它们视需要来与特殊型态的文件结合。
    下面是 @import 指令的一般格式,其中StyleSheetURL 是包含你想要汇入的串接样式表档案的完全或相对的URL(统一资源寻址器):
@import url(StyleSheetURL);
    想取得更多有关指定URL 值的信息,请参考下面网页中 <指定URL 值> 的部分。例如,下列指令(使用相对URL)被放置在列表7-1 中的样式表的起始部分,将会把包含在档案Book.css(该档案必须与被汇入的样式表放在同一个目录下)中的样式表汇入:
/*File Name:Inventory01.css */
@import url(Book.css);
BOOK
{display:block;
margin-top:12pt;
font-size:10pt}
/*rest of style sheet...*/
    @import 指令必须在样式表的起始部分执行,先于任何规则之前。你可以将数个 @import 指令包含在样式表的起始部分。
    当你汇入一个或多个样式表时,浏览器会将包含在被汇入样式表中的规则与汇入的样式表相结合。然而,如果任何规则发生冲突,要求汇入的样式表将比被汇入的样式表取得较高的优先权。而且如果你汇入数个样式表,在档案中稍后被汇入的样式表中的规则相较于之前被汇入的样式表,将会取得较高的优先权。想取得更多有关优先权的资料,请参阅本章稍后的 <在串接样式表中进行串接> 的章节。

指定URL 值

    URL 是标准的因特网地址,例如 http://mspress.microsoft.com/ 。@import 指令与background-image(背景影像)属性都需要一个URL 的值来指定相关资源的位置(样式表或影像文件)。你可以使用下列的方式来指定URL 的值,其中URL 是URL 地址。注意,你不能将空白放置在url 与「( )」字符之间。
url(URL)
    你可以使用完全合格的URL,如这些范例所示:
@import url(http://www.my_domain.com/stylesheets/MyStyles.css);
INVENTORY
{background-image:url(file:///E:\Example Code \Background.gif)}
    或者,你可以使用局部的URL,来指定相对于包含URL 的样式表档案位置的相对位置。样式表中相对的URL 就像HTML 网页中的相对URL。例如,如果样式表档案是位于范例程序代码所在目录,下面的相对URL 会等于前面范例中完整的URL(即file:///E:\Example
Code\Background.gif):
INVENTORY {background-image:url(Background.gif)}

.css
    (相对URL 比较普及,因为你通常将样式表档案储存在与XML 文件相同的目录下,或者是在该目录的子目录中。)
    你通常将 xml-stylesheet 处理指令加到XML 文件的序文中,接在XML 宣告的后面,如同你在列表7-2 的XML 文件中所看到的。(想获得更多有关处理指令的相关数据,以及所有你能够合法放置这些指令位置的叙述,请参阅第四章中的 <使用处理指令> 。)将外部的样式表附加到XML 文件的能力让你能够以非常弹性的方式来安排文件。借着简单地附加不同的样式表,你可以彻底地改变文件的格式。而要附加不同的样式表,你只需编辑位在 xml-stylesheet 处理指令中的URL,而不用对XML 文件作出任何改变。
    当你链接一个样式表到XML 文件时,你可以直接用Internet Explorer 5 来打开文件。例如,你可以输入文件的URL 或档案路径到IE5 的网址栏并按下 Enter ,将文件直接显示于Internet Explorer 5。

    Internet Explorer 5 将开启XML 文件并使用位在被链接样式表中的指令来显示文件。
    注意
    如果浏览器无法找到在xml-stylesheet 处理指令中指定的样式表,它将使用自己的属性设定来显示文件的内容(例如,浏览器目前的字型种类与字号设定)。而且,如同你在第二章所学到的,如果XML 文件不是链接到样式表(亦即,文件并未包含xml-stylesheet 处理指令),Internet Explorer 5 将会显示XML 文件的原始程序代码,而不是文件的内容。
    借着为每一个样式表加入xml-stylesheet 处理指令,你可以将多个样式表含括在XML 文件中,如这个XML 文件起始部分的范例所示:






    链接数个样式表的选项让你可以将相关的规则群组储存在个别的档案,然后将它们视特定型态文件的所需来进行组合。
    当你链接多个样式表,Internet Explorer 5 会将来自不同样式表的规则予以整合。如果不同的样式表包含了相冲突的规则,则较晚被链接到文件的样式表的规则将会比那些较事前绑定到文件的样式表中的规则取得较高的优先权。(在之前的范例中,位于Book02.css 中的规则将会比位在Book01.css 中的冲突规则取得较高的优先权。)在下一节中,你将学得更多有关冲突规则之间优先权的相关知识。

设定显示属性

    display 属性控制了浏览器显示元素文字的基本方式。你可以为该属性指派下面三种CSS 关键词的任何一种:
    block 浏览器总是在元素文字(包含了属于任何子元素的文字)之前或之后加入一个换行指令。结果,元素的文字被显示在个别的「区块」中,其上有前置文字,下接后续文字。借着将不同的方块(box)属性套用到文字区块,如边界、可看见的框线,与补白等,让你也可以安排文字的格式。(本章稍后将讨论方块属性。)block 元素因而很类似文字处理软件中的段落符号,利用换行符号来分隔前置与后续文字,而这些段落符号通常可以是边界、框线等等。
    inline (预设选项) 浏览器并不会在文字之前或之后加入换行指令(除非前置文字或元素文字已经到达窗口的右边边界且浏览器需要将文字放到下一行)。只有在需要将文字编排以适合窗口规格时,它才会在元素的文字中加入换行。因此元素的文字可以和前置文字及后续文字位在同一行。inlin 元素与文字处理软件中段落内的一连串文字很类似。
    none 浏览器并不显示元素。你可以为负责储存你想在屏幕上隐藏信息的元素使用这项设定。
注意
    CSS 规格指定不被子元素继承的display 属性。如果你为元素的display 属性指定了block 设定,这毫无问题。然而,子元素实际上继承了none 设定,因为当你将这项设定指派到父元素的display属性时,你同样可以隐藏所有的子元素。同时也请注意,inline 元素的子元素将会也被继承,因为如果它们没有display 属性值时,inline 就成了预设的设定。
    想获得更多有关将CSS 关键词指派给属性的相关信息,请参阅接下来的 <指定CSS 关键词的值> 章节。
    例如,假设你使用下列的样式表来显示列表7-2 中的范例XML 文件(当改变被用来显示XML文件的样式表时,你需要在文件中编辑 xml-stylesheet 处理指令):
BOOK
{display:block;
margin-top:12pt;
font-size:10pt}
TITLE
{font-style:italic}
AUTHOR
{font-weight:bold}
PAGES
{display:none}
    因为BOOK 元素的display 属性被指定成block 值,所以浏览器总是在元素的文字之前或之后加入换行。(BOOK 元素拥有文字内容。它的文字由属于所有BOOK 的子元素的文字所组成。)因为样式表并未替TITLE、AUTHOR、BINDING,与PRICE 元素(这些元素并未从它们的父元素继承display 属性值)指定display 属性的值,浏览器将它们视为inline 元素,为默认值。因此,浏览器在这些元素之间并不加入换行,而且-提供浏览器足够的宽度-浏览器将所有元素显示在同一行。因为PAGES 元素的display 属性被指定了值none,所以浏览器并不显示该元素。下面是全部的结果:


指定CSS 关键词的值

    对于许多CSS 属性来说,你可以-或必须-借着使用预先定义的CSS 关键词来指定它们的属性值。你可以使用的特定关键词是根据特定属性来决定。例如,你可以为display 属性指定三个关键词中的一个:block、inline 或none。你可以为color 属性指定叙述基本颜色的十六个关键词之一,如这个范例中的red、grene、yellow、fuchsia:
PARA {color:fuchsia}
    而且你可以为border-style 属性指定九个关键词中的一个:solid、dotted、dashed、double、groove、ridge、inset、outset 或none,如下所示:
SECTION {border-style:solid}

设定字型属性

    CSS 标准提供了下列属性,负责修改用来显示元素文字的字型:
    font-family
    font-size
    font-style
    font-weight
    font-variant
    这些属性全部都被子元素继承。

设定font-family(字型群组)属性

    font-family 属性指定了被用来显示元素文字字型的名称,如下面范例所示:
BOOK {font-family:Arial}
    你可以输入任何想要的字型名称。(它们并不是预先定义的CSS 关键词。)如果浏览器无法找到指定的字型,它会自动以现有的字型来替换。
注意
    如果字型名称包含空白,则利用引号包围整个字符串,如这个范例所示:BOOK{font-family:"Times New Roman"}。
    你可以借着列出数个供选择的字型,利用逗号分开,以你喜爱的顺序来安排,来增加获得想要字型的机会。下面是个范例:
BOOK {font-family:Arial,Helvetica}
    如果名为的Arial 字型无法获得,浏览器将使用Helvetica 字型。如果Helvetica 字型也无法使用,它将换成其它可以使用的字型。而且你可以更进一步借着包括CSS 关键词-通常在列表的底端-指明你想要的一般字型,来增加获得要求字型的机会,如下面范例所示:
BOOK {font-family:Arial,Helvetica,sans-serif}
    在这里,如果浏览器无法找到Arial 或Helvetica,它将改用其它无衬(Sans serif)字体字型(指没有衬线的字型,也称为gothic 字型)。
    下面的表格列出了你可以用来指定你想要字型的一般型式的关键词。CSS 规格称这些关键词为generic family names。对于每一个generic family name,表格也会提供属于该群组的特殊字型的名称,以及当你要求使用该字型时,Internet Explorer 5 所显示文字的范例。(Internet Explorer 5 显示的特定字型会依照目前安装在Microsoft Windows 中的字型群组来决定,所以你看到的字型可能会不一样。)
字型群组的一般群组名称 特殊字型范例 文字实例
serif Times New Roman The Adventures of Huckleberry Finn
sans-serif Aria The Adventures of Huckleberry Finn
monospace Courier New The Adventures of Huckleberry Finn
    例如,如果你将下面的样式表附加到显示于列表7-2 中的文件中,Internet Explorer 5 会显示文件如下图所示:
BOOK
{display:block;
margin-top:12pt;
font-family:Arial,sans-serif;
font-size:12pt}
TITLE
{font-style:italic}
AUTHOR
{font-family:"Times New Roman",serif}

    指定给BOOK 元素font-family 属性的Arial 字型会被除了AUTHOR 之外的所有子元素继承,AUTHOR 拥有自己的font-family 值("Times New Roman",serif)。

设定font-size(字号)属性

    font-size 属性设定了用来显示元素文字的字号。你可以为这个字型指定四种不同型式的值:
    与浏览器字号成比例的尺寸值 。你可以指定一个与浏览器目前所使用的字型尺寸成比例的尺寸值。要这样做,你可以使用下列表格中的关键词值。在Internet Explorer 5 中,尺寸值small 会导致浏览器使用它目前所使用的字型尺寸;而其它值则依此往上或往下延展。
字型尺寸关键词 : xx-small
范例CSS 规则 : TITLE {font-size:xx-small}
描述 : 关键词所能设定的最小字型尺寸

字型尺寸关键词 : x-small
范例CSS 规则 : TITLE {font-size:x-small}
描述 : 大约是xx-small 字型尺寸的1.5 倍大

字型尺寸关键词 : small
范例CSS 规则 : TITLE {font-size:small}
描述 : 大约是x-smal 字型尺寸l 的1.5 倍大,该值是Internet Explorer 5 目前所使用的值。
文字实例 :
字型尺寸关键词 : medium
范例CSS 规则 : TITLE {font-size:medium}
描述 : 大约是small 字型尺寸的1.5 倍大。
文字实例 :
字型尺寸关键词 : large
范例CSS 规则 : TITLE {font-size:large }
描述 : 大约是medium 字型尺寸的1.5 倍大。
文字实例 :
字型尺寸关键词 : x-large
范例CSS 规则 : TITLE {font-size:x-large }
描述 : 大约是large 字型尺寸的1.5 倍大。
文字实例 :
字型尺寸关键词 : xx-large
范例CSS 规则 : TITLE {font-size: xx-large }
描述 : 大约是x-large 字型尺寸的1.5 倍大。
文字实例 :
注意
    CSS 规格推荐的是1.5 倍系数。然而,在Internet Explorer 5 中不同尺寸之间的真正比例有点不同。例如,medium 真正只比small 大1.5 倍。
    与父元素字型尺寸值成比例的尺寸值 。你可以指定一个字型尺寸,该尺寸与父元素目前的字型尺寸成比例。要这样做,你可以利用下面font-size 属性的关键词来设定值:
字型尺寸关键词 : smaller
范例CSS 规则 : TITLE {font-size:smaller}
描述 : 较父元素约小33%的字型尺寸(或对根元素来说,比浏 览器字型小33%)

字型尺寸关键词 : larger
范例CSS 规则 : TITLE {font-size:larger}
描述 : 较父元素约小50%的字型尺寸(或对根元素来说,比浏览器字型小50%)
文字实例 :
注意
    前面表格中所提供的33%与50%是以CSS 规格中建议的1.5 倍编排比例系数为基础。真正的规则可能不同。
    父元素字型的尺寸值百分比 。你可以将字型尺寸值指定为与父元素目前字型尺寸成比例,借着指派一个百分比值到font-size 属性,可以获得较精确的设定,而不是使用较大或较小这种模糊的设定。例如,下面规则要求字型尺寸是父元素字号的一又二分之一倍:
TITLE {font-size:150%}
    (如果浏览器使用了CSS 所推荐编排的1.5 比例,这个规则将会和规则TITLE
{font-size:larger}相等。)
    下面的规则要求字型尺寸要比前一个规则中的字型稍大:
TITLE {font-size:160%}
    请注意,对于根元素而言,百分比是以浏览器的字型尺寸为基础。(想获得更多有关指定百分比值到属性中的知识,请参阅下面 <指定百分比值> 的相关信息。)
    特殊尺寸值 。借着为font-size 指定尺寸值(size value),你也可以指定元素的字型尺寸。(本章稍后的<设定尺寸值>中将描述尺寸值的不同型式。)例如,下面的规则指定了12 点大小的字型尺寸:
TITLE {font-size:12 pt}
    而下一个规则指定字型尺寸是父元素字型的两倍大:
TITLE {font-size:2 em}
    (第二个范例等于<程序代码>TITLE {font-size:200%}

指定百分比值

    你可以为某些属性值指派百分比数值。当你关心不同组件的字型尺寸的比例关系大于真正的尺寸值时,百分比数值特别有用。
    百分比数值将某些属性的大小以其它数值的百分比来表示。而若其它数值也是依赖你设定的特定数值来决定时会发生何事?通常,它会用元素本身的大小。例如,下面的设定让行高变成元素目前字型高度的两倍,产生两倍的行列间距:
SECTION {line-height:200%}
    然而,对于font-size 属性,百分比值参考的是元素父元素目前的字型尺寸。例如,下面的规则将元素的字型高度设定成其父元素目前字型的三倍高:
PARAGRAPH {font-size:75%}
    注意,如果元素继承了一个百分比的属性值,它继承了经运算后所得结果,而不是百分比值本身。(否则,若连续的继承元素都继承了百分比值,则字型尺寸在每一代中会保持连续变大或变小。)

指定尺寸值

    许多CSS 属性可以,或必须被指定尺寸值。尺寸值指定了字型的尺寸、背景影像的位置、字符间距、缩排、行高、边界宽度、框线宽度、元素高度,以及其它属性。你可以为采用尺寸值的属性设定绝对尺寸值或相对尺寸值。
    绝对尺寸值(absolute size value)是使用测量的标准单位来设定精确值的属性数值。测量的标准单位包括了英吋、点(point)或公厘。下面的表格列出了你必须使用的缩写字符以指定规则中的单位,而且它也显示了其它单位对应的数字。


    *cm = centimeters; in = inches; mm = millimeters; pc = picas; pt = points
    例如,下面两个规则采用了绝对的尺寸值:
STANZA {font-size:12pt}
PARAGRAPH {margin-top:.25in}
    相对尺寸值(relative size value)则是一个相对于元素的目前字型的尺寸,或相对于屏幕上用来显示文件点素尺寸的尺寸值。(点素(pixel)是图像的元素-一个在计算机屏幕或电视上组成影像的个别点素其中之一。)下面的表格列出了你能够使用的相对尺寸单位:
单位 单位的尺寸
em The height of the element's current font 元素目前字型的高度
ex 元素目前字型小写x 字符的高度
px 屏幕上点素的尺寸
    一个例外是当你指定em 或ex 单位到font-size 属性时,该值参考的是父元素字型的尺寸。
    例如,下面的规则加入了顶端边界到元素中。空白的高度将相等于元素字型的高度:
BOOK {margin-top:1em}
    下面的规则则建立了一个15 点素高的顶端边界:
SECTION {margin-top:15px}
    而下面的规则是将元素的字型高度设定成四分之三倍父元素字型的高度:
PARAGRAPH {font-size:.75em}
    (最后这个规则与你在前面文章中看到的<程序代码>PARAGRAPH{font-size:75%}范例规则是一样的。)
    注意,如果子元素继承了相对值,它是继承了该值的计算结果,而不是相对值本身。

.css

Leaves of Grass<BR><SUBTITLE>I Sing the Body Electric</SUBTITLE><BR>
by Walt Whitman

1.

I SING the Body electric;
The armies of those I love engirth me,
and I engirth them;

They will not let me off till I go with them,
respond to them,

And discorrupt them,and charge them full with
the charge of the Soul.



Was it doubted that those who corrupt their own
bodies conceal themselves;

And if those who defile the living are as
bad as they who defile the dead?

And if the body does not do as much as
the Soul?

And if the body were not the Soul,what is
the Soul?




    下面是图像影像文件Leaf.bmp 的内容:

    Internet Explorer 5 显示Leaves.xml 如下图所示:

    注意,该影像会视需要不断地重复(这指铺开)以填满由元素内容占满的整个区域,几乎延展到浏览器窗口右边的边缘。(下个章节会描述如何控制铺布背景影像。)也注意在元素文字的上面或下面延伸的影像的任何部分都会被截掉。在这个范例中,位在每一个STANZA 元素底部横列上的的影像只有非常少的部分会被剪裁掉。
    如果你不想为元素指定背景影像,你可以将background-image 属性设定成none,如下所示:
STANZA {background-image:none}
    或者,因为none 是默认值,所以你可以简单地将background-image 属性从元素中删除。除非你为元素设定了某种背景色彩,否则none 设定会导致父元素的(或浏览器的)背景设定穿透子元素显示。
注意
    如果你同时指定了背景影像与背景颜色(使用background-color 属性),则影像将会盖掉背景色彩。

设定background-repeat(背景重复)属性

    如果你将影像档案指派到background-image 属性当作属性值,借着将background-image 属性设定成下列关键词值之一,你可以控制影像重复的方法:
    repeat(默认值) 。垂直地与水平地重复影像。因为这是默认值,所以将background-repeat:repeat 加入列表7-3 中样式表的STANZA 规则中,如下所示,对于文件被显示的方式并没有影响,如下面图形中所示:
STANZA
{background-image:url(Leaf.bmp);
background-repeat:repeat}

    repeat-x 。只以水平方向重复影像。例如,下面的STANZA 规则将会显示文件如下图所示:
STANZA
{background-image:url(Leaf.bmp);
background-repeat:repeat-x}


    repeat-y 。只以垂直方向重复影像。例如,下面的STANZA 规则将会显示文件如下图所示:
STANZA
{background-image:url(Leaf.bmp);
background-repeat:repeat-y}


设定background-position(背景位置)属性

    根据预设,背景影像的左上角(或者如果影像重复的话,是指影像的左上角复制的左上角的部分)会和元素的左上角排成一列。你可以借着设定一个值到background-position 属性来改变这种直线的排列。你可以为属性指定三种不同属性值中的一个:
    水平与垂直的尺寸值 。你可以为background-position 属性设定两种尺寸值。第一个值代表影像在元素内的水平位置,而第二个值则代表影像在元素内的垂直位置。你可以设定在本章稍早<设定尺寸值>中所介绍的任何型式尺寸值。例如,下列规则中将影像的左上角从STANZA 元素的左上角向右移动0.5 英吋以及向下移动0.25 英吋:
STANZA
{background-image:url(Leaf.bmp);
background-repeat:no-repeat;
background-position:.5in .25in}
    显示结果如下图所示:

    如果影像以下面规则中指定的方式重复,重复影像的整个图形会依照指定的向量移动,如下图所示:
STANZA
{background-image:url(Leaf.bmp);
background-repeat:repeat;
background-position:.5in .25in}

    水平与垂直的百分比值 。你可以为background-position 属性设定两个百分比值。第一个百分比值代表影像在元素内水平位置的百分比值,其中0%代表左边(在预设的水平位置上),50%代表元素的水平中心,而100%则代表位在元素的右边。而第二个百分比值则代表影像在元素内垂直位置的百分比值,其中0%代表顶端(在预设的垂直位置上),50%代表元素的垂直中心,而100%则代表位在元素的底部。
    例如,下面的规则将把影像放在元素的中间:
STANZA
{background-image:url(Leaf.bmp);
background-repeat:no-repeat;
background-position:50% 50%}
    执行的结果如下图所示:

    如果影像以下面规则中指定的方式重复,重复影像的整个图形会依照指定向量移动,如下图所示:
STANZA
{background-image:url(Leaf.bmp);
background-repeat:repeat;
background-position:50%50%}

    关键词值 。借着将background-position 属性设定成一个或两个CSS 关键词,你可以指定背景影像的位置。例如,将影像放在元素的右下角,如下图所示:
STANZA
{background-image:url(Leaf.bmp);
background-repeat:no-repeat;
background-position:right bottom}

    下列图形显示了每一个关键词组合所产生的影像位置。

    关键词的顺序并不重要。例如,background-position:bottom right 与background-position:rightbottom 是一样的。

设定Text Spacing(文字间距)与Alignment(行高)属性

    CSS 标准提供了下列属性,用来修改间距、行高与文字的其它特性
    letter-spacing
    vertical-align
    text-align
    text-indent
    line-height
    text-transform
    text-decoration
    子元素将会继承所有这些属性,除了vertical-align 之外。

设定letter-spacing(字符间距)属性

    你可以使用letter-spacing 属性来增加或减少两个元素文字的字符间距。你可以将letter-spacing设定成正的尺寸值以增加指定的字符间距。例如,下面的规则增加了字符间距,增加了文字的四分之一高度的间距:
TITLE {letter-spacing:.25em}
    而你也可以为letter-spacing 指定负值来以照指定数量缩减字符间距。例如,下面这个规则减去0.5 点素的字符间距:
TITLE {letter-spacing:-.5pt}
    (有关设定不同尺寸值的相关信息,请参阅本章稍早的 <设定尺寸值> 部分。)
    或者,借着将letter-spacing 属性设定成normal,你可以选用一般的字符空间。例如下面的样式表,是附加在列表7-4 中的XML 文件,将TITLE 元素设定成展开的字符间距,而将SUBTITLE元素设定成一般的字符间距(第二项设定是必须的,以便SUBTITLE 元素能够覆写展开的字符间距,否则SUBTITLE 元素将继承父元素,TITLE):
POEM
{font-size:145%}
POEM,TITLE,SUBTITLE,AUTHOR,SECTION,NUMBER,STANZA,VERSE
{display:block}
SECTION,STANZA
{margin-top:1em}
TITLE
{letter-spacing:normal}
SUBTITLE
{letter-spacing:.5em}
    利用样式表中的规则,Internet Explorer 5 显示如下图所示:


设定vertical-align(垂直行高)属性

    你可以使用vertical-align 属性来建立上标或下标文字。这个属性只会影响inline 元素。(inline元素是一个display 属性被设定成inline 的元素,如同本章稍早的<设定显示属性>部分所介绍的。)
    你可以将vertical-align 属性设定成下页表格中CSS 关键词的任何一个。为了在最后一栏建立每一个CSS 关键词的文字实例,笔者将属性设定仅仅指派到CHILD 元素的vertical-align 属性,其中CHILD 元素是一个inline 元素,出现在文件中的样式如下:
PARENT ELEMENT
CHILD ELEMENT

    子元素并未继孟茙ertical-align 属性:
vertical-align 关键词: baseline (default)
范例CSS 规则: CHILD {font-size:75%; vertical-align:baseline}
影响: 将元素文字与父元素文字的底线对齐
文字实例:
vertical-align 关键词: sub
范例CSS 规则: CHILD {font-size:75%;vertical-align:sub}
影响: 将元素的文字以下标显示
文字实例:
vertical-align 关键词: super
范例CSS 规则: CHILD {font-size:75%;vertical-align:super}
影响: 将元素的文字以上标显示
文字实例:

设定text-align(文字行高)属性

    你可以使用text-align 属性来控制元素文字的水平行高。这个属性只有在你明确地将它指定到block 元素时才会有效。它将接着影响元素本身,加上元素所包含的任何子元素,不管子元素是block 或inline。(block 与inline 元素都在稍早的章节<设定显示属性>中讨论过。)text-align 属性影响位于文字区域内的文字的行高。根据预设,文字的内容区域扩展到几乎浏览器窗口的整个宽度。然而,如同你在稍后<设定方块属性>章节中将学到的,你可以修改元素的文字内容区域的宽度与位置。
    你可以将text-align 属性指定成下列三个关键词值之一:
    left 。将每一行文字靠左对齐排列。例如,假设你将下面的规则应用到列表7-4的XML 文件中(包括列表7-3 中显示的其它样式表,除了background-image 设定,我将之移除以确保规格清楚):
POEM {text-align:left}
    该poem 将会显示如下图所示:

    right 。将每一行文字靠右对齐排列。例如,下面的规则将poem 靠右排齐,如下图所示:
POEM {text-align:right}

    center 。将每一行文字置中对齐排列。例如,下面的规则将整个poem 置中对齐,如下图所示:
POEM {text-align:center}

    设定text-indent(文字缩排)属性
    你可以使用text-indent 属性来缩排元素文字的第一行文字。你可以将text-indent属性设定成本章稍早曾讨论过的<设定尺寸值>中介绍的任何种类的尺寸值。例如,下面的规则将VERSE 元素的第一行以其字型高度的三倍缩排:
VERSE {text-indent:3em}
    这里是VERSE 元素看起来的样子:

    二者择一地,你可以将缩排设定成元素文字总宽度的百分比值。例如,下面这个规则将VERSE 元素的第一行以元素宽度的一半大小来进行缩排:
VERSE {text-indent:50%}
    下面是VERSE 元素看起来的样子:

    提示
    要将元素的内容缩排(而不是只有第一行),可使用margin-left 属性,该属性将在本章稍后的<设定边界属性>中讨论。
 
本文作者:佚名 来源:http://www.webdn.com/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读