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

如何实现默认2列、窄屏自动合并为1列的CSS Grid布局?

实现自适应的CSS Grid 2列转1列布局

你可以通过两种方式实现这个需求,根据场景选择即可:

方法1:媒体查询(精确控制断点)

先设置默认的2列布局,再通过媒体查询指定当容器宽度不足时切换为1列:

.grid-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem; /* 可选,添加子元素间距 */
}

/* 当视口/容器宽度小于600px时,切换为1列 */
@media (max-width: 600px) {
  .grid-container {
    grid-template-columns: 1fr;
  }
}

你可以根据实际需求调整max-width的阈值(比如改成500px),确保在容器宽度不足以容纳2列时触发布局切换。

方法2:自动适配布局(无需手动设置断点)

使用repeat(auto-fit, minmax())语法,让Grid自动根据容器宽度调整列数,无需写媒体查询:

.grid-container {
  display: grid;
  /* 每列最小宽度300px,最大占满可用空间;自动适配列数 */
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1rem;
}

原理说明:

  • minmax(300px, 1fr)定义每列的最小宽度为300px,最大宽度为平分容器的剩余空间
  • auto-fit会自动计算容器能容纳多少个符合最小宽度的列,当容器宽度小于300px * 2 = 600px时,就只能放下1列,自动切换为单列布局

你可以根据子元素的实际尺寸调整minmax里的最小宽度值,确保布局符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 14:25:02