Chrome的CSS网格中似乎存在一个奇怪的错误(在Firefox中不会发生)。当使用网格模板列样式的重复(自动调整,minmax(300px,1fr))时会发生这种情况。出于某种原因,即使只有两个子div,父div认为还有另一个元素,并产生大量的空白和不必要的网格间隙。任何想法如何合理地解决这个问题,而不是做一个janky修复?
这是一个bug的再创造: https://codepen.io/rantis/full/gXxxRB/
.two_item_grid_container {
repeat(auto-fit, minmax(300px, 1fr));
/* If you reduce the min size to 45px the grid fixes itself for some reason */
}
答案 0 :(得分:1)
在此上下文中使用auto-fill
时,Chrome和Firefox / Edge之间似乎存在渲染差异。这是一个可能的解决方法:
使用更明确的列大小和媒体查询。
.two_item_grid_container {
display: grid;
grid-template-columns: repeat(2, minmax(300px, 1fr));
grid-auto-rows: auto;
grid-gap: 20px;
}
@media ( max-width: 500px ) {
.two_item_grid_container {
grid-template-columns: 1fr;
}
}