【发布时间】:2021-07-04 14:23:27
【问题描述】:
我有一个 24 列的网格,外边距为 1vw,间隙为 1vw。这是:
100vw - 1vw * 2 边距 - 1vw * 23 间隔 = 75vw。 75vw / 24 = 3.125vw 对于每个方格。
现在我有两个元素。我希望他们处于中心位置,grid-column: 10 / span 4;。
我希望他们自动采取必要的块,但找不到路。
body {
margin: 0;
padding: 0;
}
.grid {
display: grid;
grid-template-columns: repeat(24, 3.125vw);
margin: 1vw;
padding: 0;
grid-auto-rows: 3.125vw;
gap: 1vw;
}
.main {
grid-column: 10 / span 4;
border: 2px solid;
}
.sub1 {
grid-column: 10 / span 4;
border: 2px solid;
}
<div class="grid">
<div class="main">
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
</div>
<div class="sub1">
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
<div>item</div>
</div>
</div>
例如,如果我强制他们使用grid-row: 1 / span 5 占用行块,它当然会起作用。但我不能这样做,因为我事先不知道物品的高度。
有什么办法可以用我的网格解决这个问题吗?
谢谢!
【问题讨论】:
-
@mahan 你可以点击«run code sn-p»
-
` grid-auto-rows: minmax(3.125vw,max-content);` 和 margin 代替 gap ?你能澄清你的例子吗,因为在这里你的网格中只有 2 个单元格,我们应该猜猜会有更多吗?对于跨越的行,JS 将帮助您检索高度并在需要时设置一个值。