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>