·首页 ·asp ·.net ·php ·JSP ·CGI ·数据库 ·网页设计 ·网管专栏 ·XML ·工具软件 ·办公软件 ·操作系统 ·程序设计 ·LINUX 
  当前位置: 普克>>计算机教程>>XML>>XML基础>>使用串接样式表(CSS)来显示XML文
flash视频教学

photoshop专题

asp.net专题

office专题

使用串接样式表(CSS)来显示XML文件


XML基础 发表时间:2006-4-8 字体:  返回

  

作者:未知  

在本章中,你将学习显示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 规格。

使用串接样式表的基本步骤

    使用串接样式表来显示XML 文件有两个基本步骤:
    1. 建立样式表档案。
    2. 将样式表链接到XML 文件。
    第一个步骤:建立样式表档案
    串接样式表是一个完全的纯文本文件,一般以.css 作为扩展名,内含一组告诉浏览器如何安排与显示特定XML 文件中元素的规则。在利用XML 文件时,你可以使用你喜爱的文书编辑器来建立串接样式表。
    列表7-1 包含一个简单的串接样式表范例。(你可以在随书光盘的 Inventory01.css 档案中找到。)
Inventory01.css
/*File Name:Inventory01.css */
BOOK
{display:block;
margin-top:12pt;
font-size:10pt}
TITLE
{font-style:italic}
AUTHOR
{font-weight:bold}
    这份样式表被设计来附加到显示在列表7-2 的XML 文件中。(你可以在随书光盘的 Inventory01.xml 档案中找到。)你可以在含有列表7-2 的页面上作个记号-因为该列表还会出现在本章的其它范例中,而你也将回来参考它。
Inventory01.xml
<?xml version="1.0"?>
<!--File Name:Inventory01.xml -->
<?xml-stylesheet type="text/css" href="Inventory01.css"?>
<INVENTORY>
<BOOK>
<TITLE>The Adventures of Huckleberry Finn</TITLE>
<AUTHOR>Mark Twain</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>298</PAGES>
<PRICE>$5.49</PRICE>
</BOOK>
<BOOK>
<TITLE>Leaves of Grass</TITLE>
<AUTHOR>Walt Whitman</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>462</PAGES>
<PRICE>$7.75</PRICE>
</BOOK>
<BOOK>
<TITLE>The Legend of Sleepy Hollow</TITLE>
<AUTHOR>Washington Irving</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>98</PAGES>
<PRICE>$2.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Marble Faun</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>473</PAGES>
<PRICE>$10.95</PRICE>
</BOOK>
<BOOK>
<TITLE>Moby-Dick</TITLE>
<AUTHOR>Herman Melville</AUTHOR>
<BINDING>hardcover</BINDING>
<PAGES>724</PAGES>
<PRICE>$9.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Portrait of a Lady</TITLE>
<AUTHOR>Henry James</AUTHOR>
<BINDING>mass market paperback</BINDING>
<PAGES>256</PAGES>
<PRICE>$4.95</PRICE>
</BOOK>
<BOOK>
<TITLE>The Scarlet Letter</TITLE>
<AUTHOR>Nathaniel Hawthorne</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>253</PAGES>
<PRICE>$4.25</PRICE>
</BOOK>
<BOOK>
<TITLE>The Turn of the Screw</TITLE>
<AUTHOR>Henry James</AUTHOR>
<BINDING>trade paperback</BINDING>
<PAGES>384</PAGES>
<PRICE>$3.35</PRICE>
</BOOK>
</INVENTORY>
    注意
    列表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 文件的根元素:
<MAPS>
<CITY>
<NAME>Santa Fe</NAME>
<STATE>New Mexico</STATE>
</CITY>
<STATE>California</STATE>
</MAPS>
    附加样式表中的下列规则可能会导致浏览器将「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 点字号被显示:
<TITLE STYLE='font-style:normal;font-size:14pt'>
The Adventures of Huckleberry Finn
</TITLE>
    下面是该文件在Internet Explorer 5 中看起来的样子。


    提示
    在有效的XML 文件中,在你使用该属性之前,你需要在DTD 中宣告STYLE 属性。你应该将属性宣告如下:
