如何在 javascript 中制作简单的网格

How to make simple grid in javascript

我想用 for 循环制作一个简单的网格,这样下面的代码将创建一个 5(行)* 4(列)的网格。

 for(let i=0;i<20;i++){
 let div = document.createElement('div')
 document.body.appendChild(div)
 div.textContent = i
 }
div{
width:200px;
height:200px;
text-align:center;
border:2px solid red
display:grid;
 grid-column-gap: 50px;
 grid-row-gap: 50px;
}

在问这个问题之前我已经查看了一些文档,但我仍然不知道如何使用 for 循环创建网格,以便项目将遵循我想要的格式。

我希望网格每 4 行显示一次,左边显示在下一行。

输出应如下所示:

1 2 3 4
5 6 7 8 
9 10 11 12
13 14 15 16 
17 18 19 20

任何人,请帮助我!对不起,我不擅长Javascript。

感谢@A Haworth

body { display:grid;
 grid-column-gap: 50px;
 grid-row-gap: 50px;
}
div{
width:200px;
height:200px;
text-align:center;
border:2px solid red
}

它是您要显示为网格的正文(div 的父级)。

所以在正文而不是单个项目上设置网格样式。

您还可以使用 grid-template-columns 告诉它您希望在一行中有多少个项目(即多少列)。在这种情况下,因为您已经固定了每个项目的宽度,所以您只希望它使用项目的宽度。如果你想让它填充可用的 space,父级的宽度,那么你可以使用 1fr 而不是 auto.

for (let i = 0; i < 20; i++) {
  let div = document.createElement('div')
  document.body.appendChild(div)
  div.textContent = i
}
body {
  display: grid;
  grid-column-gap: 50px;
  grid-row-gap: 50px;
  grid-template-columns: repeat(3, auto);
}

div {
  width: 200px;
  height: 200px;
  text-align: center;
  border: 2px solid red;
}
<body>
</body>

for (let i = 1; i <= 5 * 4; i++) {
            let div = document.createElement('div')
            document.body.appendChild(div)
            div.textContent = i
        }
        
div {
            width: 25%;
            height: 50px;
            text-align: center;
            float: left;
        }