# DOCTYPE
DOCTYPE
是 document type
(文档类型)的简写,在 web
设计中用来说明使用的 XHTML
或者 HTML
是什么版本。
HTML5
不基于 SGML
,所以不需要引用 DTD
。
<!DOCTYPE html>
声明必须是 HTML 文档的第一行,位于 <html>
标签之前。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
在 HTML 4.01
中,<!DOCTYPE>
声明引用 DTD
,因为 HTML 4.01
基于 SGML
。
DTD
规定了标记语言的规则,这样浏览器才能正确地呈现内容。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
其中的 DTD
叫文档类型定义,里面包含了文档的规则,浏览器就根据定义的 DTD
来解释你页面的标识,并展现出来。
要建立符合标准的网页,DOCTYPE
声明是必不可少的关键组成部分;除非你的 XHTML
确定了一个正确的DOCTYPE
,否则标识和 CSS
都不会生效。
# XHTML 1.0 提供了三种DTD声明可供选择
- 过渡的
Transitional
:要求非常宽松的DTD
,它允许继续使用HTML4.01
的标识(但是要符合xhtml
的写法),完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- 严格的
Strict
:要求严格的DTD
,不能使用任何表现层的标识和属性,例如<br>
,完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- 框架的
Frameset
:专门针对框架页面设计使用的DTD
,如果页面中包含有框架,需要采用这种DTD
,完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
# 相关面试题
DOCTYPE
的作用?
DOCTYPE
是 HTML5
中一种标准通用标记语言的文档类型声明,它的目的是告诉浏览器(解析器)应该以什么样(html
或 xhtml
)的文档类型定义来解析文档,不同的渲染模式会影响浏览器对 CSS
代码甚⾄ JavaScript
脚本的解析。它必须声明在 HTML
⽂档的第⼀⾏。
浏览器渲染页面的两种模式(可通过 document.compatMode
获取,比如,掘金的文档类型是 CSS1Compat
):
CSS1Compat
:标准模式(Strick mode
),默认模式,浏览器使用 W3C
的标准解析渲染页面。在标准模式中,浏览器以其支持的最高标准呈现页面。
BackCompat
:怪异模式(混杂模式)(Quick mode
),浏览器使用自己的怪异模式解析渲染页面。在怪异模式中,页面以一种比较宽松的向后兼容的方式显示。