HTML并不在意是否使用了html, head和body元素以及DOCTYPE, 儿XHTML需要这些。

HTML允许省略某些结束标记,而XHTML要求每个元素(包括空元素)都有结束标记。为了尽可能保持与浏览器的兼容性,在空元素中加一个空格和一个斜杠,如:

<p>© 2008 5ivedance.com

在HTML中,某些元素(如P)不要求要结束标记。后续p标记隐式地结束前面的p标记。

<p>© 2008 5ivedance.com</p>

在XHTML中,所有元素必须有结束标记。

<img src=ivedance.jpg alt=”ID: milo xing” width=30 height=50>

在HTML中,空元素没有最后的斜杠,即使有也不会报错。

<img src=“ivedance.jpg” alt=”ID: milo xing” width=“30” height=“50” />

在XHTML中,即使是空元素,也必须有结束标记。为空元素编写的独立的结束标记(比如</img>)在技术上是正确的,但是在img标记中添加一个空格和/可以确保与不理解XHTML的浏览器的兼容性。同时,大家注意到上面两行代码的其他不同的地方了吧,在HTML中,只有在属性值包含空格或其他特殊符号(除了字母,数字,连字符,句点,下划线和冒号之外的其他字符)时,才需要加引号。所以上面的例子第一个行,只有alt的属性必须加引号(给其他加也没什么坏处)。在XHTML中,所有的属性必须都加上引号,如第二行。

另外,在HTML中,以大写或小写字母编写元素名、属性名或预定义值是无所谓的,但是在XHTML中,所有的元素名、属性名和预定义值都必须是小写字母。

在HTML中,某些属性,比如<hr width=75% noshade>中的noshade可以没值,但在XHTML中,必须显示声明属性值。对于没有值的属性,只需将属性名做属性值,如<hr width=”75%” noshade=”noshade” />

XHTML真的好无语,为什么搞这么多规则折磨人呢?也许严谨性,利于修改,后续工作轻松,CSS格式化方便,数据库转换什么的,你说你都不太在乎,不过XHTML是从HTML转换到XML的一个罗杰步骤,XHTML做为一个新标准,我们在期待其他新技术以及未来新技术可以支持它。