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

如何实现桌面端等高行网格及小屏幕下列堆叠布局?

实现两列等高行网格的响应式布局方案

方法一:CSS Grid(最简洁直观)

CSS Grid天生支持同一行内的单元格等高,是解决这类问题的最优方案。

HTML 结构

<div class="grid-container">
  <div class="grid-item">内容较少的项</div>
  <div class="grid-item">内容较多的项,高度会自动撑开整行高度</div>
  <div class="grid-item">另一行内容少的项</div>
  <div class="grid-item">另一行内容多的项,和左侧项高度一致</div>
</div>

CSS 代码

.grid-container {
  display: grid;
  /* 桌面端两列平分宽度 */
  grid-template-columns: 1fr 1fr;
  /* 可选:添加列间距 */
  gap: 20px;
  padding: 20px;
}

.grid-item {
  /* 可选:添加内边距、边框美化 */
  padding: 15px;
  border: 1px solid #eee;
}

/* 小屏幕下堆叠成单列 */
@media (max-width: 768px) {
  .grid-container {
    grid-template-columns: 1fr;
  }
}

关键说明:Grid布局中,同一行的所有单元格高度会自动匹配该行最高元素的高度,无需额外设置。


方法二:Flexbox(兼容旧浏览器场景)

如果需要兼容不支持Grid的旧浏览器,可以用Flexbox实现,需要按行分组。

HTML 结构

<div class="flex-container">
  <div class="flex-row">
    <div class="flex-item">内容较少的项</div>
    <div class="flex-item">内容较多的项,高度会和左侧一致</div>
  </div>
  <div class="flex-row">
    <div class="flex-item">另一行内容少的项</div>
    <div class="flex-item">另一行内容多的项,高度和左侧一致</div>
  </div>
</div>

CSS 代码

.flex-row {
  display: flex;
  /* 桌面端两列平分宽度 */
  gap: 20px;
  margin-bottom: 20px;
  padding: 0 20px;
}

.flex-item {
  /* 让子元素平分宽度,且自动拉伸高度 */
  flex: 1;
  padding: 15px;
  border: 1px solid #eee;
}

/* 小屏幕下堆叠成单列 */
@media (max-width: 768px) {
  .flex-row {
    flex-direction: column;
  }
  .flex-item {
    margin-bottom: 20px;
  }
  .flex-row:last-child .flex-item:last-child {
    margin-bottom: 0;
  }
}

关键说明:Flex容器的align-items默认值是stretch,所以子元素会自动填充容器高度,实现同一行等高。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:53:26