必须写<!DOCTYPE html>以触发标准模式,避免怪异模式;<html>需加lang属性(如zh-CN);<head>中必需<meta charset="UTF-8">和<meta name="viewport">;所有声明须位于首行无前置字符。

HTML 文档开头必须用 <!DOCTYPE html> 声明,这是现代 HTML5 的唯一合法文档类型声明;没有它,浏览器会进入怪异模式(Quirks Mode),导致 CSS 布局、JS 行为不可预测。
为什么必须写 <!DOCTYPE html>?
这个声明不是 HTML 标签,而是向浏览器发出的“按标准模式渲染”的指令。省略或写错(比如 <!doctype html> 小写虽可接受,但大小写混用如 <!Doctype Html> 在部分旧工具链中可能触发校验警告)都会让 IE8 及更早版本直接退化到怪异模式。现代浏览器虽容错强,但团队协作、CI 构建、W3C 验证仍会报错。
<html> 标签要不要加 lang 属性?
要加,且必须加。不加 lang 会导致屏幕阅读器无法正确发音、SEO 语义缺失、部分翻译插件失效。常见错误是只写 <html lang="zh"> —— 这不够精确,应明确为简体中文 <html lang="zh-CN"> 或繁体中文 <html lang="zh-TW">。
头部 <head> 里哪些 meta 是硬性必需?
真正必需的只有两个:<meta charset="UTF-8"> 和 <meta name="viewport" content="width=device-width, initial-scale=1.0">。前者防止中文乱码(漏写会导致 ¥、 emoji、中文标点显示为 );后者确保响应式在移动端生效(漏写会让手机浏览器以桌面宽度缩放页面,文字小得看不清)。其他如 <title> 虽非技术强制,但无 <title> 会被 Lighthouse 扣分,且标签页显示为空白。
立即学习“前端免费学习笔记(深入)”;
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>页面标题</title> </head> <body> <h1>Hello World</h1> </body> </html>
最容易被忽略的是:所有这些声明都必须出现在第一行开始位置,前面不能有任何空格、BOM 字符或注释——哪怕一个看不见的 UTF-8 BOM(EF BB BF)都会让某些服务器或构建工具静默失败。











