使任意数量的列自动填充并“自动填充”Chrome 中的网格宽度

Make any number of columns automatically populate and `auto-fill` the width of grid in Chrome

我需要自动填充列,从 2 到 4 中的任意数字。我需要总列宽来填充 2、3 或 4 可能列的网格宽度。

但是当我尝试代码时,我在 SO 解决方案和教程页面中看到 a CSS Tricks page,他们描述了这样的自动填充:

grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));

但是当我在 Chrome 中执行时,它显示 invalid property value

HTML 类似于:

<div class="my-grid">
    <div class="some-column"></div>
    <div class="some-column"></div>
    <div class="some-column"></div>
</div>

如何让任意数量的列自动填充并填充 Chrome 中网格的宽度?

我通常使用这个:

display: grid;
grid-template-columns: auto auto auto auto;

Chrome 确实支持 grid-template-columns,因此您可能有语法错误。 Post 你的代码和我可能会提供更多帮助。

你快到了。而不是 auto-fill 你需要 auto-fit.

但是请注意,这不会将列数限制为 4。它会创建所需的列数以适应允许的宽度。

.my-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  margin-bottom: 1em;
  ;
}

.some-column {
  height: 50px;
  border: 1px solid red;
}
<div class="my-grid">
  <div class="some-column"></div>
  <div class="some-column"></div>
  <div class="some-column"></div>
</div>

<div class="my-grid">
  <div class="some-column"></div>
  <div class="some-column"></div>
</div>

<div class="my-grid">
  <div class="some-column"></div>
  <div class="some-column"></div>
  <div class="some-column"></div>
  <div class="some-column"></div>
</div>