要建立符合标准的网页,DOCTYPE声明是必不可少的关键组成部分;文档不定义DOCTYPE,浏览器将无法获知HTML或XHTML文档的类型,那就会按照自己的方式来解析文档,也就是混乱模式或者怪异模式。通俗的说就是不声明文档类型,浏览器不知道该用什么标准来解析你的文档,那他只能用自己的方式来解析了。为了能让我们的网页能在多个浏览器上正常的呈现给用户,通常我们都要给出一个正确的文档声明的。文档类型定义在HTML文档的第一行,在html标签之前,而且没有关闭符。声明不是一个 HTML 标签;它是用来告知 Web 浏览器页面使用了哪种 HTML 版本。(记得刚开始学习html的时候自己还要给他加个关闭符,现在想来。。。呵呵)。
一、HTML4.01文档过渡定义类型,此类型定义的文档可以使用HTML中的标签与元素包括一些不被W3C推荐的标签(如:font),不可以使用框架集:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
二、HTML4.01文档严格定义类型,此类型定义的文档可以使用HTML中的标签与元素,不能包含不被W3C推荐的标签(如:font),不可以使用框架集:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
三、HTML4.01文档框架定义类型,此类型等同于HTML4.01文档过渡定义类型,但可以使用框架集:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
四、XHTML1.0文档过渡定义类型,此类型定义的文档可以使用HTML中的标签与元素包括一些不被W3C推荐的标签(如:font),不可以使用框架集:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
五、XHTML1.0文档严格定义类型,此类型定义的文档只可以使用HTML中定义的标签与元素,不能包含不被W3C推荐的标签(如:font),不可以使用框架集:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
六、XHTML1.0文档框架定义类型,等同于XHTML1.0文档过渡定义类型,但可以使用框架集:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
七、XHTML1.1文档严格定义类型,等同于XHTML1.0文档过渡定义类型:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
八、HTML5文档类型:
<!DOCTYPE html>
声明方式对大小写不敏感,但是如果写错了也是不能正确解析的。第八种声明方式是html5的声明方式,使用这种声明方式,浏览器会按照html5的标准解析文档。据说按照html5的声明方式声明文档能够兼容现在所有的浏览器,包括ie6。不过除非我们的客户特地要求兼容那些古董浏览器,不然一般只需兼容到ie7、8的样子。这样我们完全可以使用html5的声明方式声明文档,然后使用降级处理的方式就可以了。据说只要布局布得好的话,不写css hack也可以兼容所有的浏览器,不过我一般只能兼容到ie7、8的样子( →_→ ),当然在使用html5新的标签的时候你需要在低版本浏览器的时候先创建相应的标签。