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

如何用Flexbox实现含固定卡片与双高Widget的响应式布局

解决方案

方案一:CSS Grid(推荐)

Grid布局天生适配这类跨行/跨列的布局需求,代码简洁直观,完全不需要JavaScript,也不会影响Widget内部的滚动功能。

修改后的CSS代码:

.container {
  margin: 50px 300px;
  display: grid;
  gap: 20px; /* 统一设置行列间距 */
  min-width: 320px; /* 2列布局触发宽度 */
  max-width: 490px; /* 3列布局触发宽度 */
  border: 3px solid rgb(0, 22, 117);
}

.card {
  width: 150px;
  height: 100px;
  background-color: bisque;
}

.widget {
  height: 220px; /* card height * 2 + row-gap */
  width: 150px;
  background-color: rgb(134, 204, 245);
  grid-row: span 2; /* 强制Widget占据2行高度 */
}

/* 2列布局规则 */
@media (min-width: 320px) and (max-width: 489px) {
  .container {
    grid-template-columns: repeat(2, 150px);
  }
}

/* 3列布局规则 */
@media (min-width: 490px) {
  .container {
    grid-template-columns: repeat(3, 150px);
  }
}

HTML结构保持你原有的顺序即可,Grid会自动将Widget放在第一列并占据两行,其他卡片会自动填充剩余空间,不会出现空白区域。


方案二:纯Flexbox实现

Flexbox是一维布局,要实现跨行效果需要通过嵌套容器结合媒体查询模拟:

修改后的CSS代码:

.container {
  margin: 50px 300px;
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  min-width: 320px;
  max-width: 490px;
  border: 3px solid rgb(0, 22, 117);
}

.card {
  width: 150px;
  height: 100px;
  background-color: bisque;
}

.widget {
  height: 220px;
  width: 150px;
  background-color: rgb(134, 204, 245);
}

/* 2列布局:将Widget与前2张卡片归为一组 */
@media (min-width: 320px) and (max-width: 489px) {
  .container {
    flex-direction: column;
    flex-wrap: wrap;
    max-height: 1000px; /* 设置足够大的高度让内容换行 */
  }
  .widget { order: 1; }
  .card:nth-child(2), .card:nth-child(3) { order: 2; }
  .card:nth-child(n+4) { order: 3; }
}

/* 3列布局:将Widget与前4张卡片归为一组 */
@media (min-width: 490px) {
  .container {
    flex-direction: column;
    flex-wrap: wrap;
    max-height: 1000px;
  }
  .widget { order: 1; }
  .card:nth-child(2), .card:nth-child(3), .card:nth-child(4), .card:nth-child(5) { order: 2; }
  .card:nth-child(n+6) { order: 3; }
}

该方案通过将主容器设为纵向排列并换行,利用order属性调整元素顺序,让Widget和对应数量的卡片排在同一列区域,以此模拟跨行效果。不过相比Grid,Flex方案代码复杂度更高,需要精确控制元素顺序和容器高度。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:20:33