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

如何用Flex/Grid实现动态行高两列布局并填充间隙广告Tile

两列动态高度布局填充广告Tile的实现问题

我尝试用HTML Grid或Flexbox实现一个两列布局容器,其中每个行项的高度是动态的,当布局中出现间隙时,需要用原列表以外的新行项(广告Tile)填充这些间隙。

示例1:所有图片高度一致的场景

假设我有6个列表项,要在两列容器中展示,代码如下:

CSS代码

.row {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
}

.column {
  flex-basis: 50%;
}

HTML代码

<div class="row">
  <div class="column" style="background-color:#aaa;">
    <img src="https://revistacarro.com.br/wp-content/uploads/2021/03/aston-vantage-safety-car.jpg" alt="Girl in a jacket" width="100" height="100">
  </div>
  <div class="column" style="background-color:#bbb;">
    <img src="https://revistacarro.com.br/wp-content/uploads/2021/03/aston-vantage-safety-car.jpg" alt="Girl in a jacket" width="100" height="100">
  </div>
  <div class="column" style="background-color:#bbb;">
    <img src="https://revistacarro.com.br/wp-content/uploads/2021/03/aston-vantage-safety-car.jpg" alt="Girl in a jacket" width="100" height="100">
  </div>
  <div class="column" style="background-color:#bbb;">
    <img src="https://revistacarro.com.br/wp-content/uploads/2021/03/aston-vantage-safety-car.jpg" alt="Girl in a jacket" width="100" height="100">
  </div>
  <div class="column" style="background-color:#bbb;">
    <img src="https://revistacarro.com.br/wp-content/uploads/2021/03/aston-vantage-safety-car.jpg" alt="Girl in a jacket" width="100" height="100">
  </div>
  <div class="column" style="background-color:#bbb;">
    <img src="https://revistacarro.com.br/wp-content/uploads/2021/03/aston-vantage-safety-car.jpg" alt="Girl in a jacket" width="100" height="100">
  </div>
</div>

示例2:图片高度不一致的实际场景

实际使用中图片高度可能不同,示例代码如下:

CSS代码

.row {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-start;
}

.column {
  flex-basis: 50%;
}

HTML代码

<div class="row">
  <div class="column" style="background-color:#aaa;">
    <img src="https://revistacarro.com.br/wp-content/uploads/2021/03/aston-vantage-safety-car.jpg" alt="Girl in a jacket" width="100" height="100">
  </div>
  <div class="column" style="background-color:#bbb;">
    <img src="https://revistacarro.com.br/wp-content/uploads/2021/03/aston-vantage-safety-car.jpg" alt="Girl in a jacket" width="100" height="50">
  </div>
  <div class="column" style="background-color:#bbb;">
    <img src="https://revistacarro.com.br/wp-content/uploads/2021/03/aston-vantage-safety-car.jpg" alt="Girl in a jacket" width="100" height="100">
  </div>
  <div class="column" style="background-color:#bbb;">
    <img src="https://revistacarro.com.br/wp-content/uploads/2021/03/aston-vantage-safety-car.jpg" alt="Girl in a jacket" width="100" height="50">
  </div>
  <div class="column" style="background-color:#bbb;">
    <img src="https://revistacarro.com.br/wp-content/uploads/2021/03/aston-vantage-safety-car.jpg" alt="Girl in a jacket" width="100" height="100">
  </div>
  <div class="column" style="background-color:#bbb;">
    <img src="https://revistacarro.com.br/wp-content/uploads/2021/03/aston-vantage-safety-car.jpg" alt="Girl in a jacket" width="100" height="100">
  </div>
</div>

需求说明

我希望行项不会占用整行高度,能像瓷砖一样紧凑排列;额外要求是在列的末尾(左侧或右侧均可)的间隙中填充一个新的广告Tile。

以下是预期效果示例:
两列布局填充广告Tile示例

提前感谢帮助!


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:35:13