XHTML 快速指南



XHTML - 简介

XHTML 代表可扩展超文本标记语言 (**E**xtensible **H**yper**T**ext **M**arkup **L**anguage)。它是互联网发展中的下一步。XHTML 1.0 是 XHTML 系列中的第一个文档类型。

XHTML 与 HTML 4.01 几乎完全相同,只有少数差异。这是一个比 HTML 4.01 更简洁、更严格的版本。如果您已经了解 HTML,那么您只需要稍微注意一下就能学习这个最新的 HTML 版本。

XHTML 由万维网联盟 (W3C) 开发,旨在帮助 Web 开发人员从 HTML 过渡到 XML。通过今天迁移到 XHTML,Web 开发人员可以进入 XML 世界并享受其所有优势,同时仍然对内容的向后和向前兼容性充满信心。

为什么要使用 XHTML?

将内容迁移到 XHTML 1.0 的开发人员可以获得以下好处:

  • XHTML 文档符合 XML 标准,因为它们可以使用标准的 XML 工具轻松查看、编辑和验证。

  • XHTML 文档可以编写得比以前在现有浏览器以及新浏览器中运行得更好。

  • XHTML 文档可以使用依赖于 HTML 文档对象模型或 XML 文档对象模型的脚本和应用程序。

  • XHTML 为您提供了更一致、结构良好的格式,以便当前和未来的 Web 浏览器可以轻松地解析和处理您的网页。

  • 您可以轻松地维护、编辑、转换和格式化您的文档。

  • 由于 XHTML 是 W3C 的官方标准,您的网站与许多浏览器更兼容,并且渲染更准确。

  • XHTML 结合了 HTML 和 XML 的优势。此外,所有支持 XML 的浏览器都可以渲染 XHTML 页面。

  • XHTML 为您的网页定义了质量标准,如果您遵循该标准,您的网页将被视为高质量网页。W3C 会为这些页面颁发质量认证。

Web 开发人员和 Web 浏览器设计人员不断发现通过新的标记语言表达其想法的新方法。在 XML 中,引入新元素或附加元素属性相对容易。XHTML 系列旨在通过 XHTML 模块和开发符合 XHTML 的新模块的技术来适应这些扩展。这些模块允许在开发内容和设计新的用户代理时组合现有功能和新功能。

基本理解

在继续之前,让我们快速了解一下 HTML、XML 和 SGML 是什么。

什么是 SGML?

这是符合国际标准 ISO 8879 的**标准通用标记语言 (SGML)** 应用程序。HTML 被广泛认为是万维网的标准发布语言。

这是一种用于描述标记语言的语言,特别是那些用于电子文档交换、文档管理和文档发布的语言。HTML 是 SGML 定义的语言的一个示例。

什么是 XML?

XML 代表可扩展标记语言 (**E**xtensible **M**arkup **L**anguage)。XML 是一种类似于 HTML 的标记语言,它旨在描述数据。XML 标记不是预定义的。您必须根据自己的需要定义自己的标记。

XHTML - 语法

XHTML 语法与 HTML 语法非常相似,几乎所有有效的 HTML 元素在 XHTML 中也是有效的。但是,当您编写 XHTML 文档时,您需要额外注意才能使您的 HTML 文档符合 XHTML。

以下是编写新的 XHTML 文档或将现有 HTML 文档转换为 XHTML 文档时需要记住的重要事项:

  • 在 XHTML 文档的开头编写 DOCTYPE 声明。

  • 所有 XHTML 标记和属性都必须小写。

  • 正确关闭所有 XHTML 标记。

  • 正确嵌套所有标记。

  • 引用所有属性值。

  • 禁止属性最小化。

  • 用 `id` 属性替换 `name` 属性。

  • 弃用 script 标记的 `language` 属性。

以下是上述 XHTML 规则的详细解释:

DOCTYPE 声明

所有 XHTML 文档都必须在开头有一个 DOCTYPE 声明。有三种类型的 DOCTYPE 声明,在 XHTML 文档类型声明章节中有详细讨论。以下是用 DOCTYPE 的示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

