|
前页后页
目录元素
特性
全局结构
一份HTML4.0文档通常由三部分组成:一条包含版本信息的语句,一个引导描述段以及一个含有具体内容的主干。
HTML版本信息
SGMLDOCTYPE结构声明了文档使用HTML的哪个版本组成(参见[GOLD90])。
作者应当在每一分文档的第1行包括一个如下的类似声明:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Draft//EN">
声明的最后两个字母指HTML DTD的语言,在此例为英语("EN")。
用户代理器可能忽略此信息。
作者可以根据与它们的文档相宜的HTML的版本使用其它形式的描述。HTML4.0建议的文档形式为:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Draft//EN">
指出文档遵循HTML4.0草案规格
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Final//EN">
或
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
则指出了文档遵循HTML4.0最后规格
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Strict//EN">
则指明文档遵守详尽的HTML4.0规格。
当您打算对文档适当地不使用HTML陈述的元素和特性,
如字体(FONT)元
素和对齐(align)
特性时可用:
<!DOCTYPE HTML SYSTEM "http://www.w3.org/MarkUp/Cougar/relaxed.dtd">
表示遵循W3C Web 节点的DTD
<!DOCTYPE HTML SYSTEM "http://www.w3.org/MarkUp/Cougar/strict.dtd">
则表示打算严格遵循W3C Web 节点的DTD
在公共标识和文件之间的绑定可通过使用符合SGML开放协会(SGML Open Consortium)建议格式的目录文件来指定。一份HTML4.0目录文件例程被包含
于HTML的SGML参考的开始部分.
注意:某些用户代理器并不懂得上面列示
的复杂的DOCTYPE声明.
HTML元素
<!ENTITY % version "version CDATA #FIXED '%HTML.Version;> <!ENTITY % html.content "HEAD, (FRAMESET|BODY)">
<!ELEMENTHTML O O (%html.content)>
<!ATTLIST HTML
%version;
%i18n; --lang,dir -- >
开始标记:可选,结束标记:可选
特性定义
-
version=url
-
这个特性(通过统一资源定位器URL)指定了支配当前文档
的HTML DTD版本的位置.因为相同的信息必须出现于DOCTYPE
头,所以此特性不是非常有用.
在版本信息后,一份HTML文档剩余的事就是包含 HTML
元素.因此,一份典型的HTML文档具有以下结构:
<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.0 Draft//EN> <HTML> ...The head, body, etc. goes here... </HTML>
HEAD元素
<!-- %head.misc defined earlier on as "SCRIPT | STYLE | META | LINK" --> <!ENTITY % head.content "TITLE & ISINDEX & BASE">
<!ELEMENTHEAD O O (%head.content) +(%head.misc)>
<!ATTLIST HEAD
%i18n; --lang,dir--
profile %URL #IMPLIED -- named dictionary of meta info -- >
开始标记: 可选,结束标记: 可选
特性定义
-
profile=url
-
这个特性指定了一个或更多的资料轮廓文件的位置,通过
空格来分隔.为将来的扩展,用户代理器应当把这个值作
为一个列表考虑纵然这种结构只认为第一个值是重要的
轮廓文件在将在后面的符合信息部分讨
论.
HEAD元素包含了当前
文档的信息,如它的标题,被搜索引擎使用的关键词或其
它不在文档内容中考虑的数据.在 HEAD
声明中的元素必须不被一致性用户代理器渲染除非另外
指定.
标题:TITLE元素和
title特性
<!ELEMENT
TITLE
- - (#PCDATA)* -(%head.misc) -- The TITLE element is not considered part of the flow of text.
It should be displayed, for example as the page header or window title. Exactly one title is
required per document. --> <!ATTLIST TITLE %i18n>
开始标记: 需要,结束标记: 需要
每一个HTML文档 必须HEAD
部分包括一个正确的 TITLE
元素.用户代理器通常通过标题来给人们一些概念,如把
标题作为说明词,或把它读出来.
标题可以包含字符条目(对于语
气强调,特殊字符等等),但不可以包括其它的标注.这是一
个文档标题的例程:
<HTML>
<HEAD>
<TITLE>A study of population dynamics</TITLE>
... other head elements...
</HEAD>
<BODY>
... document body...
</BODY>
</HTML>
相应于 TITLE元素的是
title特性.
特性定义
-
title=cdata
-
这个特性如顾问般的提供了元素的设置信息.
不同于 TITLE元素提供
了整个文档的信息并且只出现一次, title
特性可以注解任意数量的元素.请检查元素的定义是否提
供这个特性. title特
性的值可能被用户代理器以多种方式渲染.例如,可视化
浏览器往往用"工具提示(tool tip)"(一个短的信息出现于
鼠标指定并停留在物件上时)来显示标题.声讯用户代理
器也相应的郎读标题信息.例如,在链接中设置这个特性
来允许用户代理器告(可视化和非可视化的)诉这个链接
的自然资源:
...some text... Here's a photo of
<A href="http://someplace.com/neatstuff.gif" title="Me scuba diving">
me scuba diving last summer
</A>
...some more text...
当使用 LINK元素来指定
一份外部风格页时 title
a特性有一个额外的作用.关于细节请参阅相应的单节.
注意:为了提高语音系统在标准技术下处
理这种情况的质量,将来的HTML版本将包括处理音素和诗
韵信息的元素.
符合信息
当这份说明书完稿时,许多关于允许作者分配更富有的
文档易读信息和其它HTML文档网络易用资源的方法已经
得到提议.
当前的HTML说明书允许作者如下指定他们文档的符合
信息:
-
作者可以引用一个外部已经定义的符合数据属性的轮廓描述.
例如,一份轮廓描述可能定义了帮助搜索引擎索引文档的
属性,如"作者","版权","关键词"等等.一个轮廓描述通过profile
特性和HEAD元素来指
定.
-
作者可以设置这些属性的值.可以是:
-
文档从何而来,通过META
元素.因此,轮廓描述可以定义可被META
元素设定的姓名空间属性.
-
从外部文档而来,通过LINK
元素(see the section on link types)
链接到符合数据.因此,轮廓文件应当定义可被LINK
元素使用的联系名称空间..
注意因为一个轮廓定义于 HEAD
元素,同一个轮廓也应用了文档头中的所有的 META
和 LINK元素。
META元素
<!ELEMENTMETA - O EMPTY -- Generic Metainformation -->
<!ATTLIST META
%i18n; --lang,dir,for use with content string --
http-equivNAME #IMPLIED--HTTPresponse header name --
name NAME #IMPLIED--metainformation name --
content CDATA #REQUIRED--associated information --
scheme CDATA #IMPLIED -- select form of content -- >
开始标记: 需要,结束标记: 禁止
特性定义
对于下列的特性,它们的允许的值和解译方式取决于轮廓描述:
-
name=cdata
-
这个特性指定属性名称。
-
content=cdata
-
这个特性指定属性的值。
-
scheme=cdata
-
这个特性命名一个用来解译属性值的方法的名称。
-
http-equiv=cdata
-
这个特性可被用于name特性的位置上。HTTP服务器用这个特定来组织HTTP响应消息的头信息。
META元素可被用来描述文档的属性(如作者,终止日期,关键词列表等等)并且分配这些属性的值。这份说明书没有定义这些属性的标准设置。
name特性指定属性而content
特性则指定属性的值。例如,
<META name="Author" content="Dave Raggett">
lang特性可与 META
一起使用来指定 content
特性值的语言。这允许语音系统根据发音规格来应用语言。
例如,作者的姓名用法语声明。
<META name="Author" lang="fr" content="Arnaud Le Hors">
这是一个作者例程:一些用户代理器提供在几秒钟后通过 META
刷新当前页面,或用其它页来代替。
<META name="refresh" content="3,http://www.acme.com/intro.html">
这个内容中的数字指定了延时秒数,在URL被调入后计时开始。这个结构通常被用来向用户展示一个飞快的介绍。
不过,由于某些用户代理器不提供这个结构,作者应当在介绍页中包含这个内容来引导用户绕开它(所以还不作为保留的介绍页的"组成部分")。
http-equiv特性可以用在 name特性的位置上并且在文档通过超文本传输协议(Hypertext Transfer Protocol,HTTP)恢复时有其特殊的重要性。HTTP服务器可以使用 http-equiv
特性指定的属性名称在HTTP响应中生成一个[RFC822]-风格头。关于HTTP头的细节请参见HTTP说明书([RFC2068]).
下列的例程是 META
声明:
<META http-equiv="Expires" content="Tue, 20 Aug 1996 14:25:27 GMT">
会使HTTP头表现为:
Expires:Tue,20Aug 199614:25:27GMT
这可以让缓冲来决定何时取得一份关联文档的刷新版本。
META的通常用处是指
定搜索引擎用来提高搜索质量的关键词。当数个 META
元素提供文档语言从属信息时,搜索引擎会使用 lang
特性来过滤并通用用户的语言优先参照来显示搜索结果。
例如:
<META name="keywords" lang="en" content="vacation,Greece,sunshine">
<META name="keywords" lang="fr" content="vacances,Grèce,soleil">
搜索引索的效力也可以通过使用 LINK
元素来指定转换方工来提高,其中其它语言文档,链接到文档版本的其它媒体格式(如PDF)以及当文档是一个集合的部分,链接到浏览集的适宜开始处等等。
互联网内容选择(Internet Content Selection)[PICS]
的平台是一种是与互联网内容联系标签的(符合数据)的
低层结构.原先的设定可以帮助父和师控制子是否可以在
互联网上运行,它也有利于其它的用户标签,包括代码符
号,隐私和智力性的正确分配.
这个例程举例说明了如何使用 META
声明来包含一个PICS1.1标签:
<HEAD>
<META http-equiv="PICS-Label" content=' (PICS-1.1 "http://www.gcf.org/v2.5" labels on "1994.11.05T08:15-0500"
until "1995.12.31T23:59-0000" for "http://w3.org/PICS/Overview.html" ratings (suds 0.5 density 0 color/hue 1)) '>
<TITLE>..title goes here..
</TITLE>
</HEAD>
<BODY>
...the body...
</BODY>
META元素可以在下例
中指定文档的缺省信息:
-
缺省的脚本语言.
-
缺省的风格页语言.
-
文档字符解码方式.
下面的例程指定了作为ISO-8859-5文档的
字符解码方式
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-5">
符合数据的轮廓描述
HEAD的 profile
特定指定了符合数据的轮廓描述的位置. profile
特性的值是统一资源定位器.用户代理器可以以两种途径
来使用统一资源定位器:
-
作为唯一的通用的全局的名称.用户代理器可能能够识别
这个名称(现在不取回轮廓描述)并且执行一些基于已知
轮廓描述约定的进程.例如,搜索引擎可以提供一个在HTML
文档目录中搜索的接口,而这些文档对于目录响应均使用
相同的轮廓描述.
-
作为一个链接,用户代理器可能废弃这个统一资源定位,
而执行一些在轮廓描述中定义的东东(例如:确定当前HTML
中的轮廓描述有效).这份说明书没有定方轮廓描述的格
式.
这个例程引用一份假定的轮廓描述来定
义有用的文档索引属性.由此轮廓描述定义的属性---包
括"作者","版权","关键词"和"日期"---在后来的 META
声明中设值.
<HEAD profile="http://www.acme.com/profiles/core">
<TITLE>How to complete Memorandum cover sheets</TITLE>
<META name="author" content="John Doe">
<META name="copyright" content="© 1998 Acme Corp.">
<META name="keywords" content="corporate,guidelines,cataloging">
<META name="date" content="23 Jan 1998 16:05:31 GMT"> </HEAD>
在这份说明书完稿时,通常尝试使用在[RFC2068]
描述的方式.HTTP的应用对于日期/时间印记在历史上有
过三种不同的格式:
燬un,06Nov 199408:49:37GMT;RFC822,由RFC1123更新
燬unday,06-Nov-9408:49:37GMT;RFC850,被RFC1036淘汰
燬un Nov 608:49:371994 ;ANSI C的asctime()格式
根据[RFC2068],
第一种格式是首选的.它代表了一种在[RFC1123]
([RFC822]的
升级)中定义的组合长度的子集.第二种格式是通常被使
用的,但它基于被淘汰的[RFC850]
的日期格式并且缺乏4-数字年份.HTTP1.1客户必须接受所
有的这些格式,但在HTML头中只使用[RFC1123]
格式.希望HTML用户代理器在此问题上遵循HTTP1.1,并且额
外地指供[ISO8601]
日期格式,例如"1998-01-23T16:05:31+00:00".关于更多的信息,请
参阅 INS和 DEL
元素部分.
当有属性提供多种格式时,scheme
特性值用来标识content
特性期望的值.允许的scheme
特性的值取决于name属性的轮廓描述.
下面例程中的第一个 META
声明引用Dewey Decimal System (dds)方案.第二个引用ISBN方案.
<META scheme="dds" name="description" content="04.251 Supercomputers systems design">
<META scheme="ISBN" name="identifier" content="0-8230-2355-9">
注意:有一个例程轮廓描述是Dublin Core[DCORE].
这个轮廓描述定义电子著作题解描述集,并且有意用来提
高不同的描述模版的统一性.
BODY元素
<!ENTITY % block "(%blocklevel | %inline)*">
<!ENTITY % Color "CDATA" -- a color using sRGB: #RRGGBB as Hex values -->
<!-- There are also 16 widely known color names with their sRGB values:Black = #000000
Green = #008000 Silver = #C0C0C0 Lime = #00FF00 Gray = #808080 Olive = #808000
White = #FFFFFF Yellow = #FFFF00 Maroon = #800000 Navy = #000080 Red = #FF0000
Blue = #0000FF Purple = #800080 Teal = #008080 Fuchsia= #FF00FF Aqua = #00FFFF -->
<!ENTITY % bodycolors " bgcolor %Color #IMPLIED .ext %Color #IMPLIED link %Color
#IMPLIED .link %Color #IMPLIED .link %Color #IMPLIED ">
<!ELEMENT
BODY
O O (%block) -(BODY) +(INS|DEL)>
<!ATTLIST BODY
%attrs; --%coreattrs,%i18n,%events --
background
%URL #IMPLIED--texture tile for document background --
%bodycolors; --bgcolor,
text,
link,
vlink,alink--
onload %Script #IMPLIED--the document has been loaded --
onunload %Script #IMPLIED -- the document has been removed -- >
开始标记: 可选,结束标记: 可选
特性定义
-
background=url
-
不赞成.这个特性的值是指明图像资源的统一资源
位置.这个图像通常用来铺成背景(对于可视浏览器).
-
text=color
-
不赞成.这个特性值设定文本的前景色(对于可视浏
览器).
-
link=color
-
不赞成.这个特性值用来设定标注未访问链接文本
的颜色(对于可视浏览器).
-
vlink=color
-
不赞成.这个特性值用来设定标注已访问链接文本
的颜色(对于可视浏览器).
-
alink=color
-
不赞成.这个特性值用来设定当用户选定链接文本
时的颜色(对于可视浏览器).
文档的主干包含了文档的内容.用户代理器通过多种途径
来表现这些内容.例如,对于可视浏览器,你可以把主干想
象成一张画布,可以出现:文字,图像,颜色,图案等等.对于
声像代理器,相同的内容将被朗读.既然风格页
是首选的文档表达方式,陈述特性 BODY
刚成为不赞成的.这些特性只有当你打算控制不提供风格
页的用户代理器时使用.
下面的语句举例说明了HTML的不
赞成的特性.它把画布的颜色设成白色,文字前景色设为
黑色,初始的超链颜色为红,在激活时是洋红,而在访问过
后则呈现栗色.
不赞成例程:
<HTML>
<HEAD>
<TITLE>A study of population dynamics</TITLE>
<BODY bgcolor="white" text="black" 爈ink="red" alink="fuschia" vlink="maroon">
... document body... </BODY> </HTML>
使用风格页,相同的效果可以如
下完成:
<HTML> <HEAD> <TITLE>A study of population dynamics</TITLE>
<STYLE type="text/css">
BODY { background: white; color: black}
a:link { color: red }
a:visited { color: maroon }
a:active { color: fuschia }
</STYLE>
</HEAD>
<BODY>
... document body...
</BODY>
</HTML>
使用风格页给你调整文档表达的弹性而不用改变文档:
<HTML> <HEAD> <TITLE>A study of population dynamics</TITLE>
<LINK rel="stylesheet" type="text/css" href="smartstyle.css"> </HEAD>
<BODY> ... document body... </BODY> </HTML>
框和HTML主干.包含框的文档通过 FRAMESET
元素来代替 BODY元素.
请查阅框部分来获得更多信息.
元素标识符:id 和class 特性
特性定义
-
id=name
-
这个特性分配了广泛的文档名作为一个元素的实例.在文
档内id的值必须是唯一
的.此外,这个特性与name特性享用同一个命名空间.
-
class=cdata-list
-
这个特性分配了一个类或类的集合作为一个指定的元素
实例.任意数量的元素可以被分配成相同的类名或名字.
它们必须以空白来分开.
id和 class
特性分配元素实例一个标识符.
一个由id指定的标识
符在一份文档中必须是唯一的.一个class
指定的类名可以被数个元素实例共享.类的值应当选用能
够辨认的与元素有关的词,如note,example 以及warning 等.
这些特性可以通过下列途径使用:
-
id特性可以作为超文本
链接的目标使用(参见锚点部分).
-
脚本可以使用id特性来
参照一个特定的元素.
-
风格页可以通过id特性
来对特定的元素提供风格.
-
id特性被用来标识OBJECT
元素声明.
-
风格页可以使用class
特性来对一组与类相关的或作为类的子元素的集合提供
风格.
-
id和class
两者均能用于进一步的处理目的,例如用来指定把数据从
HTML页提取到数据库时标识字段,把HTML文档转换成别的
格式时,等等).
几乎每一个HTML元素可以被分配标识符和类信息.
例如,我们假定编写一份关于编程语言的
文档.这个文档可以包含一定数量的预置文本.我们对于
例程使用 PRE元素来标定
格式.而且也分配所有的属于"example"类的 PRE
元素中的例程的背景色为绿色(green).
<HEAD> <STYLE PRE.example { background : green }
</STYLE </HEAD> <BODY> <PRE class="example" id="example-1">
...example code here...
</PRE> </BODY>
对此例程通过设定 id特
性,我们能够(1)为其建立一个超链和(2)超越实例风格的
类风格信息.
元素编组:DIV和SPAN
元素
<!ELEMENTDIV - - %block>
<!ATTLIST DIV
%attrs; --%coreattrs,%i18n,%events --
%align; --align, text alignment -- >
<!ELEMENTSPAN - - (%inline)* -- generic language/style container --> <!ATTLIST SPAN %attrs; -- %coreattrs, %i18n, %events -- >
开始标记: 需要,结束标记: 需要
在它处定义的特性
DIV和 SPAN
元素,作为 id和 class
特性的连接词,提供了一个通常地对文档加入结构的机制.
这是仅有的两个HTML元素不能在它们内容中附加陈述.因
此,通过建立实例和元素的类以及向它们提供风格页,
作者可以根据他们的需要和假定来指定HTML.
设想我们打算生成一个来自于客户信息
数据库的文档.由于HTML不包括标识为"client","telephone number",
"email address"等等的对象元素,我们使用 DIV
和 SPAN来缝合HTML与我
们的需要.
在此例中,每个客户的姓属于"client-last-name"类等等.我
们也分配给每个用户一个唯一标志符("client-boyera","client-lafon"
等等).
<DIV id="client-boyera" class="client">
<SPAN class="client-last-name">Last name:</SPAN> Boyera,
<SPAN class="client-first-name">First name:</SPAN> Stephane
<SPAN class="client-tel">Telephone:</SPAN> (212) 555-1212
<SPAN class="client-email">Email:</SPAN> sb@foo.org </DIV>
<DIV id="client-lafon" class="client"> <SPAN class="client-last-name">Last name:</SPAN> Lafon,
<SPAN class="client-first-name">First name:</SPAN> Yves
<SPAN class="client-tel">Telephone:</SPAN> (617) 555-1212 <SPAN class="client-email">Email:</SPAN> yves@bar.com </DIV>
然后,我们可以简单地把风格信息加到我们的文档来使这
些数据库条目和谐显示.
当你想为一组单词分配类或语言信息时, SPAN
是一个可以在段落,列表条目等项目中使用的行内元素.
SPAN不能用来对封闭
级元素编组. SPAN在渲
染上没有天生的效果直到你提供一个风格,例如通过 style
特性或链接到风格页.
DIV与之相反,是封
闭级元素.它可以用来对其它的封闭级元素编组,但不能
用于段落元素中.DIV元
素紧跟一个打开的P元素
将终止那个段落.
用户代理器通常在DIV
元素前后放置一个换行,例如:
<P>aaaaaaaaa<DIV>bbbbbbbbb</DIV><DIV>ccccc<P>ccccc</DIV>
这典型地被渲染成:
aaaaaaaaa
bbbbbbbbb
ccccc
ccccc
你的用户代理器也可能如下渲染:
aaaaaaaaabbbbbbbbbccccc
ccccc
引导:TheH1,H2,H3,H4,H5,H6
元素
<!ENTITY%heading "H1|H2|H3|H4|H5|H6">
<!-- There are six levels of headings from H1 (the most important) to H6 (the least important). -->
<!ELEMENT (%heading) - - (%inline;)*>
<!ATTLIST(%heading)
%attrs; --%coreattrs,%i18n,%events --
%align; --align, text alignment -- >
开始标记: 需要,结束标记: 需要
在它处定义的特性
一个引导元素简要的描述了这个部分的介绍主题.引导信
息可用被用户代理器使用,例如自动地为文档生成一个目
录表格.
HTML中有6种级别的引导从最重要H1
到最不重要的H6.用户
代理器将使用较大的字体来渲染比较重要的引导信息.
下面的例程展示了如何使用在后续文档
使用 DIV元素来联系一
个引导信息.这样做允许你定通过风格页来定义这部分的
风格(定义背景色,设置字体等等).
<DIV class="section" id="forest-elephants" >
<H1>Forest elephants
</H1> In this section, we discuss the lesser known forest elephants. ...this section continues...
<DIV class="subsection" id="forest-habitat" >
<H2>Habitat</H2>
Forest elephants do not live in trees but among them. ...this subsection continues...
</DIV> </DIV>
这个结构可以如下通过风格信息来装饰:
<HEAD>
<STYLE>
DIV.section { text-align: justify; font-size: 12pt}
DIV.subsection { text-indent: 2em }
H1 { font-style: italic; color: green }
H2 { color: green }
</STYLE>
</HEAD>
标号章节与参照
HTML自行并不生成由引导信息生成的章节编号.然而
这个机制可由用户代理器提供.不久的将来,如CSS之类风
格页语言将允许作者来控制章节号的产生(通过文档中转
递参照操作,如"参阅章节7.2").
ADDRESS元素
<!ELEMENTADDRESS - - ((%inline;) | P)*> <!ATTLIST ADDRESS %attrs; -- %coreattrs, %i18n, %events -- >
开始标记: 需要,结束标记: 需要
因为没有更好的位置,我们只能在此定义 ADDRESS.
这个元素在文档中加入作者和交互信息,如:
<ADDRESS> Newsletter editor<BR> J. R. Brown<BR> 8723 Buena Vista, Smallville, CT 01234<BR> Tel: +1 (123) 456 7890 </ADDRESS>
前页|后页|
目录|元素|
特性
|