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

如何在React中用CSS Grid实现带间距的列优先网格布局?

解决网格行间距问题(基于列优先数据的React网格)

你的问题在于当前仅为列容器(.board)设置了间距,但列内部的单元格没有配置垂直方向的间距。无需给.cell添加margin,只需调整.column的布局即可实现单元格间的间距且不影响边缘。

修改方案

给.column类添加布局样式,通过gap属性控制列内单元格的垂直间距:

.column {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

或者使用Grid布局也能达到同样效果:

.column {
  display: grid;
  gap: 20px;
}

完整修改后的CSS代码

.App {
  font-family: sans-serif;
  text-align: center;
}

.cell {
  width: 20px;
  height: 20px;
  background-color: bisque;
}

.board {
  display: grid;
  grid-template-columns: repeat(7, 0fr);
  gap: 20px;
}

.column {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

原理说明

  • .board的gap属性控制的是列与列之间的水平间距(因为.board的子元素是.column)。
  • .column新增的gap属性控制的是同一列内单元格之间的垂直间距,gap只会在子元素之间生成间距,不会在容器的上下边缘产生额外空白,完美符合你"仅单元格之间有间距"的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 04:40:34