<header>标签用于定义页面或区块的头部区域,包含网站标志、导航菜单等介绍性内容。它可提升代码可读性、SEO效果及辅助技术对页面结构的理解。一个页面可有多个<header>,分别用于页面整体或文章等局部区块。典型结构包括logo链接、<nav>主导航和搜索表单,需使用语义化标签如<h1>-<h6>、<nav>并配合ARIA属性增强可访问性。响应式设计中应保持语义不变,通过CSS调整布局,如移动端采用“汉堡菜单”但保留<nav>结构,确保键盘与屏幕阅读器支持。避免将<header>作为普通样式容器滥用,确保其内容具有结构性与功能性意义。

HTML语义化中的 <header> 标签用于定义页面或区块的头部区域,通常包含网站标志、导航菜单、搜索框或用户操作入口等。正确使用 <header> 能提升代码可读性、增强SEO效果,并帮助辅助技术(如屏幕阅读器)更好地理解页面结构。
1. 理解 header 的语义作用
<header> 不只是页面最顶部的横条,它可以出现在整个页面中多个位置:
- 作为整个页面的顶部区域(通常在 <body> 内部)
- 作为某个文章或区块的标题部分(例如 <article> 内部的 <header>)
关键点是:header 应该包含介绍性内容或导航工具,比如标题、作者信息、发布日期、logo 或主导航菜单。
2. 页面级 header 的基本结构
一个典型的页面顶部 <header> 布局如下:
立即学习“前端免费学习笔记(深入)”;
<header>
<div class="container">
<a href="/" class="logo">
<img src="logo.svg" alt="公司名称">
</a>
<nav aria-label="主导航">
<ul>
<li><a href="/home">首页</a></li>
<li><a href="/about">关于我们</a></li>
<li><a href="/services">服务</a></li>
<li><a href="/contact">联系</a></li>
</ul>
</nav>
<form role="search" action="/search">
<input type="text" placeholder="搜索...">
<button type="submit">搜索</button>
</form>
</div>
</header>
说明:
- 使用 <nav> 包裹主导航链接,明确导航语义
- logo 使用带 alt 文本的图片,并链接到首页
- 搜索表单添加 role="search" 提高可访问性
- 用 aria-label 为导航提供上下文描述
3. 遵循语义化设计原则
为了让 <header> 更具语义和实用性,注意以下几点:
- 不要滥用 <header> —— 它不是普通的布局容器,应避免仅为了样式而使用
- 一个页面可以有多个 <header>,但每个都应服务于特定区块(如文章头、侧栏介绍等)
- 内部优先使用语义标签:如 <h1>-<h6> 表示标题层级,<nav> 表示导航
- 配合 ARIA 属性提升可访问性,尤其对导航和搜索功能
4. 响应式与实际应用建议
现代网页常需适配移动端,语义结构不变,但布局可通过 CSS 调整:
- 在小屏幕上隐藏部分导航项,改用“汉堡菜单”按钮,但仍保持 <nav> 的语义结构
- 确保所有交互元素(如菜单按钮)具备键盘可访问性和屏幕阅读器支持
- 使用 Flexbox 或 Grid 实现布局,不破坏 HTML 语义结构
例如,移动端的导航可以这样处理:
<button class="menu-toggle" aria-expanded="false" aria-controls="main-menu"> 菜单 </button> <nav id="main-menu" hidden> <!-- 导航链接 --> </nav>
基本上就这些。合理使用 <header>,结合其他语义标签和可访问性实践,能让页面结构更清晰、更友好。











