⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

HTML DOCTYPE 声明与文档模式

HTML文档类型声明详解:DOCTYPE的作用、HTML5简化的DOCTYPE、怪异模式Quirks Mode vs 标准模式、文档渲染模式的切换条件 · 难度:入门 · +10XP

HTML DOCTYPE 声明 —— 每个网页的第一行代码

打开任何一个网页,右键选择查看网页源代码,你会发现第一行总是:

<!DOCTYPE html>

这一行虽然短,却极其重要。它告诉浏览器:请用最新的HTML5标准来渲染这个网页

为什么要写 DOCTYPE?

浏览器很聪明,但它也很念旧。如果网页不声明 DOCTYPE,浏览器会进入怪异模式(Quirks Mode)——用几十年前的旧规则来渲染网页。结果就是:同样的CSS代码,在怪异模式下显示得乱七八糟。

用一句话记住:写 DOCTYPE = 告诉浏览器用最新标准来干活。

HTML5 的 DOCTYPE vs 旧版

HTML5 简化了一切。以前(HTML 4.01时代)写 DOCTYPE 是这样的:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

HTML5 只需要一行,极其简洁:

<!DOCTYPE html>

大小写不敏感——写 <!doctype html><!DOCTYPE HTML> 都可以,但推荐统一小写。

三个渲染模式对比

模式触发条件效果
标准模式写了 <!DOCTYPE html>浏览器按最新W3C标准渲染
怪异模式没写 DOCTYPE模拟旧版浏览器行为,CSS盒模型不同
准标准模式写了旧版过渡型 DOCTYPE大部分标准,但细微差异

一个完整网页的 DOCTYPE 位置

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <title>我的网页</title>
</head>
<body>
  <h1>欢迎!</h1>
</body>
</html>

注意:DOCTYPE 必须是整个文件的第一行,前面不能有空行或空格。

动手练习

  1. 基础练习:创建一个有 DOCTYPE 的完整 HTML 页面,包含标题和一段文字。然后删除 DOCTYPE 看看浏览器开发者工具里有什么警告。
  2. 进阶应用:在同一个 HTML 文件中,写一个宽度为 200px 的 div,分别测试有 DOCTYPE 和无 DOCTYPE 两种情况下它的实际渲染宽度。你会发现怪异模式下盒模型计算的差异。
  3. 项目实战:用 VS Code 的 ! 快捷键(输入 ! 然后按 Tab)自动生成一个完整的 HTML5 骨架,观察它自动生成了哪些代码,理解每一行的作用。

接下来学什么?

下一课我们将学习 lang 和 dir 属性——如何告诉浏览器你的网页是用中文还是英文写的。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 101 篇
0 完成
🔥 0