CSS Grid auto-fit + minmax增加了幻像行

时间:2017-11-20 19:07:26

标签: html css css-grid

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 */
}

Layout with Chrome's new visual grid lines

The HTML of the parent plus children

The CSS of the parent with the grid

1 个答案:

答案 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;
  }
}

revised codepen