【发布时间】:2018-10-10 17:21:35
【问题描述】:
嘿,我是 CSS 网格的新手。看看下面的例子:
.platform {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
grid-gap: 20px;
}
.item {
width:100%;
background-color:#aaa;
padding:10px;
box-sizing:border-box;
text-align:center;
}
.wrapmed {
max-width:400px;
}
.wrapsmall {
max-width:300px;
}
<div class="platform">
<div class="item">a</div>
<div class="item">b</div>
<div class="item">c</div>
<div class="item">d</div>
</div>
<br/><br/>
<div class="wrapmed">
<div class="platform">
<div class="item">a</div>
<div class="item">b</div>
<div class="item">c</div>
<div class="item">d</div>
</div>
</div>
<br/><br/>
<div class="wrapsmall">
<div class="platform">
<div class="item">a</div>
<div class="item">b</div>
<div class="item">c</div>
<div class="item">d</div>
</div>
</div>
基本上,网格效果很好。但是,我永远不想打破网格,使 3 个项目在顶部,而只有一个项目在下一行。
我想要 4 列,或 2 列,或 1 个。 (如何)我怎样才能实现这种行为?
编辑:代码 sn-p 现在显示了三种可能的情况。案例 2 是不需要的。
【问题讨论】:
-
基本上......不,不是你拥有它的方式。
auto-fit正在执行完全您要求它执行的操作。如果您不希望这种行为,我建议您重新考虑。 -
不适用于
auto-fit/auto-fill。但是是的,媒体查询。 jsfiddle.net/d0kroo27 -
@Michael_B 是的,似乎媒体查询是唯一的解决方案:-/ 这种方法有缺点。
标签: html css responsive-design css-grid