WEB 教程
实践 示例
HTML 参考手册
CSS 参考手册
PHP 参考手册

XHTML 教程

XHTML 代表可扩展超文本标记语言。

XHTML 概述

XHTML 是广泛使用的超文本标记语言 (HTML) 的扩展版本,旨在与可扩展标记语言或 XML 一起使用。

XHTML 在许多方面与 HTML 相似,但比 HTML 更严格、更简洁。

以下是在创建新的 XHTML 文档或将现有的 HTML 文档转换为 XHTML 文档时要记住的最重要的几点:

  • XHTML 文档的顶部必须有一个 DOCTYPE 声明。
  • 所有 XHTML 标记和属性名称必须小写。
  • 所有标签必须正确嵌套。
  • 非空元素需要结束标记。
  • 空元素的开始标签必须以 /> 结尾。
  • 所有属性值都必须用引号引起来。
  • 禁止属性最小化。

您将在标题为HTML 和 XHTML 之间的差异 的部分中找到对上述 XHTML 规则的详细说明。


为什么选择 XHTML?

由于 XHTML 文档需要格式正确,您的网站将更有可能与当前和未来的 Web 浏览器兼容并更准确地呈现。 从长远来看,它还使您的网站更易于维护、转换和格式化。

XHTML 结合了 HTML 和 XML 的优势; 因此,任何支持 XML 的设备都可以解析 XHTML 页面 — 不像 HTML,它需要一个宽松的 HTML 特定的解析器。

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


创建一个 XHTML 文档

这些是创建 XHTML 文档的基本步骤。

  • 文档的根元素必须是<html>
  • 文档的根元素必须包含 XHTML 名称空间的 xmlns 声明。 XHTML 的命名空间定义为 http://www.w3.org/1999/xhtml
  • 在根元素之前的文档中必须有 DOCTYPE 声明。
  • XML 声明应包含在文档的顶部。

这是一个 XHTML 文档的示例。

  • <?xml version="1.0" encoding="UTF-8"?>
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  • <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  • <head>
  •     <title>XHTML Document</title>
  • </head>
  • <body>
  •     <p>This is an example of XHTML document.</p>
  • </body>
  • </html>

注意:并非所有 XML 文档都需要 XML 声明; 但是,强烈建议在所有 XHTML 文档中使用 XML 声明。


HTML 和 XHTML 之间的区别

以下部分总结了 HTML 和 XHTML 之间的区别。

所有标签名称和属性名称必须小写

在 HTML 中标签和属性可以写成大写或小写字符:

错误:大写元素

<P>Here is a <strong>important</strong> word in a paragraph.</P>

在 XHTML 中,所有的标签名和属性名都必须小写。 这种差异是必要的,因为 XML 是区分大小写的,例如 <p><P> 是不同的标签。

正确:小写元素

<p>Here is a <strong>important</strong> word in a paragraph.</p>

元素必须正确嵌套; 不能有重叠

在 XHTML 中,所有元素都必须正确嵌套。 这意味着如果一个开始标签放在另一个元素内,结束标签也必须放在同一个元素内:

因此,你不能写:

错误:重叠元素

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

相反,这必须写成:

正确:嵌套元素。

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

提示:重叠在 HTML 中也是非法的。 您应该始终正确关闭元素以使标记有效。

非空元素需要结束标记

在 HTML 中,某些元素可以省略结束标记,例如段落:

错误:未终止的元素

<p>This is a paragraph
<p>This is another paragraph

XHTML 不允许省略结束标记。

正确:终止的元素

<p>This is a paragraph</p>
<p>This is another paragraph</p>

空元素必须以 />

结尾

在 HTML 中,空元素是这样写的:

错误:未终止的空元素

A break: <br>
A horizontal rule: <hr>
An image: <img src="smiley.png" alt="Smiley">

在XHTML中,空元素的开始标签必须以/>结尾:

正确:终止的空元素

A break: <br />
A horizontal rule: <hr />
An image: <img src="smiley.png" alt="Smiley" />

注意:在空元素的尾随"/>"之前包含一个空格,例如 <br />, <hr /><img src="smiley.png" alt="Smiley" /> 以确保与浏览器的向后兼容性。

必须始终引用属性值

在 HTML 中,有时可以省略引号,例如:

不正确:未引用的属性值

<td rowspan=2>

在 XHTML 中,所有属性都必须用引号括起来,即使是那些看起来是数字的。

正确:引用的属性值

<td rowspan="2">

禁止属性最小化

XHML 不支持属性最小化。 属性值对必须完整写入。

selectedchecked 等属性名称不能出现在未指定其值的元素中。 因此,你不能写:

错误:最小化的属性

<option selected>Car</option>

而是必须将其写入属性-值对,如:

正确:未最小化的属性

<option selected="selected">Car</option>

脚本和样式应放在 CDATA 部分中

在 HTML 中,脚本和样式元素可以包含在文档中,即使它们包含诸如 <& 之类的字符:

在 XHTML 中,脚本和样式元素被声明为具有 #PCDATA 内容。 因此,<& 将被视为标记的开始,而诸如 &lt;&amp; 之类的实体将被 XML 处理器识别为分别对 <& 的实体引用。 这可能会导致 Web 浏览器出现渲染问题。

CDATA 标记的部分中包装脚本或样式元素的内容可避免这些实体的扩展。 但是,由于文档也可以被 HTML 解析器解析,而 HTML 解析器无法识别 CDATA 标记,因此 CDATA 标记通常被注释掉,如以下 JavaScript 示例所示:

  • <script type="text/javascript">
  • //<![CDATA[
  • document.write("<, &, >");
  • //]]>
  • </script>

或者这个 CSS 示例:

  • <style type="text/css">
  • /*<![CDATA[*/
  • body { background: url("sky.jpg?width=500&height=300") no-repeat; }
  • /*]]>*/
  • </style>
Advertisements