【发布时间】:2018-05-24 11:39:36
【问题描述】:
我有一个 4 个单元格宽的网格布局(显示:网格)。当只有两行时,它们之间的间距比它应该的要大。如果有三行或更多行,一切看起来都应该如此。这基本上就是 html 的样子:
<div class="thumbnail-container">
<div class="thumbnail-grid">
<div class="thumbnail-grid-cell"></div>
<div class="thumbnail-grid-cell"></div>
<div class="thumbnail-grid-cell"></div>
<!-- and so on... -->
</div>
</div>
这些是我的 CSS 规则:
.thumbnail-container {
overflow: scroll;
}
.thumbnail-grid {
display: grid;
grid-template-columns: auto auto auto auto;
grid-row-gap: 5px;
grid-column-gap: 5px;
height: 250px;
margin: 8px;
}
.thumbnail-grid-cell {
width: 100px;
height: 100px;
border: 1px solid black;
position: relative;
}
澄清一下:
这是 2 行的样子:
这是 3 行的样子:
列间距始终正确。
【问题讨论】:
-
为什么会有问题?如果是这样,为什么只有两行时才会出现问题?单元格的父级没有指定宽度。
-
因为您已将网格列设置为
auto宽度...。如果您希望它们相等,请将它们设置为1fr -
我尝试将 grid-template-columns 设置为 1fr,但这并没有什么不同。我尝试将其设置为各种值,并且行之间的间距仍然相同。鉴于 this 指定了宽度,没有别的,这实际上是有意义的。
-
1fr将修复它 - 见 - codepen.io/Paulie-D/pen/NMVLQe -
您的示例仅演示了列间距,这不是问题。我会添加一些图片来说明问题所在。
标签: html css grid-layout css-grid