【发布时间】:2018-08-17 02:44:41
【问题描述】:
是否可以将具有自动填充列的 CSS 网格的宽度折叠到相对于网格容器居中的等宽列所需的最小宽度?
IE 如果我有这样定义的网格:
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
并且网格容器是 800px 宽,有没有办法确保网格本身只有 600px 宽而不是 800px?
由于我不确定如何正确解释它,我做了一个小提琴:https://jsfiddle.net/mhozx4ns/10/
我正在寻找一种方法,如果顶部容器的宽度超过将所有子项排成一行所需的宽度,则它的行为类似于底部容器。
body {
width: 800px;
background: black;
}
.grid div {
height: 50px;
background: #ededed;
}
.css {
display: grid;
justify-content: center;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
grid-column-gap: 64px;
grid-row-gap: 64px;
background: red;
}
.manual {
width: 664px;
margin: 32px auto 0;
background: blue;
}
.manual:after {
content: '';
display: table;
width: 100%;
}
.manual.grid div {
width: 300px;
float: left;
margin-bottom: 64px;
}
.manual.grid div:nth-of-type(even) {
margin-left: 64px;
}
.manual.grid div:last-child {
margin-bottom: 0;
}
}
<div class="css grid">
<div>
</div>
<div>
</div>
<div>
</div>
</div>
<div class="manual grid">
<div>
</div>
<div>
</div>
<div>
</div>
</div>
【问题讨论】: