贝利信息

如何让 Flex 容器中的左侧 div 自动撑满高度并完整填充背景色

日期:2026-01-15 00:00 / 作者:聖光之護

当使用 flex 布局时,若右侧内容较高而左侧 div 背景色未填满,通常是因为 `align-items: center` 限制了子项垂直对齐方式;改为 `stretch` 即可使左右两栏等高并完整渲染背景色。

在 Flex 布局中,align-items 属性控制主轴(此处为垂直方向,因 flex-direction: row)上子元素的对齐方式。默认值为 stretch,它会让所有子元素自动拉伸以填满容器的交叉轴(即高度)。但你的 .container 中显式设置了 align-items: center,这会强制 .left 和 .right 在垂直方向居中对齐——导致 .left 高度仅包裹其内部 元素(通常约 16–20px),无法匹配 .right 的实际高度,因此红色背景无法“撑满”。

✅ 正确做法是将 align-items: center 替换为 align-items: stretch(或直接删除该声明,因其本就是 flex 默认行为):

.container {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: stretch; /* ✅ 关键修复:使子项在交叉轴(高度)上拉伸 */
  border: 1px solid #bebebe;
  border-radius: 5px;
}

.left {
  background-color: red;
  padding: 0 8px;
  flex-grow: 1;
  display: flex;
  align-items: center;     /* 可选:让 radio 水平垂直居中 */
  justify-content: center;
}

.right {
  width: 100%;
  background-color: blue;
  padding: 8px;            /* 推荐添加内边距,提升可读性 */
}

⚠️ 注意事项:

这样修改后,.left 将始终与 .right 保持等高,红色背景完整覆盖整个左侧区域,无论右侧内容多少行。