【发布时间】:2018-09-13 17:56:18
【问题描述】:
我正在尝试用不同大小的项目制作一个完全响应的网格。
This example 可以正常使用
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr) ) ;
body {
margin: 40px;
}
.wrapper {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
background-color: #fff;
color: #444;
}
.box {
background-color: #444;
color: #fff;
border-radius: 5px;
padding: 20px;
font-size: 150%;
}
<div class="wrapper">
<div class="box a">A</div>
<div class="box b">B</div>
<div class="box c">C</div>
<div class="box d">D</div>
<div class="box e">E</div>
<div class="box f">F</div>
<div class="box g">G</div>
<div class="box h">H</div>
<div class="box i">I</div>
</div>
所有项目都具有相同的尺寸,并且在最小的屏幕尺寸上它们彼此叠放。
现在,如果您尝试对this example 进行相同操作,则已离开显式网格并必须再次移动的项目不会这样做,而是会缩小到指定的 minmax 值以下。所以在最小的屏幕尺寸上有些项目是看不到的。
body {
margin: 40px;
}
.wrapper {
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
background-color: #fff;
color: #444;
}
.box {
background-color: #444;
color: #fff;
border-radius: 5px;
padding: 20px;
font-size: 150%;
}
.a {
grid-column: auto / span 2;
}
.k {
grid-column: auto / span 3;
}
.g {
grid-column: auto / span 2;
grid-row: auto / span 2;
}
<div class="wrapper">
<div class="box a">A</div>
<div class="box b">B</div>
<div class="box c">C</div>
<div class="box d">D</div>
<div class="box e">E</div>
<div class="box f">F</div>
<div class="box g">G</div>
<div class="box h">H</div>
<div class="box i">I</div>
<div class="box j">J</div>
<div class="box k">K</div>
<div class="box l">L</div>
<div class="box m">M</div>
</div>
除了添加媒体查询之外,有没有办法让示例 2 的行为类似于示例 1?
【问题讨论】: