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

如何使网格单元格随网格尺寸变化自动填充全部空间?

解决方法

要让单元格随网格尺寸变化自动填满容器,你需要调整容器布局并修改grid-square的样式,具体如下:

容器样式调整(必要前提)

原有的flex布局无法简单实现动态均分网格,建议改用CSS Grid布局,同时通过CSS变量动态控制行列数:

#container {
  display: grid;
  background-color: rgba(49, 49, 49, 0.281);
  width: 50vw;
  height: 50vh;
  grid-template-columns: repeat(var(--grid-size), 1fr);
  grid-template-rows: repeat(var(--grid-size), 1fr);
}

grid-square类需要添加/修改的样式

去掉固定的width: 50%和aspect-ratio,改为让单元格完全填满网格分配的空间:

.grid-square {
  background-color: white;
  width: 100%;
  height: 100%;
}

配合JS动态设置网格尺寸

修改createDivs函数,添加CSS变量赋值并清空容器避免重复生成:

function createDivs(size) {
  container.innerHTML = '';
  container.style.setProperty('--grid-size', size);
  for (let i = 0; i < size * size; i++) {
    const newDiv = document.createElement("div");
    newDiv.classList.add("grid-square");
    newDiv.addEventListener("mouseover", changeColor);
    container.appendChild(newDiv);
  }
}

这样无论传入的size参数是多少,单元格都会自动均分容器的宽高,填满整个网格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 02:40:32