大小写敏感性

XHTML 是大小写敏感的标记语言。所有 XHTML 标记和属性都必须小写。

<!-- This is invalid in XHTML -->
<A Href="/xhtml/xhtml_tutorial.html">XHTML Tutorial</A>

<!-- Correct XHTML way of writing this is as follows -->
<a href="/xhtml/xhtml_tutorial.html">XHTML Tutorial</a>

在这个示例中,`Href` 和锚标记 `A` 不是小写,所以它是错误的。

关闭标记

每个 XHTML 标记都应该有一个等效的结束标记,即使是空元素也应该有结束标记。以下是一个示例,显示了使用标记的有效和无效方法:

<!-- This is invalid in XHTML -->
<p>This paragraph is not written according to XHTML syntax.

<!-- This is also invalid in XHTML -->
<img src="/images/xhtml.gif" >

以下语法显示了在 XHTML 中正确编写上述标记的方法。不同之处在于,这里我们正确地关闭了两个标记。

<!-- This is valid in XHTML -->
<p>This paragraph is not written according to XHTML syntax.</p>

<!-- This is also valid now -->
<img src="/images/xhtml.gif" />

属性引号

所有 XHTML 属性的值都必须加引号。否则,您的 XHTML 文档将被视为无效文档。以下示例显示了语法:

<!-- This is invalid in XHTML -->
<img src="/images/xhtml.gif" width=250 height=50 />

<!-- Correct XHTML way of writing this is as follows -->
<img src="/images/xhtml.gif" width="250" height="50" />

属性最小化

XHTML 不允许属性最小化。这意味着您需要明确声明属性及其值。以下示例显示了差异:

<!-- This is invalid in XHTML -->
<option selected>

<!-- Correct XHTML way of writing this is as follows -->
<option selected="selected">

以下是 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"

`id` 属性

`id` 属性替换 `name` 属性。XHTML 不使用 `name = "name"`,而是使用 `id = "id"`。以下示例显示了如何操作:

<!-- This is invalid in XHTML -->
<img src="/images/xhtml.gif" name="xhtml_logo" />

<!-- Correct XHTML way of writing this is as follows -->
<img src="/images/xhtml.gif" id="xhtml_logo" />

`language` 属性

script 标记的 `language` 属性已弃用。以下示例显示了此差异:

<!-- This is invalid in XHTML -->

<script language="JavaScript" type="text/JavaScript">
   document.write("Hello XHTML!");
</script>

<!-- Correct XHTML way of writing this is as follows -->

<script type="text/JavaScript">
   document.write("Hello XHTML!");
</script>

嵌套标记

您必须正确嵌套所有 XHTML 标记。否则,您的文档将被视为不正确的 XHTML 文档。以下示例显示了语法:

<!-- This is invalid in XHTML -->
<b><i> This text is bold and italic</b></i>

<!-- Correct XHTML way of writing this is as follows -->
<b><i> This text is bold and italic</i></b>

元素禁止

以下元素不允许在其内部包含任何其他元素。此禁止适用于所有嵌套深度。这意味着它包括所有后代元素。

元素 禁止
<a> 不得包含其他 <a> 元素。
<pre> 不得包含 <img>、<object>、<big>、<small>、<sub> 或 <sup> 元素。
<button> 不得包含 <input>、<select>、<textarea>、<label>、<button>、<form>、<fieldset>、<iframe> 或 <isindex> 元素。
<label> 不得包含其他 <label> 元素。
<form> 不得包含其他 <form> 元素。

一个最小的 XHTML 文档

以下示例显示了 XHTML 1.0 文档的最小内容:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/TR/xhtml1" xml:lang="en" lang="en">
   <head>
      <title>Every document must have a title</title>
   </head>
	
   <body>
      ...your content goes here...
   </body>
</html>

HTML 与 XHTML 的对比

由于 XHTML 是一个 XML 应用程序,因此必须更改在基于 SGML 的 HTML 4 中完全合法的某些做法。您已经在上一章中看到了 XHTML 语法,因此 XHTML 和 HTML 之间的区别非常明显。以下是 XHTML 和 HTML 的比较。

XHTML 文档必须格式良好

格式良好是 XML 引入的一个新概念。本质上,这意味着所有元素都必须有结束标记,并且您必须正确嵌套它们。

正确:嵌套元素

<p>Here is an emphasized <em>paragraph</em>.</p>

错误:重叠元素

<p>Here is an emphasized <em>paragraph.</p></em>

元素和属性必须小写

XHTML 文档必须对所有 HTML 元素和属性名称使用小写。这种差异是必要的,因为 XHTML 文档被认为是 XML 文档,而 XML 是大小写敏感的。例如,<li> 和 <LI> 是不同的标记。

所有元素都需要结束标记

在 HTML 中,某些元素允许省略结束标记。但是 XML 不允许省略结束标记。

正确:已终止的元素

<p>Here is a paragraph.</p><p>here is another paragraph.</p>
<br><hr/>

错误:未终止的元素

<p>Here is a paragraph.<p>here is another paragraph.
<br><hr>

属性值必须始终加引号

所有属性值,包括数值,都必须加引号。

正确:带引号的属性值

<td rowspan="3">

错误:未加引号的属性值

<td rowspan=3>

属性最小化

XML 不支持属性最小化。属性值对必须完整编写。例如 `compact` 和 `checked` 等属性名称不能在元素中出现而没有指定其值。

正确:非最小化属性

<dl compact="compact">

错误:最小化属性

<dl compact>

属性值中的空白处理

当浏览器处理属性时,它会执行以下操作:

  • 去除前导和尾随空白。

  • 将一个或多个空白字符(包括换行符)的序列映射到单个单词间空格。

脚本和样式元素

在 XHTML 中,`script` 和 `style` 元素不应直接包含“<”和“&”字符;如果存在,则它们被视为标记的开头。诸如“<”和“&”之类的实体被 XML 处理器识别为实体引用,用于分别显示“<”和“&”字符。

将 `script` 或 `style` 元素的内容包装在 CDATA 标记部分中可以避免展开这些实体。

<script type="text/JavaScript">
   <![CDATA[
      ... unescaped VB or Java Script here... ...
   ]]>
</script>

另一种方法是使用外部脚本和样式文档。

具有 `id` 和 `name` 属性的元素

XHTML 建议用 `id` 属性替换 `name` 属性。请注意,在 XHTML 1.0 中,这些元素的 `name` 属性正式被弃用,并将从后续版本的 XHTML 中删除。

具有预定义值集的属性

HTML 和 XHTML 都有一些属性具有预定义且有限的值集。例如,`input` 元素的 `type` 属性。在 HTML 和 XML 中,这些称为**枚举属性**。在 HTML 4 中,这些值的解释是不区分大小写的,因此 `TEXT` 值等效于 `text` 值。

在 XHTML 中,这些值的解释区分大小写,因此所有这些值都定义为小写。

十六进制值的实体引用

HTML 和 XML 都允许使用十六进制值引用字符。在 HTML 中,可以使用 `&#Xnn;` 或 `&#xnn;` 进行这些引用,它们是有效的,但在 XHTML 文档中,您必须仅使用小写版本,例如 `&#xnn;`。

<html> 元素是必须的

所有 XHTML 元素都必须嵌套在 <html> 根元素内。所有其他元素都可以有子元素,这些子元素必须成对出现,并正确嵌套在其父元素内。基本的文档结构如下:

<!DOCTYPE html....>

<html>
   <head> ... </head>
   <body> ... </body>
</html>

XHTML - 文档类型声明

XHTML 标准定义了三种文档类型定义 (DTD)。最常用且最简单的是 XHTML Transitional 文档。

XHTML 1.0 文档类型定义对应于三种 DTD:

  • 严格 (Strict)
  • 过渡 (Transitional)
  • 框架集 (Frameset)

一些 XHTML 元素和属性在一个 DTD 中可用,但在另一个 DTD 中不可用。因此,在编写 XHTML 文档时,必须仔细选择 XHTML 元素或属性。但是,XHTML 验证器可以帮助您识别有效和无效的元素和属性。

请查看 XHTML 验证 以了解更多详细信息。

XHTML 1.0 严格 (Strict)

如果您计划严格使用层叠样式表 (CSS) 并避免编写大多数 XHTML 属性,则建议使用此 DTD。符合此 DTD 的文档质量最佳。

如果您想使用 XHTML 1.0 Strict DTD,则需要在 XHTML 文档的顶部包含以下行:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML 1.0 过渡 (Transitional)

如果您计划使用许多 XHTML 属性以及一些层叠样式表属性,则应采用此 DTD 并相应地编写 XHTML 文档。

如果您想使用 XHTML 1.0 Transitional DTD,则需要在 XHTML 文档的顶部包含以下行:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

XHTML 1.0 框架集 (Frameset)

当您想使用 HTML 框架将浏览器窗口分成两个或多个框架时,可以使用此方法。

如果您想使用 XHTML 1.0 Frameset DTD,则需要在 XHTML 文档的顶部包含以下行:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

注意 - 无论您使用哪个 DTD 来编写 XHTML 文档;如果它是一个有效的 XHTML 文档,则您的文档被认为是高质量的文档。

XHTML - 属性

一些 XHTML/HTML 属性是标准的,并且与所有 XHTML/HTML 标签相关联。这些属性在此处列出,并附有简要说明:

核心属性

在 base、head、html、meta、param、script、style 和 title 元素中无效。

属性 描述
class class_rule 或 style_rule 元素的类。
Id id_name 元素的唯一 ID。
style style_definition 内联样式定义。
Title tooltip_text 在鼠标提示中显示的文本。

语言属性

lang 属性指示所用内容的语言。使用 ISO 标准语言缩写标识语言,例如法语为 fr,英语为 en,依此类推。更多代码及其格式在 www.ietf.org 中进行了描述。

在 base、br、frame、frameset、hr、iframe、param 和 script 元素中无效。

属性 描述
dir ltr | rtl 设置文本方向。
lang language_code 设置语言代码。

Microsoft 专有属性

Microsoft 在 Internet Explorer 4 和更高版本中引入了一些新的专有属性。

属性 描述
accesskey character 设置访问元素的键盘快捷键。
language string 此属性指定要与绑定到元素的关联脚本一起使用的脚本语言,通常通过事件处理程序属性进行绑定。可能的值可能包括 JavaScript、jScript、VBS 和 VBScript。
tabindex number 设置元素的 Tab 顺序。
contenteditable boolean 允许用户编辑在 Internet Explorer 5.5 或更高版本中呈现的内容。可能的值为 true 或 false。
disabled boolean 设置了 disabled 属性的元素可能显示为淡化,并且不会响应用户输入。可能的值为 true 或 false。
hidefocus on 或 off 此专有属性(在 Internet Explorer 5.5 中引入)隐藏元素内容的焦点。必须使用 tabindex 属性将焦点应用于元素。
unselectable on 或 off 用于防止在 Internet Explorer 5.5 中显示的内容被选中。

XHTML - 事件

当用户访问网站时,他们会执行诸如单击文本、图像和超链接、悬停等操作。这些是 JavaScript 所称事件的示例。

我们可以在 JavaScript 或 VBScript 中编写我们的事件处理程序,并可以将这些事件处理程序指定为事件标签属性的值。XHTML 1.0 具有类似的事件集,可在 HTML 4.01 规范中找到。

<body> 和 <frameset> 级事件

只有两个属性可以在文档级别发生任何事件时用于触发任何 JavaScript 或 VBScript 代码。

属性 描述
onload 脚本 XHTML 文档加载时运行脚本。
onunload 脚本 XHTML 文档卸载时运行脚本。

注意 - 在这里,脚本指的是 VBScript 或 JavaScript 的任何函数或代码片段。

<form> 级事件

以下六个属性可以在表单级别发生任何事件时用于触发任何 JavaScript 或 VBScript 代码。

