<!DOCTYPE html>必须顶格首行,否则触发怪异模式;<html lang="zh-CN">不可省略,否则影响SEO与无障碍访问;<meta charset="UTF-8">和<title>须置于<head>最前,避免乱码与降权。

<!DOCTYPE html> 必须写在第一行,且不能有任何字符(包括空格、换行)前置,否则触发怪异模式,body 里的样式和 JavaScript 行为会不可预测。
为什么 <html lang="zh-CN"> 的 lang 属性不能省略
搜索引擎和屏幕阅读器依赖它判断页面语言。省略时默认为未知语言,SEO 权重下降,无障碍访问支持失效。中文站必须显式写 lang="zh-CN",英文站用 lang="en";若混用多语言(比如一段英文引文),可在局部加 <span lang="en"> 覆盖。
<head> 里哪些标签是硬性必需的
严格来说,只有 <title> 是 HTML5 规范中唯一强制要求的子元素。但实际项目中,以下三项几乎总是必须:
-
<meta charset="UTF-8">:不写会导致中文乱码,尤其表单提交或 Ajax 请求时参数解析失败 -
<meta name="viewport" content="width=device-width, initial-scale=1.0">:缺失时移动端页面会以桌面宽度渲染,文字极小、需双指缩放 -
<title>:不仅影响浏览器标签页显示,更是 SEO 的核心字段,空<title>或纯空格会被搜索引擎降权
<body> 以外的内容为什么不能直接写文本
HTML 要求所有可见内容必须包裹在 <body> 内。把文字直接写在 </html> 后面,或 <head> 和 <body> 之间,浏览器虽会容错渲染(通常移到 <body> 开头),但 DOM 结构错乱,JS 查询 document.body 时可能拿到非预期节点,CSS 选择器如 body > p 也会失效。
立即学习“前端免费学习笔记(深入)”;
常见误写:<html><head></head>这里是错的文本<body><p>正确内容</p></body></html>
这种写法会让“这里是错的文本”被浏览器悄悄塞进 <body>,但位置不可控,调试时 DOM 树难以追踪。
真正容易被忽略的是 <meta charset> 和 <title> 的顺序——它们必须出现在 <head> 最前面,否则浏览器可能已按默认编码(如 ISO-8859-1)解析了部分 HTML,再遇到 charset 也来不及修正。



















