我试图生成一个特定的布局使用CSS网格。我想要的布局是这样的:
整个页面分为12列。第一行单元格跨越整个第一行,第二行具有2个单元格,每个单元格跨越4列。第三行有3个单元格,每个单元格跨越3列。但根据我的代码,第三行的3个单元格从第二行本身开始。
我的代码:
* {
border: 1px solid;
}
.wrapper {
display: grid;
grid-template-columns: repeat(12, 1fr);
grid-template-rows: auto;
gap: 24px;
}
.item {
padding: 24px;
}
.banner-img {
grid-column: span 12;
}
.card {
grid-column: span 4;
}
.note {
grid-column: span 3;
}
<div class="wrapper">
<div class="item banner-img">Hello</div>
<div class="item card">Hello</div>
<div class="item card">Hello</div>
<div class="item note">Note</div>
<div class="item note">Note</div>
<div class="item note">Note</div>
</div>
如何指定.note div应该在新行中开始。
3条答案
按热度按时间xt0899hw1#
因为没有指定要放入哪一行,所以第二行中有第一个
.note
元素的空间,所以它放在那里。因此,只需告诉这些元素位于哪一行,例如grid-row: 3
等。c9qzyr3d2#
将
grid-row: 3
设置为note应该可以解决您的问题xn1cxnb43#
一种方法是添加跨度为4的第三个卡片项目。如果你不能,你可以给予另一个跨度的第二个卡项目,这是第三个项目的 Package