【发布时间】:2016-04-13 19:45:01
【问题描述】:
我有一个通过 flexbox 设置的容器。我想平均分配容器内的每个图块,但将它们保持在 220 像素的固定宽度。
我已经接近使用flex-grow 并设置了min-width: 220px,但它显然已经通过计算调整了瓷砖的大小以填充容器。
我还设置了一些媒体查询,以便在某些断点上堆叠图块。
使用我当前的样式是否可以将这些图块保持在 220 像素而不拉伸?这可以通过 flexbox 完成吗?有没有和 flexbox 一样好的替代品?
.container {
border: 1px solid red;
display: flex;
flex-wrap: wrap;
margin: 0 auto;
max-width: 2000px;
}
.tiles {
border: 1px solid black;
margin: 0 15px 30px 15px;
flex-grow: 1;
padding: 0;
height: 220px;
min-width: 220px;
}
@media screen and (max-width: 1140px) {
.container {
max-width: 850px;
}
}
@media screen and (max-width: 2040px) {
.container {
max-width: 1750px;
}
}
@media screen and (max-width: 1790px) {
.container {
max-width: 1500px;
}
}
@media screen and (max-width: 1540px) {
.container {
max-width: 1250px;
}
}
@media screen and (max-width: 1290px) {
.container {
max-width: 1000px;
}
}
@media screen and (max-width: 1040px) {
.container {
max-width: 750px;
}
}
@media screen and (max-width: 790px) {
.container {
max-width: 500px;
}
}
<div class="container">
<div class="tiles"></div>
<div class="tiles"></div>
<div class="tiles"></div>
<div class="tiles"></div>
<div class="tiles"></div>
<div class="tiles"></div>
<div class="tiles"></div>
<div class="tiles"></div>
<div class="tiles"></div>
<div class="tiles"></div>
</div>
【问题讨论】:
-
你还需要tiles总是在中心吗?
-
您是否尝试过简单地设置
.tiles的width属性? -
看到这个updated fiddle,我猜你不需要那些媒体查询。
-
@Pangloss 对不起,我似乎用错了我之前的评论。我基本上希望网格能够正常工作(不使用
float:jsfiddle.net/danield770/EBncj/6。通过:stackoverflow.com/a/21245751/3046413 -
知道了!好的,请参阅这篇文章 - stackoverflow.com/q/33192745/483779 我实际上在不久前为它提供了 200 个代表的赏金,到目前为止仍然没有更好的解决方案,即使使用 flexbox。
标签: html css responsive-design flexbox