XHTML - 快速指南

XHTML - 简介

XHTML 代表可扩展 HyperText MLanguage。它是互联网发展的下一步。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 代表可扩展标记语言 (EX)。XML 是一种与 HTML 非常相似的标记语言,旨在描述数据。XML 标记并非预定义。您必须根据需要定义自己的标记。

h1>XHTML - 语法

XHTML 语法与 HTML 语法非常相似,并且几乎所有有效的 HTML 元素在 XHTML 中也有效。但是,在编写 XHTML 文档时,您需要多加注意,以使您的 HTML 文档符合 XHTML。

以下是在编写新的 XHTML 文档或将现有 HTML 文档转换为 XHTML 文档时需要记住的要点 −

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

  • 仅以小写形式编写所有 XHTML 标记和属性。

  • 正确关闭所有 XHTML 标记。

  • 正确嵌套所有标记。

  • 引用所有属性值。

  • 禁止属性最小化。

  • name 属性替换为 id 属性。

  • 弃用language 属性的脚本标签。

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

DOCTYPE 声明

所有 XHTML 文档必须在开头有一个 DOCTYPE 声明。DOCTYPE 声明有三种类型,在 XHTML Doctypes 章节中有详细讨论。以下是使用 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 倾向于使用 id = "id",而不是 name = "name"。以下示例显示了如何 −

<!-- 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>
 

XHTML 与 HTML

由于 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 中,脚本和样式元素不应直接包含"<"和"&"字符(如果存在);然后它们将被视为标记的开始。诸如"<"和"&"之类的实体被 XML 处理器识别为实体引用,分别用于显示"<"和"&"字符。

将脚本或样式元素的内容包装在 CDATA 标记部分内可避免这些实体的扩展。

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

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

具有 idname 属性的元素

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 过渡文档。

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

  • 严格
  • 过渡
  • 框架集

一些 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 框架集

当您想要使用 HTML 框架将浏览器窗口划分为两个或更多框架时,可以使用此功能。

如果您想使用 XHTML 1.0 框架集 DTD,则需要在 XHTML 文档顶部包含以下行。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 框架集//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 语言属性

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 Script 脚本在 XHTML 文档加载时运行。
onunload Script 脚本在 XHTML 文档卸载时运行。

注意 −此处的脚本是指 VBScript 或 JavaScript 的任何函数或代码片段。

<form>级别事件

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

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

键盘事件

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

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

其他事件

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

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

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 元素进行元素标识。

在属性值中使用 & 符号

& 符号("&")应作为实体引用呈现 &.

Example

<!-- 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 添加为文件的第一行或第二行。

一旦您准备好验证 XHTML 文档,就可以使用 W3C 验证器来验证文档。

以下这些工具可以执行不同的其他验证。

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

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 编写网页。

欢迎您通过 421660149@qq.com 对本教程提出反馈。