一、引言
在前面,我们已经学过 块元素 和 行内元素 的区别。简单回顾一下:
- 块元素:独占一行,主要用来做网页的布局。
- 行内元素:跟文字排在同一行,主要用来修饰内容。
理解了这些基础之后,接下来要进入一个更重要的话题——语义化标签。
语义化标签的作用,就是让网页的结构对人和机器都更清晰。
- 对开发者:看代码就能大致明白哪个部分是导航、哪个是正文、哪个是底部。
- 对搜索引擎:能更好地理解网页的内容,有利于 SEO。
HTML5 新增了一批语义化的结构标签,用来代替传统的 <div>,帮助我们把网页分割成不同的区域。本文会带你从零开始理解这些标签,逐一掌握它们的用法。
二、网页三大核心区域标签
在一个完整的网页中,通常都会分为三个主要部分:头部(header)、主体(main)、底部(footer)。这三个标签是最常见、最基础的语义化标签。
1. <header> —— 头部区域
- 作用:表示网页或某个区块的头部。
- 常见内容:网站 logo、导航栏、搜索框、页面标题等。
- 特点:
- 可以出现在网页整体的最上方;
- 也可以用在文章、侧栏等局部区域的头部。
💡 举例:
<header>
<h1>南希说 - 我的学习笔记</h1>
<nav>
<a href="/">首页</a>
<a href="/blog">博客</a>
<a href="/about">关于我</a>
</nav>
</header>
2. <main> —— 主体区域
- 作用:表示网页的主要内容。
- 特点:
- 在一个页面里 只能有一个 main,因为主体内容是唯一的;
- 一般位于 header 下面,footer 上面。
💡 举例:
<main>
<article>
<h2>今天的学习内容</h2>
<p>我们学习了 HTML5 的语义化标签,了解了 header、main 和 footer 的用法。</p>
</article>
</main>
3. <footer> —— 底部区域
- 作用:表示网页或某个区块的底部。
- 常见内容:版权声明、备案号、联系方式、友情链接。
- 特点:
- 和 header 一样,也可以用在网页整体底部,或某个文章的底部。
💡 举例:
<footer>
<p>© 2025 南希说 - 保留所有权利</p>
<p><a href="/contact">联系我们</a></p>
</footer>
📌 小结:
- header:开头,像一张“名片”。
- main:核心,内容唯一。
- footer:收尾,通常是补充信息。
它们就像一本书的结构:封面(header) → 正文(main) → 尾页(footer)。
三、H5 新增的核心结构化标签
HTML5 为了让网页结构更加清晰,引入了一些新的语义化标签。这些标签在网页布局里经常会出现,能帮我们更好地组织内容。
1. <nav> —— 导航区域
- 语义:导航(navigation 的缩写)。
- 作用:表示网页的导航部分,帮助用户快速找到需要的内容。
- 常见位置:网站顶部、侧边栏、文章内部的目录。
💡 举例:
<nav>
<ul>
<li><a href="/">首页</a></li>
<li><a href="/tutorials">教程</a></li>
<li><a href="/resources">资源</a></li>
<li><a href="/contact">联系我</a></li>
</ul>
</nav>
提示:一个页面可以有多个 nav,比如顶部导航、底部导航,但要保证每个 nav 的内容确实是导航。
2. <aside> —— 侧边栏区域
- 语义:附属内容(“在旁边”)。
- 作用:表示和主内容相关,但不是主体的部分。
- 常见内容:广告位、推荐文章、相关链接、提示信息。
💡 举例:
<aside>
<h3>相关推荐</h3>
<ul>
<li><a href="/html-tags">HTML 常用标签</a></li>
<li><a href="/css-basics">CSS 基础入门</a></li>
</ul>
</aside>
你可以把 aside 理解成“边角料”,它不是主角,但能为主内容提供更多信息。
3. <article> —— 独立内容块
- 语义:独立、完整的内容单元。
- 作用:用来表示一篇文章、一条评论、一条新闻、一条博客帖子。
- 特点:
- 可以嵌套:一个大 article 里包含多个小 article;
- 每个 article 一般都有标题和正文。
💡 举例:
<article>
<h2>天气预报</h2>
<article>
<h3>周一</h3>
<p>晴转多云,气温 20-28℃</p>
</article>
<article>
<h3>周二</h3>
<p>小雨,气温 18-25℃</p>
</article>
</article>
📌 小结:
- nav:导航,像地图的“指路牌”。
- aside:旁边的小助手,提供补充信息。
- article:内容单元,像一篇完整的文章。
四、其他语义化标签
除了前面讲的 header、main、footer、nav、aside、article 之外,HTML5 还提供了一些辅助的语义化标签。它们使用场景比较少,但了解一下有助于我们更完整地掌握语义化结构。
1. <address> —— 联系方式
- 语义:联系信息。
- 作用:表示作者或网站的联系方式。
- 常见内容:邮箱、电话号码、地址、社交媒体链接等。
- 特点:
- 默认会以斜体显示;
- 一般放在页面底部(footer 里比较常见)。
💡 举例:
<footer>
<address>
联系我:<a href="mailto:nancy@example.com">nancy@example.com</a><br>
电话:+86-123-4567-890
</address>
</footer>
2. <menu> —— 菜单(较少使用)
- 语义:一组操作命令或菜单。
- 作用:在早期设计中,menu 用来表示工具栏或上下文菜单。
- 现状:
- 在实际网页开发中用得很少;
- 更常见的还是用
<ul>+<li>来做菜单。
💡 举例(理论上这样写,但很少见):
<menu>
<li><button>复制</button></li>
<li><button>粘贴</button></li>
<li><button>删除</button></li>
</menu>
3. <section> —— 独立区块
- 语义:一个独立的内容区域。
- 作用:当其他语义化标签(header、nav、article、aside…)都不合适时,可以用 section 来划分区域。
- 应用场景:
- 页面被分成几个主题板块;
- 在 header 内再细分多个部分;
- 在 main 内组织不同的小区块。
💡 举例:
<main>
<section>
<h2>学习笔记</h2>
<p>今天学习了 HTML5 的语义化标签。</p>
</section>
<section>
<h2>练习题</h2>
<p>请用 header、main、footer 结构写一个简单网页。</p>
</section>
</main>
📌 小结:
- address:联系方式,常在 footer 里。
- menu:理论上的菜单(很少用)。
- section:通用区块,适合当其他标签不合适时使用。
五、div 与 span:实际开发的主力
虽然 HTML5 提供了很多语义化标签,但在实际开发中,最常用的还是 div 和 span。
原因很简单:它们没有语义,所以非常灵活,几乎可以放在任何地方使用。
1. <div> —— 块级无语义容器
- 特点:
- 是块级元素,独占一行;
- 本身没有任何语义,只是一个“盒子”。
- 常见用法:
- 用来做网页的布局;
- 可以代替 header、footer、nav 等任何区域。
💡 举例:
<div class="header">
<h1>网站标题</h1>
</div>
<div class="content">
<p>这里是主要内容。</p>
</div>
<div class="footer">
<p>版权所有 © 2025</p>
</div>
👉 注意:这样写虽然能实现布局,但从语义化角度来看,不如用 header、main、footer 更清晰。
2. <span> —— 行内无语义容器
- 特点:
- 是行内元素,不会换行;
- 本身没有语义,常用于修饰部分文字。
- 常见用法:
- 给文字加颜色、字体、样式;
- 用于包裹小的文本片段,方便用 CSS 单独控制。
💡 举例:
<p>
今天的天气是 <span style="color:red;">晴天</span>,气温 <span style="font-weight:bold;">28℃</span>。
</p>
👉 span 就像一个“贴标签”的工具,可以精准地选中某段文字来设置样式。
3. 为什么开发中 div 用得最多?
- 因为浏览器和搜索引擎对语义化标签的支持程度不完全一致;
- 因为 div 灵活、通用,可以快速布局;
- 所以很多网站源码里,div 的数量往往是最多的。
六、语义化的意义与现实应用
学习了这么多标签,你可能会问:既然 div 就能搞定一切,为什么还要用这么多新的语义化标签呢?
答案是:语义化让网页更清晰、更智能。
1. 对开发者的好处
- 更容易读懂代码:
如果全是<div>,别人看代码时完全不知道哪个是导航、哪个是主体。<!-- 不清晰 --> <div id="box1">...</div> <div id="box2">...</div> <!-- 更清晰 --> <header>...</header> <main>...</main> <footer>...</footer> - 便于团队协作:
用语义化标签写的结构,一眼就能明白页面的逻辑。
2. 对用户体验的好处
- 无障碍访问:
屏幕阅读器(盲人用的阅读软件)能直接识别nav是导航、article是文章,从而更好地朗读网页。 - 一致的结构:
用户习惯了网页“上有导航、下有版权”的布局,语义化标签让这种结构更规范。
3. 对 SEO 的好处
- 搜索引擎会抓取网页内容,如果结构清晰,它就能更准确地理解页面:
article里的内容更容易被识别为文章主体;nav里的链接可能被识别为重要导航;header和footer有助于搜索引擎理解网站的框架。
- 这意味着:语义化写法对搜索排名有潜在的帮助。
4. 实际开发中的平衡
- 理想情况:尽量使用语义化标签,增强结构清晰度。
- 现实情况:开发时还是会大量用
div和span,因为它们更灵活。 - 最佳做法:
- 大框架用语义化标签(header、main、footer、nav…);
- 细节布局用 div;
- 文本修饰用 span。

南希说









