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

仅使用Flexbox实现文字在图片下方换行的技术问题求助

搞定Flexbox图片下文字换行的问题!

嘿,我看了你的代码,问题其实很明确——你给外层的.flex-container加了Flex布局,但每个包含图片和文字的.flex-wrap容器没设置垂直方向的Flex布局!默认情况下Flex容器是横向排列(flex-direction: row),所以图片和文字会挤在一行,自然没法让文字跑到图片下面去~

问题根源

你现在的.flex-wrap只是个普通div,里面的img和.text元素默认是流式布局,但外层.flex-container的Flex特性会让.flex-wrap被压缩,导致文字没法换行。而你用text-align: center能让图片对齐,是因为图片作为替换元素,会继承父容器的文本对齐属性,这其实是个“歪打正着”的效果,不是Flex布局的正确用法哦。

解决方案

只需要给.flex-wrap添加Flex布局,并设置为垂直方向排列,同时让内部元素居中对齐:

.flex-wrap {
  display: flex;
  flex-direction: column;
  align-items: center; /* 让图片和文字在容器内水平居中 */
  width: 100px; /* 可选:限制容器宽度,让文字在固定宽度内换行 */
}

.text {
  text-align: center; /* 可选:让文字本身居中,更美观 */
  margin-top: 8px; /* 可选:给图片和文字加一点间距 */
}

再调整一下.flex-container的样式,去掉不需要的属性(用Flex的原生对齐更规范):

.flex-container {
  display: flex;
  justify-content: center;
  gap: 52px;
  /* 去掉flex:1,它在块级容器上作用不大 */
}

修改后的完整CSS

body { 
  font-family: 'Courier New', Courier, monospace; 
}

.flex-container { 
  display: flex; 
  justify-content: center; 
  gap: 52px; 
}

.flex-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100px;
}

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

.title { 
  display: flex; 
  align-items: center; 
  justify-content: center; 
  padding-bottom: 32px; 
  font-size: 36px; 
  font-weight: 900; 
}

.text {
  text-align: center;
  margin-top: 8px;
}

这样修改后,每个图片都会稳稳地在文字上方,文字会根据.flex-wrap的宽度自动换行,完美实现你想要的效果~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 16:29:07