前置知识: HTML5

文档类型声明

4 minBeginner2026/6/14

DOCTYPE与HTML Living Standard

1. DOCTYPE 声明

1.1 什么是 DOCTYPE

DOCTYPE(Document Type Declaration)是 HTML 文档的第一行,用于告知浏览器当前文档使用的 HTML 版本和渲染模式。它不是 HTML 标签,而是一条”处理指令”。

<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="UTF-8" />
    <title>文档类型声明示例</title>
  </head>
  <body>
    <p>这是一个 HTML5 文档</p>
  </body>
</html>

1.2 DOCTYPE 的历史演变

版本DOCTYPE 声明说明
HTML 2.0<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">极其简洁
HTML 4.01 Strict<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" ...>包含 DTD 引用
XHTML 1.0<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ...>XML 语法
HTML5<!DOCTYPE html>极简声明

HTML5 的 DOCTYPE 设计哲学是向后兼容极简主义——它不再引用 DTD,因为 HTML5 不再基于 SGML。

1.3 标准模式与怪异模式

模式触发条件特点
标准模式存在有效的 DOCTYPE按 W3C 标准渲染
怪异模式缺少 DOCTYPE 或无效模拟旧浏览器行为
几乎标准模式某些过渡型 DOCTYPE除表格单元格高度外按标准渲染

关键差异:盒模型(怪异模式下 width 包含 padding 和 border)、行内元素尺寸、字体继承、片间距。

// 检测当前渲染模式
if (document.compatMode === 'CSS1Compat') {
  console.log('标准模式');
} else {
  console.log('怪异模式');
}

2. HTML Living Standard

2.1 从 W3C 到 WHATWG

2019 年,W3C 与 WHATWG 达成协议,HTML 和 DOM 规范由 WHATWG 作为唯一发布者维护。HTML 正式成为”活标准”(Living Standard)。

核心理念:持续演进、向后兼容、浏览器驱动、社区参与。

2.2 规范结构

章节内容
Infrastructure术语、编码、解析器
Semantics元素语义定义
DOM文档对象模型
CommunicationWeb Sockets、Web Messaging
Web Workers后台线程

2.3 新特性演进时间线

年份新增特性
2020loading="lazy"
2021<dialog> 元素、popover 属性
2022Container Queries、:has() 选择器
2023View Transitions API、<search> 元素
2024CSS Anchor Positioning
2025Declarative Shadow DOM

3. DOCTYPE 最佳实践

  • 永远在文档首行声明 DOCTYPE
  • 推荐大写 <!DOCTYPE html>
  • 使用 W3C Markup Validation Service 验证