语义正确的方式是用包裹图片和文字,后者必须是其直接子元素且仅一个;alt属性仅为替代文本,不可替代说明文字;响应式下需控制文字换行与尺寸。

用 <figure></figure> 和 <figcaption></figcaption> 包裹图片和文字
这是语义最正确、浏览器和屏幕阅读器都认的方式。直接把图片和说明文字放进 <figure></figure>,说明文字用 <figcaption></figcaption> 标签包起来,它默认渲染在图片下方(块级、居中),不需要额外写 CSS。
常见错误是只用 <p></p> 或 <div> 挨着放图片和文字——这样没语义,也不利于 SEO 和无障碍访问。
<ul>
<li>
<code><figcaption></figcaption> 必须是 <figure></figure> 的**直接子元素**,且只能有一个(或放在开头/结尾)
<h3></h3> 里,描述放 <p></p> 里,都塞进 <figcaption></figcaption>
<figure> <img src="cat.jpg" alt="一只橘猫蹲在窗台上"> <figcaption>图1:晴天午后,家猫观察窗外飞鸟</figcaption> </figure>
不用语义标签时,靠 CSS 控制文字位置
如果受限于旧项目结构,不能改 HTML 标签,就用 CSS 把文字“钉”在图片下方。关键是让容器形成 BFC,并控制文字块的 display 和 margin。
容易踩的坑:只加 <p></p> 标签却不设 margin-top: 0,导致文字和图片之间多出默认间距;或者忘记给容器设 display: inline-block 或 flex,导致文字换行错位。
立即学习“前端免费学习笔记(深入)”;
将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。
- 给图片外层加一个
<div class="img-wrap">,里面放 <code><img alt="HTML怎么给图片添加文字说明_网页图片下方文字显示【代码】" >和<p class="caption"></p> -
.img-wrap { display: inline-block; }防止文字撑宽整行 .caption { margin: 4px 0 0; font-size: 0.875em; text-align: center; }
<div class="img-wrap"> <img src="dog.jpg" alt="金毛犬在草地上奔跑"> <p class="caption">图2:成年金毛,摄于2024年春</p> </div>
alt 属性不是文字说明的替代方案
alt 是图片的**替代文本**,用于加载失败、SEO 和读屏软件,不是给普通用户看的“下方说明”。它不会显示在页面上(除非图片没加载出来)。
有人误以为写长 alt="这张图展示了……详见下方文字" 就能省掉 <figcaption></figcaption>,这是错的:视觉用户根本看不到 alt 内容,而且重复冗余。
-
alt要简短、准确,描述图片本身(如alt="穿红裙的女性站在咖啡馆门口") - 如果图片是装饰性的,用
alt=""(空字符串),不要删掉这个属性 - 复杂图表或信息图,
alt写概要,详细说明仍需<figcaption></figcaption>或单独段落
响应式场景下文字容易被截断或重叠
当图片宽度随屏幕缩小,而说明文字字号或行高没适配,就会出现文字挤到图片上、或超出容器边界的情况。
关键不是调 font-size,而是控制文字容器的换行行为和最大宽度。
- 给
<figcaption></figcaption>或.caption加word-break: break-word;防止长英文单词撑破容器 - 避免固定
width,改用max-width: 100%;并配合text-align: center; - 小屏下可微调
font-size:用clamp(0.75rem, 0.875rem, 1rem)比媒体查询更轻量
别忘了测试图片在 max-width: 100% + height: auto 下,文字是否还稳稳停在下方——有时候 vertical-align 设为 bottom 能解决基线对齐偏移问题。


















