You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现图片水平排列?已用inline-block仍垂直的问题求助

解决图片垂直排列问题,实现水平排布+标题下方展示

嘿,我来帮你搞定这个排版问题!你现在遇到的核心问题是HTML结构和CSS布局的搭配不对,导致图片没法水平排列。咱们一步步来修正:

问题根源分析

你现在把所有图片和对应的标题都塞进了同一个<figure>标签里,而且这个父<figure>还设置了width:100%,再加上每个<figcaption>是display:block(会独占一行),这就导致每个图片和标题都会依次换行,最终变成垂直堆叠的效果。

修正方案

咱们需要把每个图片+标题的组合拆成独立的<figure>单元,再用合适的布局让这些单元水平排列。下面是具体的代码调整:

修正后的HTML

<!-- 新增一个容器来包裹所有独立的figure单元 -->
<div class="figure-container">
  <figure class="item">
    <img src="./img/facebook.png" />
    <figcaption class="caption">Facebook</figcaption>
  </figure>
  <figure class="item">
    <img src="./img/insta.png" />
    <figcaption class="caption">Instagram</figcaption>
  </figure>
  <figure class="item">
    <img src="./img/telefone.png" />
    <figcaption class="caption">Telefone</figcaption>
  </figure>
  <figure class="item">
    <img src="./img/email.png" />
    <figcaption class="caption">Email</figcaption>
  </figure>
</div>

修正后的CSS

/* 用flex布局让子单元水平排列,支持自动换行适配屏幕 */
.figure-container {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem; /* 可选:给每个单元之间添加间距,提升美观度 */
  justify-content: center; /* 可选:让所有单元在容器内水平居中 */
}

figure.item {
  color: #676767;
  background-color: #ffffff;
  width: auto; /* 去掉原来的100%,让宽度由内容决定 */
  margin: 0;
  text-align: center;
  /* 如果不想用flex,也可以保留display: inline-block; 配合父容器的text-align: center; 使用 */
}

.item img {
  width: 100px;
  height: 100px;
}

.caption {
  display: block; /* 保留这个属性,确保标题始终在图片下方 */
}

两种布局方式可选

  1. Flex布局(推荐):上面的代码用了flex,它能轻松实现水平排列,还支持自动换行,适配不同屏幕尺寸,布局控制更灵活。
  2. Inline-block替代方案:如果你不想用flex,可以把.figure-container的样式改成:
.figure-container {
  text-align: center; /* 让inline-block元素水平居中 */
}

figure.item {
  display: inline-block;
  /* 其他样式保持不变 */
}

这样调整后,每个图片和对应的标题会组成一个独立的小单元,所有单元水平排列,标题也会乖乖待在对应图片的下方啦!

内容的提问来源于stack exchange,提问作者rodrigo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:59:01