<!ATTLIST TITLE STYLE CDATA #IMPLIED>

汇入其它样式表

    你可以在你的串接样式表中使用 @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)}

第二个步骤:将样式表链接到XML 文件中

    要将串接样式表链接到XML 文件中,你可以将保留的xml-stylesheet 处理指令加到文件中。这个指令拥有下面一般格式,其中 CSSFilePath 是表明样式表档案位置的URL:
<?xml-stylesheet type="text/css" href=CSSFilePath ?>
    你可以使用完整的URL,就像这样:
<?xml-stylesheet type="text/css"
href="http://www.my_domain.com/Inventory01.css"?>
    然而,一般来说,你可以使用局部的URL,它指定了相对于包含xml-stylesheet 处理指令的XML文件位置的相对位置,就像这个:
<?xml-stylesheet type="text/css" href="Inventory01.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 文件起始部分的范例所示:
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="Book01.css"?>
<?xml-stylesheet type="text/css" href="Book02.css"?>
<INVENTORY>
<!--contents of document element -->
</INVENTORY>
    链接数个样式表的选项让你可以将相关的规则群组储存在个别的档案,然后将它们视特定型态文件的所需来进行组合。
    当你链接多个样式表,Internet Explorer 5 会将来自不同样式表的规则予以整合。如果不同的样式表包含了相冲突的规则,则较晚被链接到文件的样式表的规则将会比那些较事前绑定到文件的样式表中的规则取得较高的优先权。(在之前的范例中,位于Book02.css 中的规则将会比位在Book01.css 中的冲突规则取得较高的优先权。)在下一节中,你将学得更多有关冲突规则之间优先权的相关知识。

在串接样式表中进行串接

    串接样式表中的「串接」代表你可以在数个不同的层级中将值指派给属性(就像串接字符串在不同层级中溢出)。下面列表描述了你可以将值指定给属性所在的主要层级。在此依各层级的优先权顺序来列出这些层级-从最高到最低。当浏览器准备显示元素时,如果给定的属性如font-size 在不同的层级中被指定了冲突的属性值,则浏览器将使用在最高优先权层级中所设定的属性值。
    1. 如果你为XML 文件中特殊元素STYLE 属性中的属性(property)指派属性值,浏览器将使用该值来显示该元素。例如,它将以粗体来显示下面元素:
<TITLE STYLE="font-weight:bold">Leaves of Grass</TITLE>
    2. 如果你不透过STYLE 属性来设定属性,浏览器将使用在CSS 规则中宣告的属性值与上下文选择器(意即,一个具体指定元素连同数个该元素的被继承元素,如同稍早在 <使用上下文选择器> 中所讨论的)。例如,假设下面是XML 文件的文件元素:
3. <MAPS>
4. <CITY>
5. <NAME>Santa Fe</NAME>
6. <STATE>New Mexico</STATE>
7. </CITY>
8. <STATE>California</STATE>
</MAPS>
    同时也假设附加的样式表包含了下列规则:
CITY STATE
{font-style:normal}
STATE
{font-style:italic}
    浏览器将使用CITY STATE 规则来安排「New Mexico」STATE 元素,因为它有一个上下文选择器且因此取得较STATE 规则高的优先权,因为STATE 规则只拥有一个一般选择器。「New Mexico」元素将会以一般字型出现。
    9. 如果你并未在拥有上下文选择器的规则中宣告特定属性的属性值,浏览器将使用在包含一般选择器(意即,只包含元素名称的选择器)规则中宣告的属性值。例如,在步骤2 的范例样式表中,浏览器无法为「California」 STATE 元素找到对应的上下文规则,所以它将使用一般的STATE 规则,因此将以斜体字型显示「California」元素。
    10. 如果你并未在一般规则中为元素宣告特定属性的属性值,浏览器将使用最近的被继承元素(父元素,父元素的父元素,诸如此类)中宣告的属性设定。例如,在列表7-1 中的样式表中,TITLE 元素的规则并未替font-size 属性指定值:
