11.3 XHTML语法规范

XHTML是基于HTML的,它是代码更严密、更规范的HTML版本。在使用XHTML语言进行网页制作时,必须要遵循一定的语法规范。这些语法规范也是XHTML与HTML之间的主要区别,下面进行详细讲解。

11.3.1 XHTML元素必须是完全嵌套的

XHTML元素必须是完全嵌套的,HTML则并不严格,不完全嵌套的元素也能被“容错”,如下所示。

在HTML中一些元素可以不使用正确的相互嵌套:

image213_1

在XHTML中所有元素必须合理的相互嵌套:

image213_2

image03提示

在列表嵌套的时候经常会犯一个错误,就是忘记了在列表中插入的新列表必须嵌在一个<li>标记中,如下所示是错误的。

image213_3

在这段代码示例中,第1个</ul>后面少了一个</li>,下面的代码才是正确的。

image213_4

11.3.2 XHTML文档格式必须规范

所有的XHTML标记必须被嵌套使用在<html>根标签之中。所有其他的标签可以有自己的子标签。位于父标签之内的子标签也必须成对且正确的嵌套使用。一个网页的基本结构如下所示。

image213_5

11.3.3 标签名必须是小写的

因为XHTML文档是XML应用程序,XML是区分大小写的,所以像<b>和<B>会被认为是两种不同的标签。

如下写法是错误的。

image214_1

正确的写法如下。

image214_2

11.3.4 所有的XHTML元素都必须有始有终

非空元素必须有关闭标签。

如下所示的写法是错误的。

image214_3

正确的写法如下。

image214_4

空的元素也必须有一个结束标签,或者开始标签用“/>”结束。

如下所示的写法是错误的。

image214_5

正确的写法如下。

image214_6

11.3.5 用id属性代替name属性

HTML4.01中为a、applet、frame、iframe、img和map定义了一个name属性,在XHTML里除了表单(form)外,name属性不能使用,需要用id来替换。

如下写法是错误的。

image214_7

正确的写法如下。

image214_8

为了使旧浏览器也能正常地执行该内容,也可以在标签中同时使用id和name属性,如下所示。

image214_9

11.3.6 DOCTYPE声明是不可缺少的

在XHTML中必须声明文档的类型,以便于浏览器知道当前浏览的文档是什么类型。声明DOCTYPE必须放在文档的第一行。当浏览器检测到DOCTYPE后就会转换到标准模式,对HTML和CSS按照标准的方式解释,不必再把时间用在弥补、解释不规范的HTML上了,所以页面显示的速度就会更快。如下所示使用DOCTYPE声明。

image215_1

image03提示

DOCTYPE声明不是XHTML的一部分,也不是文档的一个元素,所以没有必要加上结束标签。

11.3.7 属性必须加上英文双引号

XHTML中所有的属性,包括数值都必须加上英文双引号(" "),如下所示。

image215_2

11.3.8 明确所有属性的值

XHTML中规定每一个属性都必须有一个值。没有值的属性也要用自己的名称作为值。例如,在HTML中,checked属性是可以不取值的,但是在XHTML中必须用它自身的名称作为值。示例代码如下。

image215_3