XHTML - 语法

XHTML语法与HTML语法非常相似,几乎所有有效的HTML元素在XHTML中都是有效的.但是当您编写XHTML文档时,需要特别注意使HTML文档符合XHTML.

以下是编写新XHTML文档时要记住的重要事项或将现有HTML文档转换为XHTML文档 :

  • 在XHTML文档的开头写一个DOCTYPE声明.

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

  • 正确关闭所有XHTML标记.

  • 正确嵌套所有标签.

  • 引用所有属性值.

  • 禁止属性最小化.

  • name 属性替换为 id 属性.

  • 弃用脚本标记的语言属性.

以下是上述XHTML规则的详细说明 :

DOCTYPE声明

所有XHTML文档都必须具有DO CTYPE宣言一开始.有三种类型的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 Style
compactcompact ="compact"
checkedchecked ="checked"
declaredeclare ="declare"
readonlyreadonly ="readonly"
disableddisabled="disabled"
selectedselected ="selected"
deferdefer ="defer"
ismapismap ="ismap"
nohrefnohref = "nohref"
noshadenoshade ="noshade"
nowrapnowrap ="nowrap"
multiplemultiple ="multiple"
noresizenoresize ="noresize"

id 属性

id属性替换name属性.而不是使用name ="name",XHTML更喜欢使用id ="id".以下示例显示了 :

<!-- 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属性.以下示例显示了此差异 :

<!-- 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>不得包含其他&LT a取代;元素.
< pre>不得包含< img> ;,< object>,< big>,< small>,< sub>或< sup>元素.
<button>不得包含< input&gt ;,< select>,< textarea>,< label>,< button>,< form>,< fieldset>,< iframe>或者< isindex>元素.
< label>不得包含其他< label&gt ;元素.
< form>不得包含其他< form&gt ;元素.

最小的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="https://img01.yuandaxia.cn/Content/img/tutorials/xhtml/" xml:lang="en">
   <head>
      <title>Every document must have a title</title>
   </head>
 
   <body>
      ...your content goes here...
   </body>
</html>