<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



1. <!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前。
2. 此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
声明了文档的根元素是 html,它在公共标识符被定义为 "-//W3C//DTD XHTML 1.0 Transitional//EN" 的 DTD 中进行了定义。浏览器将明白如何寻找匹配此公共标识符的 DTD。如果找不到,浏览器将使用公共标识符后面的 URL 作为寻找 DTD 的位置。

另外,需要知道的是,HTML 4.01 规定的三种文档类型、XHTML 1.0 规定的三种 XML 文档类型都是:Strict、Transitional 以及 Frameset。


Transitional —— 最宽松的 DTD,可以使用带表现含义的标签和属性。
写法为:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"                        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


Strict —— 最严格的 DTD,不允许使用任何带表现含义的标签和属性。
写法为:                        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"                        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


Frameset —— 用于使用了 frame 的页面(即,包含有 <frameset> 标记)。
写法为:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"                        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">在刚刚开始向 XHTML 迁移的过程中,可以使用 Transitional 的 DTD,当习惯了更好的页面开发方法后,可以转向使用 Strict 的 DTD。只有在需要用到 frame 的页面,才应该使用 Frameset 的 DTD。



而这句<html xmlns="http://www.w3.org/1999/xhtml">,是在文档中的<html> 标签中使用 xmlns 属性,以指定整个文档所使用的主要命名空间。

紧跟在上面 DOCTYPE 声明之后的是一个 XHTML 名字空间(namespace)声明,放在增强的 <html> 元素中,写法为:
<html xmlns="http://www.w3.org/1999/xhtml">3. 由于 XHTML 1.0 页面就是合法的 XML 文档,而 XML 对于标签和属性都是区分大小写的,为了简单起见,XHTML 1.0 页面中所有的标签和属性都必须使用小写。
一些免费的工具,例如 HTML Tidy(http://tidy.sourceforge.net/),可以帮助你把标签和属性自动转换为小写。

4. 通过在 <head> 元素中添加一个 <meta> 元素来声明页面中使用的语言。
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />5. 在 XHTML 中,所有的属性都必须要加上引号。
一些免费的工具,例如 HTML Tidy(http://tidy.sourceforge.net/),可以帮助你自动为所有的属性加上引号。
6. 在 XHTML 中,所有的属性都必须有值。
不能像在 HTML 4.0 中那样写:
<input type="checkbox" name="shirt" value="medium" checked>而要写成:
<input type="checkbox" name="shirt" value="medium" checked="checked" />7. 在 XHTML 中,所有的标签都必须关闭。
关闭标签有两种方式,包含内容的标签使用结束标签关闭,空标签在后面加上空格和“/”。例如:
<p>This is acceptable HTML and it is also valid XHTML.</p>                        <img src="logo.gif" />8. 不要在注释内容中使用“--” 。
“--” 只能使用在 XHTML 注释的开头和结束,不能出现在注释的内容中。下面的写法都是不允许的:
<!--Invalid -- and so is the classic "separator" below. -->                        <!------------------------------------>9. 把所有的特殊符号编码。
< = &amp;lt;                        > = &amp;gt;                        & = &amp;amp;W3C 的 XHTML/CSS/DOM 这 3 个规范构成了一个完整而严密的体系,我称这 3 个规范为 Web 世界中“三位一体神的化身”。这 3 个规范分别代表了 Web 页面的 structure(结构)、presentation(表现)和 behaviour(行为) 3 部分。将 Web 页面严格分为这 3 层,并且尽量使每一层的内容相互独立,有助于提高页面的可重用性和模块化程度,大幅降低页面制作、维护和修改的成本。为了达到上述分层的目标,编写的 XHTML 中应该只包含与 structure 相关的标记(元素和属性)。因此应该习惯于使用 Strict 类型的 DTD,尽快摒弃那些带有表现含意的标记(这些标记在 HTML 4.0 规范中被标识为 Deprecated 即“不提倡”,并且会在 XHTML 以后的版本中被完全舍弃);尽快摒弃基于 table 做布局的老方法,采用完全的 CSS 布局。


对于文档声明,了解这些就足够了,现在的html5不再这么繁琐,只需要:
<!DOCTYPE html>
<html>
就可以了。