属性 描述
onchange 脚本 元素更改时执行脚本。
onsubmit 脚本 提交表单时执行脚本。
onreset 脚本 重置表单时执行脚本。
onselect 脚本 选择元素时执行脚本。
onblur 脚本 元素失去焦点时执行脚本。
onfocus 脚本 元素获得焦点时运行脚本。

键盘事件

以下三个事件由键盘生成。这些事件在 base、bdo、br、frame、frameset、head、html、iframe、meta、param、script、style 和 title 元素中无效。

属性 描述
onkeydown 脚本 按键时执行脚本。
onkeypress 脚本 按键和释放时执行脚本。
onkeyup 脚本 释放键时执行脚本。

其他事件

当鼠标与任何 HTML 标签接触时,以下七个事件由鼠标生成。这些事件在 base、bdo、br、frame、frameset、head、html、iframe、meta、param、script、style 和 title 元素中无效。

属性 描述
onclick 脚本 鼠标单击时执行脚本。
ondblclick 脚本 鼠标双击时执行脚本。
onmousedown 脚本 按下鼠标按钮时执行脚本。
onmousemove 脚本 鼠标指针移动时执行脚本。
onmouseout 脚本 鼠标指针移出元素时执行脚本。
onmouseover 脚本 鼠标指针移到元素上时执行脚本。
onmouseup 脚本 释放鼠标按钮时执行脚本。

XHTML - 1.1 版本

W3C 帮助互联网内容开发社区从格式错误、非标准标记的时代转变为格式良好、有效的 XML 世界。在 XHTML 1.0 中,此转变受到将现有基于 HTML 4(或更早版本)的内容轻松迁移到 XHTML 和 XML 的目标的调节。

W3C 已从 XHTML 系列中删除对已弃用元素和属性的支持。这些元素和属性主要具有面向演示的功能,最好通过样式表或特定于客户端的默认行为来处理。

现在,W3C 的 HTML 工作组已定义了一个仅基于模块的初始文档类型,即 XHTML 1.1。此文档类型旨在可移植到各种客户端设备,并适用于大多数互联网内容。

文档一致性

XHTML 1.1 提供了严格一致的 XHTML 文档的定义,必须满足以下所有条件:

  • 文档必须符合 XHTML 1.1 文档类型定义中表达的约束。

  • 文档的根元素必须是 <html>。

  • 文档的根元素必须使用 xmlns 属性指定 XHTML 命名空间。

  • 根元素也可以包含 XML 架构中定义的架构位置属性。

在根元素之前,文档中必须有一个 DOCTYPE 声明。如果存在,DOCTYPE 声明中包含的公共标识符必须引用 XHTML 1.1 文档类型定义中找到的 DTD。

这是一个 XHTML 1.1 文档的示例:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd" xml:lang="en">
	
   <head>
      <title>This is the document title</title>
   </head>
	
   <body>
      <p>Moved to <a href="http://example.org/">example.org</a>.</p>
   </body>
	
</html>

注意 - 在此示例中,包含了 XML 声明。并非所有 XML 文档都需要如上所示的 XML 声明。强烈建议 XHTML 文档作者在其所有文档中使用 XML 声明。当文档的字符编码不是默认的 UTF-8 或 UTF-16 时,需要此类声明。

XHTML 1.1 模块

XHTML 1.1 文档类型由以下 XHTML 模块组成。

结构模块 - 结构模块定义了 XHTML 的主要结构元素。这些元素有效地充当许多 XHTML 系列文档类型的內容模型的基础。此模块中包含的元素和属性为:body、head、html 和 title。

文本模块 - 此模块定义了所有基本的文本容器元素、属性及其内容模型:abbr、acronym、address、blockquote、br、cite、code、dfn、div、em、h1、h2、h3、h4、h5、h6、kbd、p、pre、q、samp、span、strong 和 var。

超文本模块 - 超文本模块提供用于定义到其他资源的超文本链接的元素。此模块支持元素 a。

列表模块 - 正如其名称所示,列表模块提供面向列表的元素。具体而言,列表模块支持以下元素和属性:dl、dt、dd、ol、ul 和 li。

