【发布时间】:2019-03-24 17:23:31
【问题描述】:
我正在尝试制作一个重复 2 个垂直、2 个水平部分的网格布局。然后是 2 个水平,2 个垂直,我们再次重复。
像这样:
.container {
max-width:940px;
margin: 0 auto;
}
.grid-container {
counter-reset: div;
display:grid;
grid-template-columns: repeat(4, 1fr);
grid-auto-rows: 186px;
grid-gap:20px;
justify-content:center;
grid-template-areas:
"vert1 vert2 hor1 hor1"
"vert1 vert2 hor2 hor2"
"hor3 hor3 vert3 vert4"
"hor4 hor4 vert3 vert4"
}
.item-a {
grid-area: vert1;
}
.item-b {
grid-area: vert2;
}
.item-c {
grid-area: hor1;
}
.item-d {
grid-area: hor2;
}
.item-e {
grid-area: hor3;
}
.item-f {
grid-area: hor4;
}
.item-g {
grid-area: vert3;
}
.item-h {
grid-area: vert4;
}
.item-j {
grid-area: hor2;
}
.item-k {
grid-area: hor2;
}
.item-l {
grid-area: hor2;
}
.item-m {
grid-area: hor2;
}
.grid-container > div {
box-shadow: 0 0 11px 0 #b9b9b9;
}
.grid-container > div:before {
counter-increment: div;
content: counter(div);
margin: auto;
font-size: 40px;
display:flex;
}
<div class="container">
<div class="grid-container">
<div class="item-a"></div>
<div class="item-b"></div>
<div class="item-c"></div>
<div class="item-d"></div>
<div class="item-e"></div>
<div class="item-f"></div>
<div class="item-g"></div>
<div class="item-h"></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</div>
我找不到在自动(无限)行上获取它的方法,只能使用 grid-template-areas。
grid-template-areas:
"vert1 vert2 hor1 hor1"
"vert1 vert2 hor2 hor2"
"hor3 hor3 vert3 vert4"
"hor4 hor4 vert3 vert4"
有人有什么想法吗?
【问题讨论】:
-
可以考虑嵌套容器吗?
-
哦,这实际上可以工作,比如获得 2 个嵌套的垂直和水平网格,然后 css n-th奇数/偶数。