html标题代码怎么设置_h1到h6标题标签的使用规范【指南】

5次阅读

html标题代码怎么设置_h1到h6标题标签的使用规范【指南】

html<h1></h1><h6></h6> 不是字号控制工具,而是语义层级标记 —— 用错会直接破坏可访问性、seo 和屏幕阅读器体验。

什么时候该用 <h1></h1>

一个页面有且仅有一个 <h1></h1>,它必须准确表达整个页面的核心主题。不是“网站名”,也不是“欢迎来到首页”,而是比如“订单确认”“404 页面未找到”“Python 字符串方法速查”。<h1></h1> 被跳过或重复,会导致搜索引擎降权、盲人用户无法快速定位主内容。

  • 错误做法:<h1>MyBlog</h1> 放在页眉,每个页面都一样
  • 正确做法:<h1>如何用 <code>fetch() 处理 401 错误

    (文章页);<h1>用户登录</h1>(表单页)

  • SPA 应用需在路由切换后用 js 动态更新 <h1></h1> 内容,不能靠 CSS 隐藏再显示

<h2></h2><h6></h6> 必须严格嵌套

标题层级不是“我想要多大字号就用多大标签”,而是反映内容逻辑结构:子章节必须比父章节低一级。跳级(如 <h2></h2> 后直接写 <h4></h4>)会让辅助技术完全混乱,chrome DevTools 的 Accessibility 面板会标红警告。

  • 允许:<h2></h2><h3></h3><h4></h4>
  • 禁止:<h2></h2><h4></h4>(中间缺 <h3></h3>
  • 禁止:<h3></h3> 出现在 <h2></h2> 之前(即没父级就先写子级)
  • CSS 可以重置所有标题的视觉样式,但语义层级不能靠 font-size 模拟

别用标题标签做样式 hack

<h3></h3> 当小号加粗文字、<h6></h6> 当备注说明,是前端最常踩的坑。浏览器默认样式只是参考,实际渲染由 CSS 控制,但语义已固化 —— 屏幕阅读器仍会读作“heading level 3”,用户听到一“标题三级”毫无上下文。

立即学习前端免费学习笔记(深入)”;

  • 替代方案:普通 <p></p> + font-weight: bold<span class="label"></span>
  • 如果真需要强调某段文字的“副标题”属性,用 <h2></h2> 并确保它上面有 <h1></h1>,下面有对应内容区块
  • 组件库中常见问题:Card 组件内部硬编码 <h3></h3>,导致嵌套时层级断裂

SSR/静态站生成器里的常见断裂点

Next.js、Nuxt、Hugo 等框架在生成 HTML 时,容易把布局组件中的 <h1></h1>(如页眉 Logo)和页面内容的 <h1></h1> 同时输出,造成重复。这并非模板语法错误,而是语义职责没切分清楚。

  • Layout 文件里不要放 <h1></h1>,用 <div role="banner"> 或纯 <code><header></header>
  • 页面组件(Page Component)负责提供唯一的 <h1></h1>,并通过 getStaticPropssetup() 动态注入
  • JSDOM 测试环境可能不校验标题层级,但 Lighthouse 和 axe 插件会立刻报 document-titleheading-order 错误
  • 真正难的不是写对标签,而是在组件拆分、动态路由、CMS 内容混排时,始终让每个 <h1></h1><h6></h6> 都能回答“它在整页结构里处在哪一层、为什么是这一层”。

text=ZqhQzanResources