DOCTYPE(文档类型)DOCTYPE是document  type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。  
<a href='http://www.best-code.com'>www.best-code.com</a>
他们是什么和他们为什么是重要的?
所有的HTML和XHTML文档必须有一个有效的doctype声明。  

Doctype规定了文档使用的HTML或XHTML的版本。  

当校验的时候doctype被校验器使用,WEB浏览器通过它来决定那种渲染模式被使用。  

Doctype影响设备渲染web页面的方式。  

如果文档使用了正确的doctype,一些浏览器将切换到标准模式,那意味着浏览器会遵守更多的CSS规则。  

如果文档使用了正确的doctype,文档会渲染更快,因为浏览器不需要花时间去思考怎样正确地去渲染HTML。  
主要的几种DOCTYPE
HTML  4.01  Strict  
<!DOCTYPE  HTML  PUBLIC  "-//W3C//DTD  HTML  4.01//EN"  "http://www.w3.org/TR/html4/strict.dtd">  

在上面的声明中,声明了文档的根元素是html,它在公共标识符为"-//W3C//DTD  HTML  4.01//EN"的DTD中进行了定义。浏览器将明白如何寻找匹配此公共标识符的DTD。如果找不到,浏览器将使用公共标识符后面的URL作为寻找DTD的位置。

HTML  4.01  Transitional
<!DOCTYPE  HTML  PUBLIC  "-//W3C//DTD  HTML  4.01  Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">

HTML  4.01  Frameset  
<!DOCTYPE  HTML  PUBLIC  "-//W3C//DTD  HTML  4.01  Frameset//EN"  "http://www.w3.org/TR/html4/frameset.dtd">  

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

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

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

XHTML  1.1  
<!DOCTYPE  html  PUBLIC  "-//W3C//DTD  XHTML  1.1//EN"  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">  

Standards  compliant  (or  strict)  and  quirks  modes
大多数浏览器有两种模式:怪异模式(quirks  mode  使用老的规则)和严格模式(strict  mode遵守标准)。Mozilla,  Safari,  Opera,  Mac/Explorer,  Windows/Explorer  6实现了这两种模式。Windows/Explorer  5和老的浏览器像Netscape  4执行的是怪异模式。

使用严格模式(strict  mode  或者说遵守标准的模式)有一些非常重要的原因。例如,Windows/Explorer  6  将会使用正确的盒模型(box  model)当使用strict  mode  时,而使用quirks  mode  时会执行错误的盒模型。另外在quirks  mode下,一些现代的浏览器将不允许fonts被继承。

XML声明需要吗?
W3C推荐在XHTML文档里使用XML声明,但也不是必须要这么做。所以这就要看开发者本人来决定了。如果有了这个声明,Windows/IE6将会忽略任何使用的doctype  而执行quirks  mode。XML声明看起来如下示:
<?xml  version="1.0"  encoding="utf-8"?>