h1 元素的默认样式正在发生变化 | MDN 博客

主要观点:浏览器开始推出嵌套节标题的默认 UA 样式更改,开发者应避免依赖 UA 样式,文中介绍了变化内容、预期情况、修复 Lighthouse 警告的方法及总结等。
关键信息:

  • HTML 规范曾定义基于嵌套节元素数量的<h1>隐式语义标题级别,浏览器渲染曾使不同层级的<h1>有不同字体大小和边距,后大纲算法被移除但 UA 样式表规则仍存在。
  • 浏览器样式更改及 Lighthouse 工具对未定义<h1>字体大小的情况进行标记,不同浏览器的更改时间和情况不同,如 Firefox 从 2025 年 3 月 31 日起为部分 Beta 138 用户移除 UA 样式等。
  • 修复 Lighthouse 警告需为<h1>定义明确的字体大小和边距,可使用:where()避免覆盖其他样式规则,MDN 页面也有相关用法说明。
    重要细节:
  • 旧 UA 样式下,section > h1<h2>字体大小和边距相同等,新 UA 样式下各级<h1>字体大小相同。
  • Firefox 相关 bug 如 1885509、1937568 及测试设置,Chrome 从 136 版起对特定<h1>显示弃用警告及影响,Safari 的实现 bug 等。
  • 给出修复警告的推荐样式,如h1 { margin-block: 0.67em; font-size: 2em; }:where(h1) { margin-block: 0.67em; font-size: 2em; }等。
    总结:不要依赖默认浏览器样式传达标题层次,定义自己的<h1>字体大小和边距,更新 CSS 重置,用 Lighthouse 和 DevTools 审计站点,查看 MDN 文档用法说明。同时提到相关的之前和之后的博客文章链接。
阅读 42
0 条评论