我最近一直在玩 CSS Grid,并注意到一些我无法找到答案的东西。假设我将页面拆分为 2 列,然后在其下方有一行,另一列(跨越两列)。在移动设备上,我希望他们将一个堆叠在另一个之上,然后在某个断点之后返回到上述布局。这是标记:
HTML
<div class="grid">
<div class="upper">
<div class="a">A</div>
<div class="b">B</div>
</div>
<div class="lower">
<div class="c">C</div>
</div>
</div>
SCSS
.upper, .lower {
display: grid;
}
.upper {
grid-template-columns: 1fr 1fr;
grid-template-rows: auto auto;
background-color:grey;
grid-gap:10px;
@media only screen and (max-width:800px) {
grid-template-columns: 1fr;
grid-template-rows: auto;
}
}
.lower {
grid-template-columns: 1fr;
grid-template-rows:auto;
background-color: green;
grid-gap:10px;
}
我注意到在移动设备上,即使我已经grid-gap
为我的两个网格部分都定义了,但在移动设备上,当列堆叠时,grid-gap
不会维护。所以在下面的小提琴中,当你把窗口变小时,你可以看到当柱子一个一个地堆叠在一起时,和之间的间隙B
是C
不存在的。这是小提琴:
希望我说得有道理!
编辑:请记住,我只在 Firefox 和 Chrome(支持网格)中进行测试。