# DOCTYPE

DOCTYPEdocument 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声明可供选择

  1. 过渡的 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">
  1. 严格的 Strict:要求严格的 DTD,不能使用任何表现层的标识和属性,例如 <br>,完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  1. 框架的 Frameset:专门针对框架页面设计使用的 DTD,如果页面中包含有框架,需要采用这种 DTD,完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

# 相关面试题

  • DOCTYPE 的作用?

DOCTYPEHTML5 中一种标准通用标记语言的文档类型声明,它的目的是告诉浏览器(解析器)应该以什么样(htmlxhtml )的文档类型定义来解析文档,不同的渲染模式会影响浏览器对 CSS 代码甚⾄ JavaScript 脚本的解析。它必须声明在 HTML ⽂档的第⼀⾏。 浏览器渲染页面的两种模式(可通过 document.compatMode 获取,比如,掘金的文档类型是 CSS1Compat):

CSS1Compat:标准模式(Strick mode),默认模式,浏览器使用 W3C 的标准解析渲染页面。在标准模式中,浏览器以其支持的最高标准呈现页面。

BackCompat:怪异模式(混杂模式)(Quick mode),浏览器使用自己的怪异模式解析渲染页面。在怪异模式中,页面以一种比较宽松的向后兼容的方式显示。

上次更新: 11/6/2024, 4:10:52 PM