必须顶格放在第一行,否则浏览器将进入怪异模式,导致box-sizing失效、flex错乱、position:sticky不工作等渲染异常;它不是标签,而是触发标准模式的唯一指令。

必须写 ,且必须放在第一行;<code> 不能省,否则屏幕阅读器读错、SEO 弱、CSS 的 :lang() 失效。
为什么 必须放第一行且不能带空格
浏览器一读到非空白字符就决定解析模式。如果前面有注释、空行或 BOM 字节,IE 和部分旧内核会强制进入怪异模式(Quirks Mode),导致 box-sizing、position: fixed、甚至 document.title 读取都出错。现代浏览器虽宽容,但安全测试和跨端兼容仍以标准模式为基准。
不区分大小写,但统一小写更稳妥,避免某些构建工具误判- 不能写成
或 <code> 加空格——部分 CI 流程会校验格式,失败即阻断部署 - VS Code 输入
!+ Tab 生成的模板是可靠的,别手动删空格或加换行
lang 属性写 zh-CN 还是 zh?
写 zh-CN。BCP 47 标准要求地区码明确,只写 zh 会让语音合成引擎默认用台湾腔或日语发音逻辑,拼写检查器无法匹配简体词库,Google 搜索结果也倾向展示繁体页面。
- 嵌套英文内容时,直接用
<p lang="en">API response</p>覆盖,不用额外设xml:lang - 服务端渲染(SSR)场景下,若语言动态切换,
lang值必须和服务端输出一致,否则 React/Vue 的 hydration 会因 DOM 差异报错 - 别在
上写lang=""空值——这等价于未声明,浏览器按undefined处理
<meta charset="utf-8"> 为什么必须在 开头 1024 字节内
浏览器解析 时,只扫描前 1024 字节来确定字符集。如果 <meta charset> 写在 <title></title> 后面、或中间夹了 JS 注释,中文就会显示为 ,且该乱码不可逆(刷新也不恢复)。
- 必须紧贴
标签后,推荐顺序:<meta charset="utf-8">→<meta name="viewport">→<title></title> - 不要用
<meta http-equiv="Content-Type">,HTML5 已废弃该写法,Chrome 120+ 会忽略 - UTF-8 不要写成
UTF8或utf-8(中间短横可选,但大小写敏感:大写 U、T、F,小写 8)
<title></title> 看似简单,但漏掉会影响什么
没 <title></title>,浏览器标签页显示“无标题文档”,用户无法从多标签中快速识别页面;更重要的是,所有主流爬虫把 <title></title> 当作页面主关键词源,缺失将导致搜索排名归零。
- 每个页面的
<title></title>必须唯一,且长度控制在 30–60 字符(含空格),过长会被截断 - SSR 或静态站点生成(如 Hugo、Next.js)中,若
<title></title>由 JS 动态注入,首屏 HTML 中仍需留一个占位值,否则 Lighthouse 可访问性检测直接扣分 - 别用
<h1></h1>替代<title></title>——两者语义完全不同,<h1></h1>是内容层级,<title></title>是文档标识
最容易被忽略的是 和 的组合效应:前者缺 <code>lang,后者位置不对,两个小问题叠加,可能让整个页面在无障碍测试中被判为“不可用”。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











