<!DOCTYPE>声明位于文档中最前面的位置,处在<html>标签之前。它的作用是告知浏览器文档使用哪种html或者xhtml规范。
<!DOCTYPE>可声明三种DTD(文档类型定义)类型,分别表示严格版本(Strict),过渡版本(Transitional)和基于框架(Frameset)的HTML版本。(如果文档中的标记不遵循DOCTYPE声明所指定的DTD类型的标准,这个文档除了不能通过代码校验之外,还有可能不能在浏览器中正确显示。)
<!DOCTYPE html
PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
在上面的声明中,声明了文档的根元素是html,它在公共标识符被定义为
“-//W3C//DTD XHTML 1.0 Strict//EN”的DTD中进行了定义。由此,浏览器将明白如何寻找匹配此公共标识符的DTD。如果找不到,浏览器将使用公共标识符后面的URL(统一资源定位符UniformResourceLocator)作为寻找DTD的位置。
三种HTML文档类型
HTML 4.01规定了三种文档类型:Strict、Transitional以及Frameset。
HTML Strict DTD
如果需要干净的标记,免于表现层的混乱,请使用此类型。请与层叠样式表(CSS)配合使用。
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 //EN”
“http://www.w3.org/TR/html4/strict.dtd”>
HTML Transitional DTD
Transitional DTD可包含W3C所期望移入样式表的呈现属性和元素,如果用户使用了不支持层叠样式表的浏览器以至于你不得不使用HTML的呈现特性时,请使用此类型。
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“http://www.w3.org/TR/html4/loose.dtd”>
Frameset DTD
Frameset DTD应当被用于带有框架的文档。除frameset元素取代了body之外,Frameset DTD等同于Transitional DTD。
<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01 Frameset//EN”
“http://www.w3.org/TR/html4/frameset.dtd”>
三种XML文档类型
XHTML 1.0(eXtendsible HyperText Markup Language,XHTML基于可扩展标记语言(XML))规定了三种XML文档类型:Strict、Transitional以及Frameset。
HTML Strict DTD
如果需要干净的标记,免于表现层的混乱,请使用此类型。请与层叠样式表(CSS)配合使用。
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
HTML Transitional DTD
Transitional DTD可包含W3C所期望移入样式表的呈现属性和元素,如果用户使用了不支持层叠样式表的浏览器以至于你不得不使用HTML的呈现特性时,请使用此类型。
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
Frameset DTD
当你希望使用框架是,请使用此DTD。如需检查你是否编写了带有正确DTD的合法XHTML文档,可以把你的XHTML页面链接到一个XHTML验证器。
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Frameset//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd”>
选择正确的doctype:
为了获得正确的doctype声明,关键就是让文档所遵循的标准与DTD对应。
例如,假定doctype声明引用的是xhtml1-strict.dtd,那么文档中的所有标记就应该遵循所引用的DTD中的标准。比如在xhtml1-strict.dtd标准中,不能出现<applet>标签/。
如果没有指定有效的doctype声明,大多数浏览器都会使用一个内建的默认DTD。在这种情况下,浏览器会用内建的DTD来试着显示你所指定的标记。
也可以直接写成<!DOCTYPE html>,这样的话就会开启浏览器的标准兼容模式。
HTML 5直接用<!DOCTYPE html>。