如何像 flexbox 一样在网格 "space-evenly" 中制作列?

How do make columns in a grid "space-evenly" like with flexbox?

我有这个网格CSS

.grid {
    display: grid;
    grid-column-gap: 50px;
    grid-template-columns: repeat(3, 1fr);
}

它位于 div 中,宽度为:500px

但我注意到网格中的第一个项目“拥抱”了 div 的左边缘,但最右边的项目没有触及 div 的边缘。

在 flexbox 中,我可以通过(足够接近)实现这一点:

.flex {
    display: flex;
    justify-content: space-between;
 }

如何使用网格响应地执行此操作?

我知道我可以更改网格列间距,但这看起来很古怪

使用 auto 而不是 1fr 并且相同的 justify-content 将像使用 flexbox 一样工作:

.grid {
  display: grid;
  grid-column-gap: 50px;
  grid-template-columns: repeat(3, auto);
  justify-content:space-between;
}
<div class="grid">
  <div>aaa</div>
  <div>bbb</div>
  <div>ccc</div>
</div>

考虑使用 auto-fit 关键字通过展开列以将列放入可用行 space。

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

.grid-item {
  background-color: blue;
  padding: 30px;
}
<div class="grid-container">
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
  <div class="grid-item"></div>
</div>