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

Tailwind双Grid组件垂直分隔线与盒子对齐问题求助

实现两个独立Grid的分隔线与盒子对齐

原始代码

<div class="grid grid-cols-5 divide-x divide-gray-700 text-center">
  <div>Col</div>
  <div>Col</div>
  <div>Col</div>
  <div>Col</div>
  <div>Col</div>
</div>

<div class="grid grid-cols-5 gap-4">
  <div class="h-20 border bg-gray-300"></div>
  <div class="h-20 border bg-gray-300"></div>
  <div class="h-20 border bg-gray-300"></div>
  <div class="h-20 border bg-gray-300"></div>
  <div class="h-20 border bg-gray-300"></div>
</div>

当前第一个Grid使用divide-x添加垂直分隔线,但未设置间隙,导致分隔线与第二个带gap-4的Grid的盒子空隙无法对齐,要求必须保留两个独立Grid,不能合并。

解决方案

让两个Grid保持一致的列布局(包括相同间隙),通过子元素右侧边框替代divide-x实现对齐:

<!-- 第一个Grid:设置相同gap,用border-r模拟分隔线 -->
<div class="grid grid-cols-5 gap-4 text-center">
  <div class="border-r border-gray-700">Col</div>
  <div class="border-r border-gray-700">Col</div>
  <div class="border-r border-gray-700">Col</div>
  <div class="border-r border-gray-700">Col</div>
  <div>Col</div>
</div>

<!-- 第二个Grid保持不变 -->
<div class="grid grid-cols-5 gap-4">
  <div class="h-20 border bg-gray-300"></div>
  <div class="h-20 border bg-gray-300"></div>
  <div class="h-20 border bg-gray-300"></div>
  <div class="h-20 border bg-gray-300"></div>
  <div class="h-20 border bg-gray-300"></div>
</div>

原理

  • 给第一个Grid添加gap-4,使其列宽、间隙与第二个Grid完全匹配
  • 移除divide-x,给前4个子元素添加右侧边框,边框位置正好对应第二个Grid盒子之间的间隙,实现精准对齐

如果想简化重复代码,可使用:not(:last-child)选择器:

<div class="grid grid-cols-5 gap-4 text-center">
  <div class="border-r border-gray-700:not(:last-child)">Col</div>
  <div class="border-r border-gray-700:not(:last-child)">Col</div>
  <div class="border-r border-gray-700:not(:last-child)">Col</div>
  <div class="border-r border-gray-700:not(:last-child)">Col</div>
  <div>Col</div>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:50:23