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

Tailwind Bento布局问题:如何让元素4、5共享同一列?

实现元素4、5同列上下排列且6、7相邻的Tailwind布局方案

方案一:Flex嵌套实现(灵活适配元素高度)

这种方式适合元素4、5高度不同的场景,通过将二者放入垂直排列的Flex容器,再嵌入Grid布局的对应列中:

<div class="grid grid-cols-3 gap-4">
  <div class="bg-blue-500 p-4">元素1</div>
  <div class="bg-blue-500 p-4">元素2</div>
  <div class="bg-blue-500 p-4">元素3</div>
  <!-- 垂直排列元素4和5的容器 -->
  <div class="flex flex-col gap-4">
    <div class="bg-green-500 p-4">元素4</div>
    <div class="bg-green-500 p-4">元素5</div>
  </div>
  <div class="bg-yellow-500 p-4">元素6</div>
  <div class="bg-yellow-500 p-4">元素7</div>
</div>

关键逻辑:

  • 父容器用grid grid-cols-3 gap-4构建3列网格,设置列间距。
  • 元素4、5的容器通过flex flex-col gap-4实现垂直排列,且每个元素仅占据自身内容高度,不会拉伸填满整列。
  • 元素6、7自动填充网格的第二、第三列,保持相邻排列。

方案二:网格行跨度控制(高度对齐场景)

如果需要元素6、7的总高度与元素4+5的高度一致,可以直接通过Grid的行跨度属性实现:

<div class="grid grid-cols-3 grid-rows-3 gap-4">
  <div class="bg-blue-500 p-4">元素1</div>
  <div class="bg-blue-500 p-4">元素2</div>
  <div class="bg-blue-500 p-4">元素3</div>
  <div class="bg-green-500 p-4">元素4</div>
  <div class="bg-yellow-500 p-4 row-span-2">元素6</div>
  <div class="bg-yellow-500 p-4 row-span-2">元素7</div>
  <div class="bg-green-500 p-4">元素5</div>
</div>

关键逻辑:

  • 父容器设置grid-rows-3构建3行网格。
  • 元素4占据第2行第1列,元素5占据第3行第1列,各自仅占1行高度。
  • 元素6、7通过row-span-2属性,同时占据第2、3行的对应列,高度自动匹配元素4+5的总高度,且保持相邻排列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 12:45:18