日期:2014-05-17  浏览次数:20617 次

XHTML规范
1.XHTML元素一定要被正确地嵌套使用

在HTML里一些元素可以不正确嵌套也能正常显示,如:<b><i>magicalboy</b></i>

而在XHTML中必须正确嵌套之后才能正常使用!

注意:这个错误通常发生在当嵌套多层使用的标签里.

XHTML中还有一些严格强制执行的嵌套限制。这些限制包括以下几点。

     <a>元素中不能包含其他的<a>元素。

     <pre>元素中不能包含<object>、<big>、<img>、<small>、<sub>或<sup>元素。

     <button>元素中不能包含<input>、<textarea>、<label>、<select>、<button>、<form>、<iframe>、<fieldset>或<isindex>元素。

     <label>元素中不能包含其他的<label>元素。

     <form>元素中不能包含其他的<form>元素。





2.XHTML文件一定要有正确的组织结构

所有的XHTML应该正确地嵌套在以<html>开始,以</html>结束的元素里面,其它的元素可以有子元素,并且子元素也要被正确地嵌套在它们的父元素内。





3.标签名字一定要用小写字母

因为XHTML文档是XML的一种,而XML对大小写是敏感的,像<br>和<BR>是两个不同的标记。





4.所有的XHTML元素一定要关闭

不能有没有关闭的空元素存在于代码中。





5.属性名字必须小写

属性和标签的要求一样,都要小写。





6.属性值必须带上英文的双引号

eg:错误:<table width=100%>

正确:<table width="100%">





7.属性的简写被禁止

在HTML中,某些属性可以简写,但是在XHTML中不能!

在HTML中简写的属性和其在XHTML中书写的规范:

   HTML                    XHTML

checked          checked="checked"

disabled          disabled="disabled"

selected          selected="selected"

noresize          norsize="noresize"





8.用id属性代替name属性

HTML 4.01中为a、applet、frame、iframe、img和map定义了一个name属性,在XHTML里除了表单form外,name属性不能使用,应该用id来替换。但为了使旧浏览器也能正常地执行该内容,也可以在标签中同时使用id和name属性。





9.lang属性

lang 属性可以应该于几乎所有的XHTML元素,它指定了元素中内容的语言属性。

如果在一个元素中应用lang属性,必须加上xml:lang,如:

<div lang="no" xml:lang="no">magicalboy</div>





10.把所有<和&特殊符号用编码表示

任何小于号(<),不是标签的一部分,都必须被编码为&lt;

任何大于号(>),不是标签的一部分,都必须被编码为&gt;

任何与号(&),不是实体的一部分的,都必须被编码为&amp;

例如下面的HTML代码:<img src="pic.jpg"  src="abc & def">

在XHTML中必须要写成:<img src="pic.jpg"  src="abc &amp def"  />





11.不要在注释内容中使“--”

“--”只能发生在XHTML注释的开头和结束,也就是说,在内容中它们不再有效。

例如下面的代码是无效的:

<!--这里是注释-----------这里是注释-->

用等号或者空格替换内部的虚线。

<!--这里是注释============这里是注释-->

以上这些规范有的看上去比较奇怪,但这一切都是为了使我们的代码有一个统一、唯一的标准!

以便于将来的数据再利用!!





12推荐使用外部链接来调用脚本

HTML中使用<!--和-->在注释中插入脚本,但是在XML浏览器中会被简单地删除,导致脚本或样式的失效。推荐使用外部链接来调用脚本。调用脚本的代码如下:<script language="JavaScript1.2" type="text/javascript" src="scripts/menu.js"> </script>