我动态生成一个网格,如下所示:
function createGrid(numberOfRows) {
document.getElementById("container").innerHTML = "";
console.log(numberOfRows);
for (let i = 0; i < numberOfRows; i++) {
var divRow = document.createElement("div");
document.getElementById("container").appendChild(divRow);
for (let y = 0; y < numberOfRows; y++) {
let divCol = document.createElement("div");
divRow.appendChild(divCol);
}
}
}
window.onload = createGrid(10)
#container {
padding-bottom: 25px;
}
#container>div {
width: 100%;
height: 10px;
}
#container>div>div {
float: left;
height: 25px;
border: 1px solid #ccc;
width: 25px;
}
div {
display: table;
margin: auto;
}
<div id="container"></div>
如果网格完全适合屏幕,则此操作将非常有效:
但如果网格更大则断开(例如,使用createGrid(100)):
如何使网格正确显示(显示为带有水平滚动条的正方形)?
2条答案
按热度按时间wfveoks01#
不要使用浮点数,使用
display: grid
来显示网格。在我的解决方案中,我将网格的单元格设置为内联样式,然后在CSS中使用它来定义一行中应该有多少个单元格。
chhkpiq42#
你使用的是
display: table
,但是有了display: grid
和grid-auto-flow
属性,它应该可以工作。试试下面的css。