第23章可扩展超文本标记语言( XHTMLY 第23章可扩展超文本标记语言( XHTML) XHTML是万维网协会(WC)定义和推荐的最新一代web标准。尽管HIML是人们已 经习惯使用的Web网页设计语言,而且采用HML编写的网页已有数以百万计,但由于 XHTML的语法比 HTML的语法严谨得多,使用 XHTML设计的Web网页更易于在网络上 交换,因此 XHTML立下的目标就是要在不久的将来取代HIML。 XHTML与HIML非常相似,名称上也只是加了一个表示可扩展的字母X。 XHTML易 学易用,把用HIML开发的Web网页转换成 XHTML网页也不是很难,而且已经有这样的 转换软件。实际上,在 XHTML1.0发布以前就已经建立了很多 XHTML站点,只不过在 浏览网页时没有引起注意而已。 本章将介绍 XHTML的基础知识。在阅读本章之前,读者需要了解HIML和XML 基础知识。 231 XHTML是什么 231.1 XHTML是什么 可扩展超文本标记语言( Extensible Hypertext Markup Language,XHML)是HM语言 的下一代语言。 XHTML是用XML格式重新改写的HIML, XHTML1.0是HIML401的改 写版本。 XHTML使用的词汇是HIML的词汇,使用的语法是ⅩML的语法 2312 XHTML和HTML的差别 XHTML和HTML的主要差别是, XHTML元素必需正确嵌套, XHTML文档必需是合 格文档,标签名称必需是小写字母,以及所有元素必需是有开始标签和结束标签。 1. XHTML元素必需正确嵌套 在HIML中,某些元素允许存在不正确的嵌套。例如 <b><>这段文字是黑斜体<b></ 在 XHTML中,所有元素必需正确嵌套。例如 <b><p>这段文字是黑斜体<></b> 2. XHTML文档必需是合格文档 XHTML文档必需严格遵照ⅹML语法规则来构造。一个 XHTML元素必需嵌套在根元 素内,所有其他元素可以包含子元素,而子元素必需正确地嵌套在父元素内。基本的文档结 构如下所示: chtm> cbody </htmI> 3.标签名称必需是小写字母 这是因为 XHTML文档是XML的应用,而ⅩML是区分大小写的。例如,下面是两个 错误的标签 <BODY>
第 23 章 可扩展超文本标记语言(XHTML) 1 第 23 章 可扩展超文本标记语言(XHTML) XHTML 是万维网协会(W3C)定义和推荐的最新一代 Web 标准。尽管 HTML 是人们已 经习惯使用的 Web 网页设计语言,而且采用 HTML 编写的网页已有数以百万计,但由于 XHTML 的语法比 HTML 的语法严谨得多,使用 XHTML 设计的 Web 网页更易于在网络上 交换,因此 XHTML 立下的目标就是要在不久的将来取代 HTML。 XHTML 与 HTML 非常相似,名称上也只是加了一个表示可扩展的字母 X。XHTML 易 学易用,把用 HTML 开发的 Web 网页转换成 XHTML 网页也不是很难,而且已经有这样的 转换软件[3]。实际上,在 XHTML 1.0 发布以前就已经建立了很多 XHTML 站点,只不过在 浏览网页时没有引起注意而已。 本章将介绍 XHTML 的基础知识。在阅读本章之前,读者需要了解 HTML 和 XML 的 基础知识。 23.1 XHTML 是什么 23.1.1 XHTML 是什么 可扩展超文本标记语言(Extensible Hypertext Markup Language,XHTML)是 HTML 语言 的下一代语言。XHTML 是用 XML 格式重新改写的 HTML,XHTML 1.0 是 HTML4.01 的改 写版本。XHTML 使用的词汇是 HTML 的词汇,使用的语法是 XML 的语法。 23.1.2 XHTML 和 HTML 的差别 XHTML 和 HTML 的主要差别是,XHTML 元素必需正确嵌套,XHTML 文档必需是合 格文档,标签名称必需是小写字母,以及所有元素必需是有开始标签和结束标签。 1. XHTML 元素必需正确嵌套 在 HTML 中,某些元素允许存在不正确的嵌套。例如, <b><i>这段文字是黑斜体</b></i> 在 XHTML 中,所有元素必需正确嵌套。例如, <b><i>这段文字是黑斜体</i></b> 2. XHTML 文档必需是合格文档 XHTML 文档必需严格遵照 XML 语法规则来构造。一个 XHTML 元素必需嵌套在根元 素内,所有其他元素可以包含子元素,而子元素必需正确地嵌套在父元素内。基本的文档结 构如下所示: <html> <head> ... </head> <body> ... </body> </html> 3. 标签名称必需是小写字母 这是因为 XHTML 文档是 XML 的应用,而 XML 是区分大小写的。例如,下面是两个 错误的标签: <BODY>
第23章可扩展超文本标记语言( XHTMLY <P>这是一个段落<P> </BODY> 正确的标签为 p>这是一个段落 /body> 所有的 XHTML元素必需是闭合的 在 XHTML中,所有元素都必需有开始标签和结束标签。例如,下面是两个错误的 XHTML元素: p>这是介绍香港的段落 p>这是介绍台湾的段落 正确的 XHTML元素为, p>这是介绍香港的段落<p p>这是介绍台湾的段落</p> 空元素也必需是闭合的。它有一个结束标签,或者有一个带“/”符号串的开始标签。 例如,下面是两个错误的 XHIML元素 这是新产品<br> 这里有一幅图像< Img src-=" topdog student. gif alt=" Topdog Student"> 正确的 XHTML元素为 这是新产品<br 这里有一幅图像< cimg src=" topdog student. gif"alt=" Topdog Student" 232 XHTML语法 要编写出合格 XHTML文档,则需要掌握它的语法。 XHTML语法规则主要包括属性名 必需用小写字母、属性值必需要用引号、不允许属性最小化、id(识别码)属性代替名称属性 语言属性、强制性 XHTML元素 1.属性名必需用小写字母 例如,下面是一个错误的属性名: <table WIDtH="100%"> 正确的属性名为 <table width=100%"> 2.属性值必需要用引号 例如,下面是一个错误的属性值 <table width=100%> 正确的属性值为 <table width="100%"> 3.不允许属性最小化 例如,下面都是错误的属性 <dl compact> <input checked>
第 23 章 可扩展超文本标记语言(XHTML) 2 <P>这是一个段落</P> </BODY> 正确的标签为: <body> <p>这是一个段落</p> </body> 4. 所有的 XHTML 元素必需是闭合的 在 XHTML 中,所有元素都必需有开始标签和结束标签。例如,下面是两个错误的 XHTML 元素: <p>这是介绍香港的段落 <p>这是介绍台湾的段落 正确的 XHTML 元素为, <p>这是介绍香港的段落</p> <p>这是介绍台湾的段落</p> 空元素也必需是闭合的。它有一个结束标签,或者有一个带“/>”符号串的开始标签。 例如,下面是两个错误的 XHTML 元素: 这是新产品<br> 这里有一幅图像<img src="topdog_student.gif" alt="Topdog Student"> 正确的 XHTML 元素为 这是新产品<br /> 这里有一幅图像<img src="topdog_student.gif" alt=" Topdog Student " /> 23.2 XHTML 语法 要编写出合格 XHTML 文档,则需要掌握它的语法。XHTML 语法规则主要包括属性名 必需用小写字母、属性值必需要用引号、不允许属性最小化、id(识别码)属性代替名称属性、 语言属性、强制性 XHTML 元素。 1. 属性名必需用小写字母 例如,下面是一个错误的属性名: <table WIDTH="100%"> 正确的属性名为 <table width="100%"> 2. 属性值必需要用引号 例如,下面是一个错误的属性值: <table width=100%> 正确的属性值为 <table width="100%"> 3. 不允许属性最小化 例如,下面都是错误的属性: <dl compact> <input checked>
第23章可扩展超文本标记语言( XHTMLY <option selected> <frame noresize> 正确的属性为 <input checked="checked"> input readonly="readonly"> input disabled=disabled"> <option selected="selected"> <trame noresizenoresize">> 表23-1列出了HML中的最小化属性和在 XHTML中的表示法 表23-1HTML最小化属性和 XHTMI属性的表示法 HTML XHTML compact compact="compact checked checked="checked" clare declare=declare readonly readonly="readonly isabled disabled=disabled lected selected="selected defer="defer nohref nohrefnohreft shade="noshade wrap- nowrap multiple multiple="multiple noreste noresize- noresize 4.用id代替名称属性 在HIML401中,为元素定义了一个name(名称)属性。在XHML中,使用id(识别码) 代替名称。例如,下面是错误的名称属性 <img src="picture. gif"name="picture"P> 正确的属性名称为 <img src="picture. gif"id="picture"A 为适应比较老的浏览器,属性名称应该使用两个名称(即name和id)。例如,下面是 个使用name和id的元素 <img src="picture. gif"id="picture"name="picture"p 5.语言属性 在 XHTML中,几乎每一个元素都用到语言(ang)属性,它指定在元素中的内容要使用 的语言。指定语言属性的目的是帮助搜索引擎检索文档,以及便于浏览器浏览文档。如果在 元素中使用语言属性,则必需添加 xml: lang属性,例如
第 23 章 可扩展超文本标记语言(XHTML) 3 <input readonly> <input disabled> <option selected> <frame noresize> 正确的属性为 <dl compact="compact"> <input checked="checked"> <input readonly="readonly"> <input disabled="disabled"> <option selected="selected"> <frame noresize="noresize"> 表 23-1 列出了 HTML 中的最小化属性和在 XHTML 中的表示法。 表 23-1 HTML 最小化属性和 XHTML 属性的表示法 HTML XHTML compact compact="compact" checked checked="checked" declare declare="declare" readonly readonly="readonly" disabled disabled="disabled" selected selected="selected" defer defer="defer" ismap ismap="ismap" nohref nohref="nohref" noshade noshade="noshade" nowrap nowrap="nowrap" multiple multiple="multiple" noresize noresize="noresize" 4. 用 id 代替名称属性 在 HTML 4.01 中,为元素定义了一个 name(名称)属性。在 XHTML 中,使用 id(识别码) 代替名称。例如,下面是错误的名称属性: <img src="picture.gif" name="picture1" /> 正确的属性名称为 <img src="picture.gif" id="picture1" /> 为适应比较老的浏览器,属性名称应该使用两个名称(即 name 和 id)。例如,下面是一 个使用 name 和 id 的元素 <img src="picture.gif" id="picture1" name="picture1" /> 5. 语言属性 在 XHTML 中,几乎每一个元素都用到语言(lang)属性,它指定在元素中的内容要使用 的语言。指定语言属性的目的是帮助搜索引擎检索文档,以及便于浏览器浏览文档。如果在 元素中使用语言属性,则必需添加 xml:lang 属性,例如
第23章可扩展超文本标记语言( XHTMLY <div lang="en"xml lang="en"> This paragraph is in English!</div 6.强制性 XHTML元素 所有 XHTML文档必需有 DOCTYPE声明, html, head和body元素必需出现在文档中 title必需出现在head元素中。下面所示的文档是一个最小的 XHTML文档模板 <I DOCTYPE Doctype goes here <html> <head> <title> Title goes here</title> </head> Body text goes here 注意, DOCTYPE声明不是 XHTML文档本身,它也不是 XHTML元素,并且不应该有 结束标签 233 XHTML的文档类型定义 233.1 XHTML文档结构 个 XHTML文档主要由下列三个部分组成:文档类型声明( DOCTYPE)、文档头head) 和文档主体(body)。 XHTML文档的基本结构如下所示: <I DOCTYPE.> <html> <body>…<body> DOCTYPE声明总是放在 XHTML的第一行。 【例1】一个“简单的 XHTML文档” <I DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN http://www.w3.org/tr/xhtmll/dtD/xhtmll-strict.dtd"> <htmI> <title>simple XHTML document</title> <body> <p>a simple paragraph</ </body 其中, DOCTYPE定义的文档类型是 <I DOCTYPE html
第 23 章 可扩展超文本标记语言(XHTML) 4 <div lang="en" xml:lang="en"> This paragraph is in English!</div> 6. 强制性 XHTML 元素 所有 XHTML 文档必需有 DOCTYPE 声明,html, head 和 body 元素必需出现在文档中, title 必需出现在 head 元素中。下面所示的文档是一个最小的 XHTML 文档模板 <!DOCTYPE Doctype goes here> <html> <head> <title>Title goes here</title> </head> <body> Body text goes here </body> </html> 注意,DOCTYPE 声明不是 XHTML 文档本身,它也不是 XHTML 元素,并且不应该有 结束标签 23.3 XHTML 的文档类型定义 23.3.1 XHTML 文档结构 一个 XHTML 文档主要由下列三个部分组成:文档类型声明(DOCTYPE)、文档头(head) 和文档主体(body)。XHTML 文档的基本结构如下所示: <!DOCTYPE ...> <html> <head> <title>... </title> </head> <body> ... </body> </html> DOCTYPE 声明总是放在 XHTML 的第一行。 【例 1】一个“简单的 XHTML 文档” <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>simple XHTML document</title> </head> <body> <p>a simple paragraph</p> </body> </html> 其中,DOCTYPE 定义的文档类型是, <!DOCTYPE html
第23章可扩展超文本标记语言( XHTMLY PUBLIC"-/W3C//DTD XHTML 1. 0 Strict//EN http://www.w3.org/tr/xhtmll/dtd/xhtmll-strict.dtd"> 文档的其余部分看起来就像HTML文档, <htm> <title>simple XHTML document </title> <body> <p>a simple paragraph<p> body> </html> 2332三种文档类型定义 文档类型定义(DID)用来指定网页的语法规则。这些语法规则用于指定特定类型文档的 标记(包括元素集和实体说明)。目前, XHTML1.0标准定义了三种 XHTML文档类型定义: 严谨型( Strict)、过渡型( Transitional)和框架型( Frameset) 1. XHTML 1.0 Strict 严谨型文档类型定义( Strict did)包含没有被废弃或者没有出现在框架网页中的元素和 属性。它用于清除标记,以避免文档显示出现混乱。这个文档类型与级联样式(CSS)一起 严谨型文档定义用 DOCTYPE声明, <l DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN http://www.w3.org/tr/xhtml1/dtd/xhtmll-stricT.Dtd"> 2. XHTML 1.0 Transitional 过渡型文档类型定义( Transitional DTD)包含严谨型文档类型定义中的所有内容,以及被 废弃的元素和属性。用于充分利用HIML的演示特性,以及使不理解级联样式(CSS)的浏览 器能够正常工作。过渡型文档用 DOCTYPE声明: <I DOCTYPE html PUBLIC"-/W3C//DTD XHTML 1. 0 Transitional//EN" http://www.w3.org/tr/xhtml1/dtd/xhtmll-transiTiOnal.dtd"> (3 XHTML 1.0 Frameset 框架型文档类型定义( Frameset diD)包含过渡型文档类型定义中的所有内容和框架网 页定义,用于把浏览器窗口分割成两个或两个以上的显示窗口。框架型文档用 DOCTYPE 声明 <l DOCTYPE html PUBLIC"-/W3C//DTD XHTML 1. 0 Frameset//EN http://www.w3.org/tr/xhtml1/dtd/xhtmll-frameSeT.dtd"> 234从HTML到 XHTMI 把一个Web站点从HIML型的站点转换成 XHTML型的站点,需要熟悉 XHTML的语
第 23 章 可扩展超文本标记语言(XHTML) 5 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 文档的其余部分看起来就像 HTML 文档, <html> <head> <title>simple XHTML document</title> </head> <body> <p>a simple paragraph</p> </body> </html> 23.3.2 三种文档类型定义 文档类型定义(DTD)用来指定网页的语法规则。这些语法规则用于指定特定类型文档的 标记(包括元素集和实体说明)。目前,XHTML 1.0 标准定义了三种 XHTML 文档类型定义: 严谨型(Strict)、过渡型(Transitional)和框架型(Frameset)。 1. XHTML 1.0 Strict 严谨型文档类型定义(Strict DTD)包含没有被废弃或者没有出现在框架网页中的元素和 属性。它用于清除标记,以避免文档显示出现混乱。这个文档类型与级联样式(CSS)一起。 严谨型文档定义用 DOCTYPE 声明, <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2. XHTML 1.0 Transitional 过渡型文档类型定义(Transitional DTD)包含严谨型文档类型定义中的所有内容,以及被 废弃的元素和属性。用于充分利用 HTML 的演示特性,以及使不理解级联样式(CSS)的浏览 器能够正常工作。过渡型文档用 DOCTYPE 声明: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ⑶ XHTML 1.0 Frameset 框架型文档类型定义(Frameset DTD)包含过渡型文档类型定义中的所有内容和框架网 页定义,用于把浏览器窗口分割成两个或两个以上的显示窗口。框架型文档用 DOCTYPE 声明: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 23.4 从 HTML 到 XHTML 把一个 Web 站点从 HTML 型的站点转换成 XHTML 型的站点,需要熟悉 XHTML 的语