11. TITLE
{font-style:italic}
    因此,浏览器将使用元素的父元素,BOOK(BOOK 是使用样式表的XML 文件中TITLE 元素的一部分)中的font-size 属性设定:
BOOK
{display:block;
margin-top:12pt;
font-size:10pt}
    它将因此而使用10 点大小的字型来显示TITLE 元素的文字。
    然而,请注意,这项处理将只为继承的属性发生。对于非继承元素,浏览器将使用属性的默认值(参阅本章稍早所介绍的 <继承属性设定> )。
    12. 如果样式表中并未替被继承元素包含属性的设定,则浏览器将使用自己的设定。该设定可能会是浏览器中内建的默认值,或者是由浏览器使用者所设定的值。例如,因为列表7-1 中的范例样式表并未替任何元素设定font-family 属性,所以浏览器将使用自己的font-family 值来显示所有元素。(在Internet Explorer 5 中,除非浏览器的使用者透过工具列上的Internet 选项指令来选择不同的字型群组,否则font-family 属性的默认值是Times New Roman。)
    再次提醒你,这项处理将只为被继承的属性发生。对于非继承元素,浏览器将使用属性的默认值。
    如同你从这份列表可以看到的,一般原则是这样:如果你在不同的层级为属性指定了冲突的属性值,浏览器将赋予比特殊规则较高的优先权。例如,元素本身的属性设定较其父元素的设定更为特殊,而且将因此而取得优先权。你可以使用这项原理来厘清更复杂的情况。(例如,如果子元素的父元素拥有上下文规则与一般规则,浏览器将为子元素采用哪个规则?没错,浏览器将使用上下文规则!)
    注意
    前面列表中优先权的顺序不是绝对的。浏览器的属性设定可能会取得比你附加在XML 文件样式表中的属性设定较高的优先权。这让拥有特殊需求的使用者取得格式安排的控制权(例如,视力受损的使用者可以使用超大字体)。在Internet Explorer 5 中,借着从工具列选单上选择 Internet 选项 指令,在 Internet 选项 对话盒的 一般 标签页中,按下 套用 按钮并选择适当的选项,使用者可以赋予浏览器的属性设定比样式表设定较高的优先权。
    如果在同一个层级中,特殊属性被赋予了冲突的属性值,会发生什么事呢?在这种情况下,浏览器会采用它所处理的最后属性设定。例如,如果支持同一个元素的两个一般规则在font-style 属性上拥有相冲突的属性设定,如下面范例中所示,则浏览器会采用第二个设定,因为它最后被处理:
TITLE,AUTHOR,BINDING,PRICE
{display:block;
font-size:12pt;
font-weight:bold;
font-style:italic}
AUTHOR
{font-style:normal}
    因此,在这个范例中,它将以一般字型而不是斜体来安排AUTHOR 元素。
    下列要点描述了浏览器在处理样式表规则时的顺序:
    如果你使用 xml-stylesheet 处理指令来链接数个样式表到文件上,浏览器会采用你在处理指令中所设定的顺序来处理样式表。
    如果你使用 @import 指令(如同在稍早 <汇入其它样式表> 章节中所介绍的)来汇入一个或多个样式表到某个样式表中,浏览器在处理所有汇入的样式表之前会先处理被汇入的样式表,而且它将以你汇入各个样式表的顺序来处理汇入的样式表。
    在特殊的样式表中,规则会依它们被列示的顺序来被处理。
注意
    浏览器使用最后它所处理的样式属性的规则,与XML 处理器遭遇多个属性或实体宣告时的规则正好相反。如前面章节所介绍的,XML 处理器将使用第一个属性或实体宣告并忽略其后的宣告。

1 2 3 页


上一篇:存取XML的属性
下一篇:新增批注、处理指令与CDATA 区段

普克创业投资网刊载此文不代表同意其说法或描述,仅为提供更多信息。
在百度中搜索使用串接样式表(CSS)来显示XML文件的相关内容]   [在狗狗中搜索使用串接样式表(CSS)来显示XML文件的相关内容]
Copyright @ 2006 PUPK.COM 普克创业投资网 版权所有
 建议使用1024*768以达到最好的浏览效果