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

Grid容器与内部元素间存在空白问题排查求助

问题:Grid容器边框与内部方块间存在空白

运行下方代码后,Grid容器边框和内部方块边框之间会出现空白,全屏状态下侧边也会有这个问题:

原代码

CSS

.board {
  display: grid;
  border: 1px solid black;
  flex: 1;
  grid-template-columns: repeat(2,1fr);
  height: 500px;
  box-sizing: border-box;
}

.square {
    border: 1px solid black;
    height: auto;
}

.boards-container {
    display: flex;
    gap: 16px;
    padding: 16px;
}

HTML

<div class="boards-container">
  <div class="board p-board"> 
        <div id="0-0" class="square"></div>
        <div id="0-1" class="square"></div>
        <div id="1-0" class="square"></div>
        <div id="1-1" class="square"></div>
            
   </div>
        
 <div class="board c-board">
        <div id="0-0" class="square"></div>
        <div id="0-1" class="square"></div>
        <div id="1-0" class="square"></div>
        <div id="1-1" class="square"></div>

</div>
</div>

问题截图

问题截图

原因及解决方法

成因

  • 仅为Grid容器设置了列模板,未设置行模板,行高默认由内容决定(方块为空时无法自动填满容器高度)
  • .square未设置box-sizing: border-box,边框会占据额外空间,导致元素无法完全贴合容器内部
  • 容器宽度分配后,方块的边框未纳入尺寸计算,导致侧边出现间隙

修复后的代码

修改后即可消除空白:

.board {
  display: grid;
  border: 1px solid black;
  flex: 1;
  grid-template-columns: repeat(2,1fr);
  /* 添加行模板,让两行平分容器高度 */
  grid-template-rows: repeat(2, 1fr);
  height: 500px;
  box-sizing: border-box;
}

.square {
    border: 1px solid black;
    height: auto;
    /* 让边框纳入元素尺寸计算 */
    box-sizing: border-box;
}

.boards-container {
    display: flex;
    gap: 16px;
    padding: 16px;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 08:24:52