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

CSS Grid实现井字棋时添加居中属性致边框错乱的解决方法

解决井字棋网格元素居中且边框正常的问题

我明白你碰到的问题了——给容器加了justify-items:center和align-items:center后,原本规整的网格边框变得错乱,但不加这两个属性的话,单元格里的'X'又没法居中显示。

这背后的原因是:justify-items和align-items是控制网格项本身在网格单元格内的位置,你的.item元素默认会根据内容收缩尺寸,当它被居中后,就不再填满整个网格单元格,边框自然就跟着“缩”回去,看起来就乱了。

正确的思路是把居中逻辑放到网格项内部,让网格项本身保持填满单元格的状态,只让里面的内容居中。具体修改如下:

修改后的CSS代码

#container { 
  display: grid; 
  grid-template: 100px 100px 100px / 100px 100px 100px; 
  justify-content: center; 
  /* 移除容器上的这两个属性,避免网格项收缩 */
  /* justify-items: center; */
  /* align-items: center; */
} 

.item { 
  border-style: solid; 
  border-width: thin; 
  font-size: 80px; 
  /* 给每个网格项设置弹性布局,让内部内容居中 */
  display: flex;
  justify-content: center;
  align-items: center;
  /* 可选:去掉a标签默认的下划线,让界面更整洁 */
  text-decoration: none;
}

为什么这样有效?

  • .item元素会保持填满整个网格单元格的状态,边框自然就能正常铺满每个格子
  • 通过给.item添加display:flex+justify-content:center+align-items:center,让里面的'X'在单元格内垂直水平居中,完全不会影响边框的显示

内容的提问来源于stack exchange,提问作者Plínio Helpa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:42:27