网格布局 - 固定列宽和响应式网格间隙

gfe*_*els 5 html css css-grid

我有一个填充整个水平空间的布局,并且由于网格布局,最后一行中的项目仍然与其他行具有相同的宽度。

现在,当调整屏幕大小时,项目的宽度会发生变化,以便填充整行。是否可以将项目的宽度固定并调整网格间隙?

https://jsfiddle.net/c60ymrfu/

当前CSS:

.container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  grid-auto-rows: 20px;
  grid-gap: 5px;
}
Run Code Online (Sandbox Code Playgroud)

当前行为: 在此输入图像描述

期望的行为: 在此输入图像描述

Jam*_*yle 8

您可以添加一些包装元素并为项目提供固定宽度,如下所示:

.container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  grid-auto-rows: 20px;
  grid-gap: 5px;
}

.item {
  background: yellow;
  text-align: center;
  border: 1px solid red;
  width: 100px;
  margin: auto;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div>
    <div class="item">1</div>
  </div>
  <div>
    <div class="item">2</div>
  </div>
  <div>
    <div class="item">3</div>
  </div>
  <div>
    <div class="item">4</div>
  </div>
  <div>
    <div class="item">5</div>
  </div>
  <div>
    <div class="item">6</div>
  </div>
  <div>
    <div class="item">7</div>
  </div>
  <div>
    <div class="item">8</div>
  </div>
  <div>
    <div class="item">9</div>
  </div>
  <div>
    <div class="item">10</div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

然后,您可以按照您认为合适的方式将这些项目放置在其包装父级中。