我有这个简单的网格:

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

.item {
  width: 40px;
  height: 40px;
  background-color: grey;
}
<div class='outGrid'>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
</div>

如您所见,我将网格间距定义为40px,但每个网格项目都会随着页面宽度的变化而水平拉伸.我希望项目不会伸展,只是简单地占据全部空间,所以垂直和水平间隙都是40px,形成了一个漂亮的3*3网格.如何实现这一目标?

推荐答案

使用auto代替1fr,并将内容对齐:

.outGrid {
  display: grid;
  grid-gap: 40px;
  grid-template-columns: repeat(3, auto);
  place-content: start;
}

.item {
  width: 40px;
  height: 40px;
  background-color: grey;
}
<div class='outGrid'>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
  <div class='item'></div>
</div>

Html相关问答推荐

我需要主页按钮出现在中间

我似乎不能正确地将我的导航栏居中'

CSS自定义特性中的URL是否可以相对于定义的CSS文件?

如何使用html和css将两个项目垂直对齐

损坏的可点击html邮箱签名

如何在伪元素背景中定位多个CSS径向梯度

按钮之间的HTML文本居中不正确

我正在try 向列表中的图像添加悬停,以放大图像并将div的不透明度设置为1而不是0

Chrome浏览器错误:上的主题验证判断https://pagead2.googlesyndication.com/失败

rvest: Select 不包含链接的段落(<;p>;)

如何在 Bootstrap 5 中将两个导航栏元素放在末尾?

:after 伪元素没有出现,即使它有 content 属性

按钮位于主 div 的底部而不是内部 Div

如何正确地嵌套Flexbox

拨动switch 在重新加载时未重置

在包含 html 标签的字符串的子字符串中应用不同的样式

如何从 razor 页面打开 html 页面

提交前的验证表单未显示任何验证消息?

让 Bootstrap 5 模式和背景占据父容器的宽度和高度,而不是全屏

如何使文本显示在页眉/页脚之外?