标准答案

  1. <!doctype html> 是 HTML5 的文档类型声明,作用是让浏览器用标准模式解析和渲染页面。
  2. 它不是 HTML 标签,也不会进入 DOM。浏览器会在正式解析文档结构前读取它,所以它应该放在文档第一行。
  3. 写了正确的 doctype 后,浏览器会按现代 Web 标准处理盒模型、行高、图片基线、表格、字体和 CSS 布局。
  4. 如果不写或写错,浏览器可能进入怪异模式或近标准模式,布局结果可能和标准模式不一致。
  5. 这题最后要强调:doctype 影响浏览器渲染模式,不影响 JavaScript 语法,也不是用来声明浏览器版本。

题目解析

如果缺少 doctype,浏览器可能进入怪异模式。怪异模式是为了兼容早期网页保留下来的解析方式,最典型的问题是盒模型计算和现代 CSS 行为不一致。

面试里不要只回答“声明 HTML5”,还要补一句:它影响浏览器渲染模式,不是影响 JavaScript 语法。

  • 标准模式:按现代 Web 标准渲染。
  • 怪异模式:模拟早期浏览器行为,布局结果可能和预期不同。
  • 近标准模式:大多数行为接近标准模式,但部分内联元素和图片布局仍有兼容差异。

代码示例

一个最小 HTML 页面应该从 doctype 开始,然后再写 html、head 和 body。

HTML
<!doctype html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <title>页面标题</title>
  </head>
  <body>
    <h1>Hello</h1>
  </body>
</html>

常见误区

  • 误以为 doctype 是一个 HTML 标签。它是声明,不是标签。
  • 误以为 doctype 决定浏览器版本。它只影响解析和渲染模式。
  • 误以为 HTML5 doctype 需要写 DTD 地址。HTML5 不需要再写长 DTD。

作者信息