【发布时间】:2020-07-24 01:04:07
【问题描述】:
所以我在做一个小项目,我也能够完成它。在项目结束时,我注意到代码不应该工作,但它正在工作:
let size = 15; //fornow
const con = document.querySelector("#container");
for (i = 0; i < size; i++) {
for (j = 0; j < size; j++) {
let box = document.createElement("div");
box.style.cssText = `grid-area: ${i + 1}/${j + 1}/${i + 2}/${j + 2}`;
box.classList.add("tile");
con.appendChild(box);
}
}
#container {
height: 50vh;
width: 50vh;
border: 4px rgb(216, 216, 216) solid;
display: grid;
margin: 50px auto;
}
.tile {
border: 1px rgb(0, 0, 0) solid;
background-color: white;
}
<div id='container'></div>
当 size 变量被赋予一个值时,一个完美的方形网格被创建,所有的 div 都按行和列排列。我不明白的是我只是写了一个容器display: grid,甚至没有定义任何行列或模板甚至任何网格属性。甚至grid: 'something' 也不见了。
我的代码是如何工作的,并且所有子元素都可以通过使用甚至没有定义最大区域的网格区域属性来完美排列?
我尝试搜索是否有任何默认网格属性,但即使它要求您编写以“网格”开头的内容。
【问题讨论】:
-
因为您的 JS 为网格的每个图块创建 CSS
.tile { grid-area: ... }w3schools: CSS grid-area Property。 -
@RenevanderLende 是的,但我没有在父容器中定义大小和网格模板/行/列
标签: javascript html css css-grid