对象模块 - 对象模块提供用于通用对象包含的元素。具体而言,对象模块支持:object 和 param。

演示模块 - 此模块定义了元素、属性和用于简单演示相关标记的最小内容模型:b、big、hr、i、small、sub、sup 和 tt。

编辑模块 - 此模块定义了用于编辑相关标记的元素和属性:del 和 ins。

双向文本模块 - 双向文本模块定义了一个元素,可用于声明元素内容的双向规则:bdo。

表单模块 - 它提供 HTML 4.0 中的所有表单功能。具体而言,它支持:button、fieldset、form、input、label、legend、select、optgroup、option 和 textarea。

表格模块 - 它支持以下元素、属性和内容模型:caption、col、colgroup、table、tbody、td、tfoot、th、thead 和 tr。

图像模块 - 它提供基本的图像嵌入,并且可以在某些客户端图像映射实现中独立使用。它支持元素:img。

客户端图像映射模块 - 它提供客户端图像映射的元素:area 和 map。

服务器端图像映射模块 - 它提供对图像选择和选择坐标传输的支持。服务器端图像映射模块支持:img 上的 ismap 属性。

内建事件模块 − 它支持 XHTML 事件中讨论的所有事件。

元信息模块 − 元信息模块定义了一个元素,用于描述文档声明部分中的信息。它包含元素 meta。

脚本模块 − 它定义了用于包含与可执行脚本相关的信息或缺乏对可执行脚本支持的元素。此模块中包含的元素和属性为 − noscript 和 script。

样式表模块 − 它定义了一个元素,用于声明内部样式表。此模块定义的元素和属性为 − style。

样式属性模块(已弃用) − 它定义了 style 属性。

链接模块 − 它定义了一个元素,可用于定义到外部资源的链接。它支持 link 元素。

基准模块 − 它定义了一个元素,可用于定义一个基准 URI,文档中的相对 URI 将相对于此基准 URI 解析。此模块中包含的元素和属性为 − base

Ruby 注解模块 − XHTML 还使用 RUBY 中定义的 Ruby 注解模块,并支持 − ruby、rbc、rtc、rb、rt 和 rp。

XHTML 1.0 Strict 的更改

本节描述了 XHTML 1.1 和 XHTML 1.0 Strict 之间的区别。XHTML 1.1 代表了与 HTML 4 和 XHTML 1.0 的偏离。

  • 最显著的变化是删除了已弃用的功能。

  • 这些更改可以总结如下:

  • 在每个元素上,都已删除 lang 属性,而采用 xml:lang 属性。

  • 在 <a> 和 <map> 元素上,已删除 name 属性,而采用 id 属性。

  • 已添加 ruby 元素集合。

XHTML - 提示与技巧

本章列出了编写 XHTML 文档时应注意的各种技巧和窍门。这些技巧和窍门可以帮助您创建有效的文档。

XHTML 文档设计技巧

以下是设计 XHTML 文档的一些基本指南:

为服务和吸引您的受众而设计

当您考虑满足受众的需求时,您需要设计有效且引人入胜的文档来达到目的。您的文档应该易于查找所需信息并提供熟悉的环境。

例如,学者或医务人员习惯于使用长句、复杂的图表、特定的术语等类似期刊的文档,而小学生访问的文档必须简洁明了。

重复使用您的文档

重复使用您之前创建的成功文档,而不要每次获得新项目时都从头开始。

XHTML 文档内部

以下是一些关于 XHTML 文档内元素的技巧:

XML 声明

并非所有 XHTML 文档都需要 XML 声明,但强烈建议 XHTML 文档作者在其所有文档中使用 XML 声明。当文档的字符编码不是默认的 UTF-8 或 UTF-16 时,需要此类声明。

空元素

它们在空元素的尾随 / 和 > 之前包含一个空格。例如,<br />、<hr /> 和 <img src="/html/xhtml.gif" alt="xhtml" />。

嵌入式样式表和脚本

如果您的样式表使用“<”、“&”、“]]>”或“—”,请使用外部样式表。

