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

如何让Flexbox行内并排的多个Div保持相同高度?

不用表格实现等高两列布局的解决方案

嘿,这个需求太常见啦!不用表格的话,用CSS Flexbox或者Grid就能轻松搞定,完美解决列高度参差不齐的问题,我给你两种实用的实现方案:

方案一:Flexbox布局(兼容性较好)

Flexbox是目前实现这类布局的首选,它天然支持子元素高度对齐,代码也很简洁:

HTML结构

<div class="box-container">
  <div class="box">
    <div class="col1">这里是长度不固定的文本,可能会很长很长,测试一下高度会不会被拉伸</div>
    <div class="col2">这是短文本内容</div>
  </div>
  <div class="box">
    <div class="col1">短文本</div>
    <div class="col2">这里是更长的文本内容,要确保和左边的col1高度保持一致,不能出现参差不齐的情况</div>
  </div>
</div>

CSS样式

/* 可选:如果要让多个.box横向排列,就给容器加这个 */
.box-container {
  display: flex;
  flex-wrap: wrap;
  gap: 20px; /* 多个.box之间的间距 */
}

.box {
  display: flex; /* 把.box设为Flex容器 */
  width: 100%; /* 单个.box占满一行,横向排列的话可以设为50%或者固定宽度 */
  margin-bottom: 15px;
}

.col1, .col2 {
  flex: 1; /* 让两列平分可用宽度,也可以用flex: 0 0 50%固定各占一半 */
  padding: 12px;
  border: 1px solid #eee; /* 加边框方便看效果,实际可以去掉 */
}

原理:Flex容器中的子元素(也就是.col1和.col2)默认会沿垂直方向拉伸,所以不管文本长度如何,同一.box里的两列高度都会自动保持一致。


方案二:Grid布局(写法更简洁)

Grid布局是CSS3的新特性,对于这种二维布局来说更直观,代码量更少:

CSS样式(HTML结构和上面一致)

.box {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 定义两列等宽 */
  gap: 10px; /* 两列之间的间距 */
  margin-bottom: 15px;
}

.col1, .col2 {
  padding: 12px;
  border: 1px solid #eee;
}

原理:Grid网格中的单元格默认高度会自动匹配同一行中最高的单元格,所以完全不用担心高度不一致的问题,写法比Flexbox更直接。


补充说明

这两种方案都完全不需要依赖表格,而且兼容性非常好:

  • Flexbox支持到IE10及以上(IE10需要加前缀)
  • Grid支持到Edge 16、Chrome 57、Firefox 52及以上,现代浏览器都能完美运行

如果你的项目不需要兼容特别老旧的浏览器,Grid布局会是更优的选择,代码更简洁易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:42:46