如何使用div制作40x40网格?

abe*_*out 8 html javascript css

我基本上尝试使用javascript在我的html文档中创建一个40x40红格的div.

这是我的循环:

for(var i = 0; i < 40; i++) {
        for(var j = 0; j< 40; j++) {
            var div = document.createElement("div");
            div.style.width = "25px";
            div.style.height = "25px";
            div.style.background = "red";
        }
        var jump = document.createElement("br");
        document.getElementById("container").appendChild(jump);
        document.getElementById("container").appendChild(div);
    }
Run Code Online (Sandbox Code Playgroud)

问题是我似乎无法让它形成我创建的所有div的正方形.容器是1000 x 1000像素.谢谢

Hou*_*mam 5

你需要的只是将最后3行放在内部循环中(不在外部循环内):

for(var i = 0; i < 40; i++) {
    for(var j = 0; j< 40; j++) {
        var div = document.createElement("div");
        div.style.width = "25px";
        div.style.height = "25px";
        div.style.background = "red";

        var jump = document.createElement("br");
        document.getElementById("container").appendChild(jump);
        document.getElementById("container").appendChild(div);
    }
}
Run Code Online (Sandbox Code Playgroud)

另外,不要忘记将'display'设置为'inline-block':

div.style.display = "inline-block";
Run Code Online (Sandbox Code Playgroud)

或者,您必须使用'float'属性:

div.style.float = "left";
Run Code Online (Sandbox Code Playgroud)

编辑:

使用row-div对一行中的每个40个单元格进行分组:

for(var i = 0; i < 40; i++) {
    var row = document.createElement("div");
    for(var j = 0; j< 40; j++) {
        var cell = document.createElement("div");
        cell.style.width = "25px";
        cell.style.height = "25px";
        cell.style.background = "red";
        cell.style.display = "inline-block"

        row.appendChild(cell);
    }
    document.getElementById("container").appendChild(row);
}
Run Code Online (Sandbox Code Playgroud)

  • 中断不应该在外循环中而不是在每个div之后? (2认同)

j08*_*691 4

我相信您想要的是以下内容:

for (var i = 0; i < 40; i++) {
    for (var j = 0; j < 40; j++) {
        var div = document.createElement("div");
        div.style.width = "25px";
        div.style.height = "25px";
        div.style.background = "red";
        document.getElementById("container").appendChild(div);
    }
    var jump = document.createElement("br");
    document.getElementById("container").appendChild(jump);
}
Run Code Online (Sandbox Code Playgroud)
#container {
    width:1000px;
    height:1000px;
}
#container div {
    display:inline-block;
    vertical-align:top;
}
Run Code Online (Sandbox Code Playgroud)
<div id="container"></div>
Run Code Online (Sandbox Code Playgroud)

您的内部 div 可以是内联块元素,以便它们彼此相邻(因为默认情况下 div 是块级的)。您还需要在每个内部 (j) 循环之后插入换行符。所以过程是:生成 40 个内联 div,插入换行符,生成 40 个内联 div,插入换行符,...(再重复 38 次)。