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

如何在Flexbox布局中实现中间两个元素上下排列

解决方案

要实现第2、3个元素上下排列,同时保持第1、4个元素位置不变,只需对结构和样式做以下调整:

1. 修改HTML结构

把第2、3个flex-items包裹进一个新的中间容器,让中间区域成为独立的垂直Flex容器:

<div class="flex-container">
   <div class="flex-items"></div>
   <div class="flex-middle">
      <div class="flex-items"></div>
      <div class="flex-items"></div>
   </div>
   <div class="flex-items"></div>
</div>

2. 调整CSS样式

原水平Flex容器保持不变,给中间容器设置垂直布局并让它占据中间可用空间:

.flex-container {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: stretch;
  align-content: stretch;
}

/* 中间容器:垂直排列内部元素,占据剩余空间 */
.flex-middle {
  display: flex;
  flex-direction: column;
  flex-grow: 1; /* 和原第2、3元素的flex-grow总和一致,保证中间区域宽度不变 */
}

.flex-items:nth-child(1) {
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
}

/* 中间容器内的子元素保持原有伸缩属性 */
.flex-middle .flex-items {
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
}

.flex-items:nth-child(3) {
  flex-grow: 0;
  flex-shrink: 1;
  flex-basis: auto;
}

关键说明

  • 新增的flex-middle容器通过flex-direction: column让内部第2、3元素垂直排列;
  • flex-grow:1保证中间区域宽度和原布局一致,替代原第2、3元素的flex-grow总和;
  • 第1、4元素保持flex-grow:0,固定在左右两侧。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 02:57:16