XHTML - 快速指南


XHTML - 简介

XHTML代表EX拉伸文本标记语言。_ 这是互联网发展的下一步。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 标签不是预定义的。您必须根据您的需要定义自己的标签。

XHTML - 语法

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

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

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

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

  • 正确关闭所有 XHTML 标签。

  • 正确嵌套所有标签。

  • 引用所有属性值。

  • 禁止属性最小化。

  • 将name属性替换为id属性。

  • 弃用script 标记的语言属性。

以下是上述 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风格
袖珍的 紧凑=“紧凑”
检查过 检查=“检查”
宣布 声明=“声明”
只读 只读=“只读”
残疾人 禁用=“禁用”
已选择 已选择=“已选择”
推迟 推迟=“推迟”
伊斯兰地图 地图=“地图”
诺赫雷夫 诺赫参考=“诺赫参考”
没有阴影 没有阴影=“没有阴影”
诺拉普 nowrap=“nowrap”
多种的 多个=“多个”
诺雷尺寸 诺大小=“诺大小”

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" />

语言属性_

不推荐使用 script 标记的语言属性。以下示例显示了这种差异 -

<!-- 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> 元素。
<前> 不得包含 <img>、<object>、<big>、<small>、<sub> 或 <sup> 元素。
<按钮> 不得包含 <input>、<select>、<textarea>、<label>、<button>、<form>、<fieldset>、<iframe> 或 <isindex> 元素。
<标签> 不得包含其他 <label> 元素。
<表格> 不得包含其他 <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 中,脚本和样式元素不应直接包含“<”和“&”字符(如果存在);然后它们被视为标记的开始。诸如“<”和“&”之类的实体被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 都具有一些具有预定义和有限值集的属性。例如,输入元素的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 -

  • 严格的
  • 过渡性的
  • 车架组

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

请检查XHTML 验证以获取更多详细信息。

XHTML 1.0 严格

