html5不存在“格式选择”问题,功能异常主因是DOCTYPE声明错误、文件后缀不兼容或误用xml/xhtml解析规则。

html5 本身不是一种“格式”,不存在“选错 HTML5 格式”导致功能丢失的问题——你遇到的,大概率是文档类型声明()写错、文件后缀用错、或误把 HTML 当成其他格式(比如 XML 或 XHTML)来解析和使用。
为什么 写错会导致功能异常
浏览器靠 进入“标准模式”。如果漏写、拼错(如 小写没问题,但 ..> 过时写法)、或混进 bom/注释前,可能触发怪异模式(Quirks Mode),结果:flex 不生效、position: sticky 失效、getBoundingClientRect() 返回错误值。
- 必须放在第一行,且前面不能有任何字符(包括空格、BOM、
) - 大小写不敏感,但推荐全大写 + 小写
html:即 - 不要用 XHTML 声明(如
..>),它会强制 XML 解析规则,不自闭合就报错
.html 和 .htm 后缀影响什么
现代浏览器对后缀不敏感,但服务器或本地双击打开时行为不同:
- 本地双击
index.htm在某些旧 windows 系统上可能用 IE7 兼容模式加载 - 部分静态托管服务(如 gitHub Pages)默认只识别
.html为页面,.htm可能返回 404 或下载而非渲染 - node.js 开发服务器(如
serve、vite)通常只映射.html为主入口,.htm需额外配置
建议统一用 .html,避免无谓差异。
立即学习“前端免费学习笔记(深入)”;
把 HTML 当成 XML/XHTML 写的典型翻车点
HTML5 解析器宽容:允许省略结束标签(
hello
world
可简写为
hello
world
),也接受 这种自闭合写法。但如果你按 XML 规则写,反而容易出问题:
