我想为6x6网格建模,仅用3个元素填充所有列和行。大小应与有36个单元格相同,但3个单元格将填满所有空间。由于某些原因,我的单元格似乎没有填充它们各自的单元格和列。
我发现span
选项,尽管它似乎无法正常工作。
这是我的代码:
.grid-container {
display: grid;
grid-template-columns: auto auto auto auto auto auto;
grid-template-rows: auto auto auto auto auto auto;
background-color: #2196F3;
padding: 5px;
}
.grid-item {
background-color: rgba(255, 255, 255, 0.8);
border: 1px solid rgba(0, 0, 0, 0.8);
padding: 20px;
font-size: 30px;
text-align: center;
}
#box1 {
grid-column: 1 / span 4;
grid-row: 1 / span 2;
}
#box2 {
grid-column: 5 / 6;
grid-row: 1 / span 6;
}
#box3 {
grid-column: 1 / span 4;
grid-row: span 3 / span 6;
}
<div class="grid-container">
<div class="grid-item" id="box1">1</div>
<div class="grid-item" id="box2">2</div>
<div class="grid-item" id="box3">3</div>
</div>
与其将grid-template-row / grid-template-column设置为auto,最好使用重复功能来设置6x6网格。为了使#box2充满整个空间,您需要确保它一直贯穿。 devtools中的网格检查器将向您显示每个元素占用的行数。因此,不是网格列跨度为5/6,而是网格列跨度为5/7。 #box3也是如此,它的网格行:span 4/6而不是grid-row:span 4/5;
.grid-container {
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-template-rows: repeat(6,1fr);
background-color: #2196F3;
padding: 5px;
}
.grid-item {
background-color: rgba(255, 255, 255, 0.8);
border: 1px solid rgba(0, 0, 0, 0.8);
padding: 20px;
font-size: 30px;
text-align: center;
}
#box1 {
grid-column: 1 / span 4;
grid-row: 1 / span 2;
}
#box2 {
grid-column: 5 / 7;
grid-row: 1 / span 6;
}
#box3 {
grid-column: 1 / span 4;
grid-row: span 4 / span 6;
}
<div class="grid-container">
<div class="grid-item" id="box1">1</div>
<div class="grid-item" id="box2">2</div>
<div class="grid-item" id="box3">3</div>
</div>