HTML5 语义元素

"语义元素"指一看名字就知道含义的标签,如 <header> 表头、<footer> 页脚、<nav> 导航。HTML5 提供了整套语义标签,用来替代满屏无意义的 <div>,让结构更清晰、利于 SEO 与无障碍阅读。

常用语义元素

元素含义
header页眉:标题、logo、导航所在
nav导航链接集合
main页面主体内容(每页一个)
section章节/分区,通常带标题
article独立成文的内容:文章、评论、帖子
aside侧边栏、补充说明
footer页脚:版权、联系方式
figure / figcaption插图及其说明
mark高亮文字
time时间,可带 datetime 属性
details / summary可折叠的详情区

典型页面布局

把常见页面骨架用语义标签搭出来,浏览器默认样式与 div 类似,但结构语义完全不同。

<header>
    <h1>我的博客</h1>
    <nav><a href="#">首页</a> | <a href="#">关于</a></nav>
</header>
<main>
    <article>
        <h2>HTML5 语义化入门</h2>
        <p>本文讲解语义标签的用法……</p>
        <time datetime="2024-06-01">2024年6月1日</time>
    </article>
</main>
<aside>相关推荐</aside>
<footer>版权所有 © 2024</footer>

在浏览器中显示为:从上到下依次是标题栏、文章正文、侧栏和版权行(默认无边框样式,可用 CSS 美化)。

details 折叠区

details 默认收起,点 summary 展开,加 open 属性则默认展开,无需写 JS。

<details open>
    <summary>什么是语义化?</summary>
    <p>语义化是用含义明确的标签组织页面,
       让机器和人都能读懂结构。</p>
</details>

在浏览器中显示为:默认展开显示说明文字,点击标题行可收起/展开。

语义化三大价值

  • 可读性:代码结构一目了然,便于团队维护。
  • SEO:搜索引擎能更好地识别正文、标题层级。
  • 无障碍:读屏软件可据标签跳转到 main、nav 等区域。

易错点

section 通常应包含一个标题(h1~h6),不要拿它当普通容器;② 纯样式的包装仍用 <div>,不必强行全部语义化;③ header/footer 可在整页用,也能在 article 内用(表示文章自己的头尾);④ 老版本 IE 不识别这些标签,如需兼容可引入 html5shiv 脚本并给标签加 display:block

小结:用 header/nav/main/article/section/aside/footer 组织页面骨架,用 figure/time/details 丰富内容语义,结构清晰、SEO 友好、易维护。

笔记加载中…