语义化标签
语义化标签(Semantic Elements)是 HTML5 引入的一组有明确含义的标签,用来替代一部分 div。它们让页面结构"可读":搜索引擎理解哪部分是导航、哪部分是正文,屏幕阅读器可以跳过导航直达内容,开发者一看标签就知道区块的作用。
常用语义标签速查
| 标签 | 含义 | 典型内容 |
|---|---|---|
| header | 页眉 / 区块头部 | Logo、站点名、搜索框 |
| nav | 导航 | 主导航菜单、分页 |
| main | 页面主体内容(每页一个) | 正文、核心区域 |
| section | 内容分节 | 有主题的一组内容,通常带标题 |
| article | 独立成篇的内容 | 文章、帖子、评论、产品卡片 |
| aside | 侧栏 / 附属内容 | 广告、相关推荐、目录 |
| footer | 页脚 / 区块底部 | 版权、备案、联系方式 |
| figure | 图文组合 | 图片 + 说明(figcaption) |
| time | 时间 | 发布时间、日期 |
| address | 联系信息 | 地址、邮箱、电话 |
典型页面结构
<body>
<header>
<h1>网站名称</h1>
<nav><a href="#">首页</a><a href="#">教程</a></nav>
</header>
<main>
<article>
<h2>文章标题</h2>
<p>文章正文……</p>
</article>
<aside>
<h3>相关推荐</h3>
<ul><li>推荐一</li><li>推荐二</li></ul>
</aside>
</main>
<footer>© 2025 编程学习网</footer>
</body>
article 和 section 怎么分
article 强调"独立":单独拿出来依然完整有意义(一篇文章、一条新闻、一个产品)。section 强调"分组":是更大内容的一部分(文章里的一个章节、首页的一个栏目)。页面主体通常是 main 包着一个或多个 article,article 内部再用 section 分节。
为什么要用语义化标签
- SEO:搜索引擎更准确地识别页面结构和重点内容,语义清晰的页面在内容理解上有优势;
- 可访问性:屏幕阅读器提供"跳转到主内容""列出标题大纲"等导航,全靠语义标签;
- 可维护性:半年后回来改代码,看到 header/nav/article 比看到一排 div 省事得多;
- 移动端与未来兼容:结构稳定,样式怎么变都不影响语义。
规则不复杂:结构上有明确角色的区块,优先找语义标签;找不到合适的,再用 div 兜底。
代码示例
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>语义化标签示例</title>
<style>
header, nav, main, article, aside, footer { border: 1px solid #dcedc8; margin: 8px 0; padding: 12px; }
nav a { margin-right: 12px; }
</style>
</head>
<body>
<header>
<h1>编程学习网</h1>
<nav>
<a href="#">首页</a>
<a href="#">HTML 教程</a>
<a href="#">CSS 教程</a>
</nav>
</header>
<main>
<article>
<h2>HTML 语义化入门</h2>
<p><time datetime="2025-06-01">2025 年 6 月 1 日</time>发布</p>
<section>
<h3>什么是语义化</h3>
<p>用有含义的标签描述内容结构。</p>
</section>
</article>
<aside>
<h3>相关推荐</h3>
<ul>
<li><a href="#">CSS 布局教程</a></li>
<li><a href="#">JavaScript 入门</a></li>
</ul>
</aside>
</main>
<footer>
<address>联系邮箱:hello@example.com</address>
<p>© 2025 编程学习网</p>
</footer>
</body>
</html>
📚 HTML 标签速查
常用条目速查,完整版见对应教程章节。可复制代码到在线运行中测试。
| 写法 / 语法 | 作用 |
|---|---|
<h1>-<h6> | 标题,h1 最高,每页只用一个 h1 |
<p> | 段落,自动加前后间距 |
<a href=""> | 链接,href 是目标地址 |
<img src="" alt=""> | 图片,src 地址,alt 替代文字 |
<ul> / <li> | 无序列表 |
<ol> / <li> | 有序列表,数字编号 |
<dl> / <dt> / <dd> | 自定义列表:术语 + 说明 |
<table> / <tr> / <td> / <th> | 表格:行 / 单元格 / 表头 |
<form action="" method=""> | 表单,action 提交地址,method 提交方式 |
<input type=""> | 输入控件,type 有 text/password/email/number 等 |
<textarea> | 多行文本输入 |
<select> / <option> | 下拉框及选项 |
<button type="submit"> | 按钮,submit 提交表单 |
<strong> / <em> | 加粗(重要)/ 斜体(强调) |
<div> / <span> | 区块容器 / 行内容器 |
<header> <nav> <main> | 语义化:页眉 / 导航 / 主体 |
<section> <article> <aside> | 语义化:分节 / 独立内容 / 侧栏 |
<footer> | 页脚:版权、备案 |
<video> / <audio> | HTML5 视频 / 音频,加 controls 显示控制条 |
<iframe src=""> | 嵌入其他网页 |
<!-- 注释 --> | HTML 注释,不显示在页面 |
<br> / <hr> | 换行 / 水平分割线 |
<pre> | 保留空格和换行,原样显示 |
<blockquote> / <q> | 块级引用 / 行内引用 |
<figure> / <figcaption> | 图文组合及说明 |