HTML不是编程语言,仅定义结构与语义;必须首行唯一小写,否则触发怪异模式;影响SEO、读屏与翻译;须紧贴开头且文件编码一致;所有可见内容必须且只能在内。

HTML 不是编程语言,它没有变量、循环或逻辑判断能力;它只负责告诉浏览器“这里是一级标题”“那里是一段文字”“这个图要放在正文下方”——结构和语义,仅此而已。
DOCTYPE 声明必须写在第一行,且只能有一个
浏览器靠 判断是否启用 HTML5 渲染模式。漏掉、写错位置(比如缩进或前面有空格)、重复出现,都会触发怪异模式(Quirks Mode),导致盒模型、字体渲染、CSS calc 行为全部不一致。
区分大小写,必须全小写,不能写成 <code>- 前面不能有任何字符,包括 BOM、空格、注释,否则某些旧版 IE 直接降级
- 不要写成
这类过时写法,现代项目一律用 <code>
标签的 lang 属性不是可选装饰项
搜索引擎、读屏软件、自动翻译都依赖 或 来识别页面主语言。不写或写错(比如 lang="ch")会导致语音朗读发音错误、SEO 语义权重下降、甚至部分浏览器禁用自动翻译按钮。
- 中文推荐用
zh-CN(简体中文,中国大陆),不用zh或zh-Hans(后者虽合法但支持度低) - 多语言页面若主体是英文,但某段落是中文,应局部用
<p lang="zh-CN"></p>覆盖 -
是整个文档的根元素,所有其他标签必须嵌套在它内部,不可遗漏
里 <meta charset="UTF-8"> 必须早于任何文本内容
字符编码声明决定浏览器如何解码 HTML 文件字节流。如果 <meta charset="UTF-8"> 出现在 <title></title> 后面、或被 JS 动态插入、或文件本身保存为 GBK 编码却声明 UTF-8,轻则中文变乱码(),重则 script 标签里的字符串解析失败、CSS @charset 失效。
-
<meta charset="UTF-8">应紧贴开始后第一行,越早越好 - 编辑器保存文件时务必选 UTF-8 无 BOM 格式;VS Code 默认是,但记事本仍可能存成 GBK
- 不要用
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">替代,它已被废弃且兼容性差
不是“放内容的地方”,而是“唯一合法的内容容器”
所有用户可见内容(文字、图片、表单、canvas)必须且只能出现在 内。把 <p></p> 或 <div> 直接写在 <code> 里,浏览器虽会容错渲染,但 DOM 结构错乱、script 获取元素失败、SEO 爬虫忽略这些内容。
-
可以为空,但不能省略;HTML5 允许省略闭合标签,但建议显式写出,避免嵌套混淆 - 早期 HTML 允许
bgcolor、text等属性直接写在上,现在必须用 CSS 控制样式 - 脚本如需操作页面内容,
DOMContentLoaded事件比window.onload更可靠,因为它只等 DOM 构建完成,不等图片加载
真正容易被忽略的,是 <meta charset="UTF-8"> 和文件实际编码的一致性——它不出错时没人注意,一出错就是整页中文失效,而且错误提示不会告诉你哪错了。











