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"?>