HTML 语义
语义HTML使用有意义的标签来描述内容的含义,而不仅仅是外观。语义化让代码更易读、更易于搜索引擎理解和辅助技术解析。
为什么使用语义化?
- SEO优化:搜索引擎能更好地理解页面结构
- 可访问性:屏幕阅读器能准确解读内容
- 可维护性:代码更易阅读和维护
- 一致性:团队协作更高效
语义元素详解
<header> - 页头
定义文档或区块的头部区域。
<header>
<h1>网站标题</h1>
</header> <nav> - 导航
定义导航链接区域。
<nav>
<a href="/">首页</a>
</nav> <main> - 主要内容
定义文档的主要内容区域,一个页面只能有一个。
<main>
<h1>文章标题</h1>
</main> <article> - 文章
定义独立的、可分发的内容块。
<article>
<h2>博客标题</h2>
<p>文章内容...</p>
</article> <section> - 章节
定义文档的章节,通常包含标题。
<section>
<h2>章节标题</h2>
</section> <aside> - 侧边栏
定义与主内容相关的辅助内容。
<aside>
<h3>相关文章</h3>
</aside> <footer> - 页脚
定义文档或区块的底部区域。
<footer>
<p>© 2026 公司名称</p>
</footer> <figure> 和 <figcaption>
定义图表及其标题。
<figure>
<img src="chart.png" alt="图表">
<figcaption>图1:年度销售数据</figcaption>
</figure> <time> - 时间
定义时间或日期。
<time datetime="2026-01-01">2026年1月1日</time> 语义化 vs 非语义化
| 非语义化 | 语义化 |
|---|---|
| <div> | <header>, <nav>, <main>, <footer> |
| <div> | <article>, <section>, <aside> |
| <span> | <time>, <mark> |
交互式示例
在下面的代码编辑器中,尝试使用语义化标签构建页面:
💻 在线代码编辑器
👁️ 预览效果
最佳实践
建议
- 优先使用语义化标签而非大量 <div>
- 每个页面应只有一个 <main> 元素
- <section> 通常应包含标题
- <article> 内的内容应独立有意义
- 合理嵌套语义元素