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>