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

如何在同一行对齐3张带说明文字的响应式图片

问题根因

  • 你给图片类.d-img设置了固定宽度500px,仅3张图片的总宽度就已经远大于外层容器的最大宽度960px,再加上.category设置的30px内边距,整体宽度溢出,页面缩小时元素自然会折行
  • .category同时设置了display: inline-block和float: left,两个布局属性冲突,且浮动布局本身在容器宽度不足时就会自动触发折行
  • 包裹3个图片模块的父容器.inner-inner没有做响应式多列布局适配

解决方法

推荐使用Flex弹性布局实现稳定的同列响应式效果,修改代码如下:

新增/修改CSS样式

/* 给父容器新增flex布局属性 */
.inner-inner {
  display: flex;
  justify-content: space-between;
  gap: 30px; /* 控制图片模块之间的间距,替代原padding */
  max-width: 960px;
  margin: 0 auto;
  /* 如果需要极小窗口下允许折行避免内容过小,可新增以下属性:
  flex-wrap: wrap;
  */
}

/* 修改category样式,删除冲突属性 */
.category {
  flex: 1; /* 3个模块平分父容器宽度 */
  text-align: center;
  /* 删掉原有代码:float: left; display: inline-block; padding:30px; */
}

/* 修改图片样式,实现自适应 */
.d-img {
  width: 100%;
  height: auto; /* 保持图片宽高比不变 */
}

如果需要兼容极低版本浏览器,也可以用百分比布局实现:

.inner-inner {
  max-width: 960px;
  margin: 0 auto;
  /* 清除浮动 */
  overflow: hidden;
}
.category {
  width: 33.33%;
  box-sizing: border-box; /* 把padding计算在宽度内 */
  padding: 0 15px;
  float: left;
  text-align: center;
}
.d-img {
  width: 100%;
  height: auto;
}

修改后3个图片模块会始终保持在同一行,随页面宽度等比缩放,不会出现折行问题。如果需要移动端适配,可给.inner-inner添加flex-wrap: wrap属性,同时给.category设置min-width: 240px,页面缩小到一定程度后会自动折行,避免内容过小无法查看。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 13:36:07