首页 / HTML5 入门教程 / 图像 figure 与 figcaption

HTML5 入门教程

图像 figure 与 figcaption

本教程共 110 篇 · 第 37 篇 · 更新于 2026-07-28 · 约 5 分钟阅读

HTML5HTML5 入门教程figurefigcaption图片说明语义化可访问性

37. 图像 figure 与 figcaption

本节目标:学会用 <figure><figcaption> 给图片添加语义化的说明文字,让图片和标题形成关联。

图片加说明文字是个常见需求。但说明文字和图片之间如果没有语义关联,屏幕阅读器就不知道它们是一组的。

基本结构

<figure>
  <img src="sunset.jpg" alt="日落时分的海滩" />
  <figcaption>图 1:日落时分的海滩,摄于三亚</figcaption>
</figure>

<figure> 是容器,<figcaption> 是说明文字。它们形成了一组语义关联的内容。

为什么不用 div + p

你可能会想,用 <div><p> 不也能实现同样的效果吗?

<!-- 视觉上一样,但语义上不关联 -->
<div class="figure">
  <img src="sunset.jpg" alt="日落时分的海滩" />
  <p>图 1:日落时分的海滩,摄于三亚</p>
</div>

区别在于语义层面:

  • <figure> 告诉浏览器和辅助技术:这是一个独立的内容单元
  • <figcaption> 告诉浏览器:这段文字是前面图片的标题/说明
  • 屏幕阅读器会朗读:“图片:日落时分的海滩。图 1:日落时分的海滩,摄于三亚”

figure 里可以放什么

<figure> 不局限于图片。任何独立的内容单元都可以用它包裹:

<!-- 图片 -->
<figure>
  <img src="chart.png" alt="销售趋势图" />
  <figcaption>图 2:季度销售趋势</figcaption>
</figure>

<!-- 代码块 -->
<figure>
  <pre><code>console.log("Hello");</code></pre>
  <figcaption>代码示例 1:打印 Hello</figcaption>
</figure>

<!-- 引用 -->
<figure>
  <blockquote>
    <p>Stay hungry, stay foolish.</p>
  </blockquote>
  <figcaption>—— 史蒂夫·乔布斯</figcaption>
</figure>

<!-- 视频 -->
<figure>
  <video src="demo.mp4" controls></video>
  <figcaption>产品演示视频</figcaption>
</figure>

figcaption 的位置

<figcaption> 可以放在 <figure> 的开头或结尾:

<!-- 说明在前 -->
<figure>
  <figcaption>图 3:系统架构</figcaption>
  <img src="architecture.png" alt="系统架构图" />
</figure>

<!-- 说明在后(更常见) -->
<figure>
  <img src="architecture.png" alt="系统架构图" />
  <figcaption>图 3:系统架构</figcaption>
</figure>
Note

一个 <figure> 只能有一个 <figcaption>

多个图片共享一个 figcaption

如果一组图片共享一个说明:

<figure>
  <img src="photo1.jpg" alt="产品正面" />
  <img src="photo2.jpg" alt="产品侧面" />
  <img src="photo3.jpg" alt="产品背面" />
  <figcaption>图 4:产品多角度展示</figcaption>
</figure>

和 alt 的关系

alt<figcaption> 承担不同的角色:

  • alt:图片无法显示时的替代文本,描述图片内容
  • <figcaption>:图片的标题/说明,对所有用户可见

它们的内容不应该重复。如果图片已经在正文中详细描述了,alt 可以简短些,<figcaption> 写编号和标题。

<figure>
  <img src="team.jpg" alt="研发团队在办公室" />
  <figcaption>图 5:研发团队在办公室讨论方案</figcaption>
</figure>

实际应用场景

文章配图

<article>
  <h2>产品发布</h2>
  <p>我们很高兴地宣布...</p>

  <figure>
    <img src="product-launch.jpg" alt="发布会现场" width="800" height="450" />
    <figcaption>图 1:产品发布会现场</figcaption>
  </figure>

  <p>现场气氛热烈...</p>
</article>

图片画廊

<div class="gallery">
  <figure>
    <img src="nature-1.jpg" alt="山间小溪" />
    <figcaption>山间小溪</figcaption>
  </figure>

  <figure>
    <img src="nature-2.jpg" alt="秋日森林" />
    <figcaption>秋日森林</figcaption>
  </figure>

  <figure>
    <img src="nature-3.jpg" alt="雪山日出" />
    <figcaption>雪山日出</figcaption>
  </figure>
</div>

数据图表

<figure>
  <img src="sales-chart.png"
       alt="2026年Q1-Q4销售额柱状图,详细数据见正文表格" />
  <figcaption>图 6:2026年季度销售额对比</figcaption>
</figure>

样式控制

<figure><figcaption> 可以用 CSS 自由样式化:

figure {
  margin: 1.5em 0;
  border: 1px solid #eee;
  padding: 10px;
  border-radius: 8px;
}

figcaption {
  text-align: center;
  color: #666;
  font-size: 0.9em;
  margin-top: 8px;
}

小结

标签作用
<figure>包裹独立内容单元(图片、代码、视频等)
<figcaption>为 figure 内容提供标题/说明

<figure> + <figcaption> 是 HTML 中给内容加说明的标准方式。语义清晰、可访问性好、SEO 友好。

模块四到此结束。第 38 章是回顾测验,由后续流程处理。