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

如何使用Flexbox让嵌套Div结构中的内层Div换行至新行

需求说明

我希望内层div(Mem 3)能换行至新行,位于Mem 1的正下方,且无论如何都不想改变div结构。

当前效果:
当前效果

期望效果:
期望效果

现有代码

CSS

.flex-container {
  display: flex;
  flex-wrap: wrap;
}

.flex-child {
  border: solid blue;
}

.flex-fgc {
  border: solid blue;
}

.flex-inner-gc {
  border: solid blue;
}

HTML

<div class='flex-container'>
  <div class='flex-child'>
    Mem 1
  </div>
  <div class='flex-fgc'>
    <div>
      Mem 2
    </div>
    <div class='flex-inner-gc'>
      Mem 3
    </div>
  </div>
</div>

我曾尝试为flex-inner-gc设置flex: 1 1 100;属性,但未达到预期效果。

解决方案

无需修改HTML结构,只需调整CSS即可实现需求:

.flex-container {
  display: flex;
  flex-wrap: wrap;
}

.flex-child {
  border: solid blue;
}

.flex-fgc {
  border: solid blue;
  display: contents; /* 让该容器的子元素直接成为外层flex容器的子项 */
}

.flex-inner-gc {
  border: solid blue;
  flex: 0 0 100%; /* 强制占据整行宽度,触发换行 */
}

实现原理

  • display: contents:消除.flex-fgc作为flex子项的独立身份,使其内部的Mem2和Mem3直接参与外层.flex-container的布局。
  • flex: 0 0 100%:强制Mem3占据整行宽度,触发flex容器的换行规则,让它自动换行到Mem1的正下方。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:35:09