如果您计划严格使用层叠样式表 (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 过渡

如果您计划使用许多 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 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 元素中无效。

属性 价值 描述
班级 类规则或样式规则 元素的类。
ID id_name 元素的唯一 ID。
风格 样式定义 内联样式定义。
标题 工具提示文本 显示在鼠标提示中的文本。

语言属性

lang属性指示包含内容所使用的语言。语言使用 ISO 标准语言缩写来标识,例如fr表示法语,en表示英语等。更多代码及其格式请参见www.ietf.org

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

属性 价值 描述
目录 左 | 回程 设置文本方向。
语言代码 设置语言代码。

微软专有属性

Microsoft 在 Internet Explorer 4 及更高版本中引入了许多新的专有属性。

属性 价值 描述
访问密钥 特点 设置访问元素的键盘快捷键。
语言 细绳 此属性指定与绑定到元素的关联脚本一起使用的脚本语言,通常通过事件处理程序属性。可能的值可能包括 JavaScript、jScript、VBS 和 VBScript。
标签索引 数字 设置元素的 Tab 键顺序。
内容可编辑 布尔值 允许用户编辑在 Internet Explorer 5.5 或更高版本中呈现的内容。可能的值为 true 或 false。
残疾人 布尔值 具有禁用属性集的元素可能会显得褪色,并且不会响应用户输入。可能的值为 true 或 false。
隐藏焦点 开或关 此专有属性是随 Internet Explorer 5.5 引入的,它隐藏了对元素内容的关注。必须使用 tabindex 属性将焦点应用于元素。
不可选择的 开或关 用于防止选择 Internet Explorer 5.5 中显示的内容。

XHTML - 事件

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

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

<body> 和 <frameset> 级别事件

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

属性 价值 描述
负载 脚本 加载 XHTML 文档时运行脚本。
卸载时 脚本 XHTML 文档卸载时运行脚本。

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

<form> 级别事件

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

属性 价值 描述
变化 脚本 当元素更改时执行脚本。
提交 脚本 提交表单时执行脚本。
复位时 脚本 重置表单时执行脚本。
选定 脚本 选择元素时执行脚本。
模糊 脚本 当元素失去焦点时执行脚本。
焦点 脚本 当元素获得焦点时脚本运行。

键盘事件

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

属性 价值 描述
按下按键 脚本 脚本在按键时执行。
按键 脚本 脚本在按键和释放时执行。
按键启动 脚本 脚本执行按键释放。

其他活动

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

属性 价值 描述
单击时 脚本 单击鼠标即可执行脚本。
双击 脚本 双击鼠标即可执行脚本。
鼠标按下时 脚本 按下鼠标按钮时执行脚本。
鼠标移动时 脚本 当鼠标指针移动时执行脚本。
鼠标移出时 脚本 当鼠标指针移出元素时执行脚本。
鼠标悬停时 脚本 当鼠标指针移到元素上时执行脚本。
鼠标悬停时 脚本 释放鼠标按钮时执行脚本。

XHTML - 版本 1.1

W3C 帮助互联网内容开发社区从畸形的、非标准的标记时代进入了格式良好、有效的 XML 世界。在 XHTML 1.0 中,这一举措的目标是将现有的基于 HTML 4(或更早版本)的内容轻松迁移到 XHTML 和 XML。

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

现在,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。

文本模块- 该模块定义了所有基本文本容器元素、属性及其内容模型 - 缩写、首字母缩略词、地址、块引用、br、引用、代码、dfn、div、em、h1、h2、h3、h4、h5 、h6、kbd、p、pre、q、samp、span、strong 和 var。

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

列表模块- 顾名思义,列表模块提供面向列表的元素。具体来说,列表模块支持以下元素和属性 - dl、dt、dd、ol、ul 和 li。

对象模块- 对象模块提供通用对象包含的元素。具体来说,对象模块支持 - 对象和参数。

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

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

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

表单模块- 它提供了 HTML 4.0 中的所有表单功能。具体来说,它支持 - 按钮、字段集、表单、输入、标签、图例、选择、optgroup、选项和文本区域。

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

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

客户端图像地图模块- 它提供客户端图像地图元素 - 区域和地图。

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

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

元信息模块- 元信息模块定义了描述文档声明部分中的信息的元素。它包括元素元。

脚本模块- 它定义用于包含与可执行脚本有关的信息或缺乏对可执行脚本的支持的元素。该模块中包含的元素和属性是 - noscript 和 script。

样式表模块- 它定义声明内部样式表时要使用的元素。该模块定义的元素和属性是 - style。

样式属性模块(已弃用) - 它定义样式属性。

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

基本模块- 它定义了一个元素,可用于定义基本 URI,根据该基本 URI 解析文档中的相对 URI。该模块中包含的元素和属性是 - base

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

相对于 XHTML 1.0 严格的更改

本节介绍 XHTML 1.1 和 XHTML 1.0 Strict 之间的差异。XHTML 1.1 代表了对 HTML 4 和 XHTML 1.0 的背离。

  • 最重要的是删除了已弃用的功能。

  • 这些变化可总结如下:

  • 在每个元素上,lang 属性已被删除,取而代之的是xml:lang属性。

  • 在 <a> 和 <map> 元素上,名称属性已被删除,取而代之的是 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元素已被弃用取而代之的是 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 开发人员应该使用“ 而不是 ' 在 HTML 4 Web 浏览器中按预期工作。

XHTML - 验证

每个 XHTML 文档都根据文档类型定义进行验证。在正确验证 XHTML 文件之前,必须添加正确的 DTD 作为文件的第一行或第二行。

一旦您准备好验证您的 XHTML 文档,您就可以使用 W3C Validator 来验证您的文档。这个工具非常方便,可以帮助您解决文档中的问题。该工具不需要任何专业知识即可执行验证。

文本框中的以下语句向您显示详细信息。您需要提供要验证的页面的完整 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 对本教程提供反馈。