日期:2013-09-05  浏览次数:21173 次

DOCTYPE(文档类型)DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。

他们是什么和他们为什么是重要的?
所有的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"?>