如果您的脚本使用“<”、“&”、“]]>”或“—”,请使用外部脚本。

属性值中的换行符

避免属性值中的换行符和多个空格字符。不同的浏览器对这些字符的处理方式不一致。

Isindex 元素

不要在文档头部包含多个 isindex 元素。isindex 元素已被弃用,而采用 input 元素。

langxml:lang 属性

在指定元素的语言时,同时使用 langxml:lang 属性。xml:lang 属性的值优先。

元素标识符

XHTML 1.0 已弃用 a、applet、form、frame、iframe、imgmap 元素的 name 属性。它们将在后续版本的 XHTML 中被删除。因此,请开始使用 id 元素进行元素标识。

在属性值中使用和号

和号字符 ("&") 应表示为实体引用 &。

示例

<!-- This is invalid in XHTML -->
http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user.

<!-- Correct XHTML way of writing this is as follows -->
http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user

HTML 和 XML 中的空格字符

HTML 文档中的一些合法字符在 XML 文档中是非法的。例如,在 HTML 中,换页符 (U+000C) 被视为空格,但在 XHTML 中,由于 XML 对字符的定义,它是非法的。

命名字符引用 &Apos;

命名字符引用 '(撇号,U+0027)是在 XML 1.0 中引入的,但没有出现在 HTML 中。因此,Web 开发人员应使用 &#39; 而不是 ',以使其在 HTML 4 Web 浏览器中按预期工作。

XHTML - 验证

每个 XHTML 文档都将针对文档类型定义进行验证。在正确验证 XHTML 文件之前,必须将正确的 DTD 添加到文件的第 1 行或第 2 行。

准备好验证 XHTML 文档后,可以使用 W3C 验证器来验证文档。此工具非常方便,可以帮助您修复文档中的问题。此工具无需任何专业知识即可执行验证。

文本框中的以下语句显示详细信息。您需要提供要验证的页面的完整 URL,然后单击 验证页面 按钮。

在下面的框中输入您的页面地址:

此验证器检查具有各种格式的 Web 文档(尤其是在 HTML、XHTML、SMIL、MathML 等中)的标记有效性

还有其他工具可以执行其他不同的验证。

XHTML - 总结

我们假设您已经理解了与 XHTML 相关的所有概念。因此,您应该能够将 HTML 文档编写成格式良好的 XHTML 文档,并获得更清晰的网站版本。

将 HTML 转换为 XHTML

您可以将现有的 HTML 网站转换为 XHTML 网站。

让我们来看一些重要的步骤。要转换现有文档,您必须首先确定要遵循哪个 DTD,并在文档顶部包含文档类型定义。

  • 确保您拥有所有其他必需的元素。这些元素包括指示 XML 命名空间的根元素 <html>、<head> 元素、包含在 <head> 元素中的 <title> 元素以及 <body> 元素。

  • 将所有元素关键字和属性名称转换为小写。

  • 确保所有属性都采用 name="value" 格式。

  • 确保所有容器元素都有结束标签。

  • 在所有独立元素内放置正斜杠。例如,将所有 <br> 元素重写为 <br />。

  • 将客户端脚本代码和样式表代码指定为 CDATA 部分。

XHTML 未来版本

XHTML 仍在改进中,其下一个版本 XHTML 1.1 已经起草。我们在 XHTML 1.1 版本章节中详细讨论了这一点。

XHTML 标签、字符和实体

XHTML 标签、字符和实体与 HTML 相同,因此,如果您已经了解 HTML,则无需付出额外的努力来学习这些主题,尤其是在 XHTML 中。我们还列出了所有 HTML 内容以及 XHTML 教程,因为它们也适用于 XHTML。

接下来是什么?

我们列出了 XHTML 和 HTML 的各种资源,因此,如果您有兴趣并且有时间,我们建议您阅读这些资源以增强您对 XHTML 的理解。否则,本教程应该已经为您提供了足够的知识来使用 XHTML 编写网页。

欢迎您将对此教程的反馈发送至 contact@tutorialspoint.com。

广告
© . All rights reserved.