【发布时间】:2019-03-16 19:28:30
【问题描述】:
我有 4 列。第 1 列和第 4 列的实际内容是 150px,第 2 列是 250px,第 3 列是 370px。我想在浏览器宽度发生变化时换行。当我减小浏览器的宽度时,我希望每列在换行之前缩小到它们的最低宽度。所以我想第 4 列在低于 150px 宽度后会下降到宽度为 100% 的下一行。
这就是我认为应该做的伎俩:
repeat(auto-fit, minmax(max-content, 1fr))
有没有办法在不传递“最大内容”所在的固定宽度的情况下实现这一点?
这是我使用媒体查询和硬宽度的解决方案
https://jsfiddle.net/9hjb5qv8/
这是我在上面的小提琴中使用的 html/css:
.container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(370px, 1fr));
grid-gap: 8px;
}
@media (max-width: 799px) {
.container {
grid-template-columns: minmax(max-content, 1fr);
}
}
@media (min-width: 800px) {
.container .p2,
.container .p3 {
grid-column: auto / span 2;
}
}
.container > div {
background-color: gray;
text-align: center;
}
<div class="container">
<div class="p1">
<img src="https://via.placeholder.com/150x150">
</div>
<div class="p2">
<img src="https://via.placeholder.com/250x150">
</div>
<div class="p3">
<img src="https://via.placeholder.com/370x150">
</div>
<div class="p4">
<img src="https://via.placeholder.com/150x150">
</div>
</div>
【问题讨论】: