【发布时间】:2017-04-19 10:25:46
【问题描述】:
我希望将任意数量的图像缩小以适合固定宽度的 div。 似乎 flexbox 很适合这个目的,但我似乎无法让它用于包装多行。
如果我将flex-flow 设置为row wrap 并将flex 设置为1 1 auto,则图像太大。
.container {
display: flex;
flex-flow: row wrap;
border: 1px solid black;
width: 300px;
height: 300px;
}
.image {
flex: 1 1 auto;
}
img {
max-width: 100%;
}
<div class="container">
<div class="image">
<img src="http://www.placebacon.net/400/300">
</div>
<div class="image">
<img src="http://www.placebacon.net/400/300">
</div>
<div class="image">
<img src="http://www.placebacon.net/400/300">
</div>
</div>
如果我将 flex-flow 设置为 row 或 flex 设置为 1 1 0,则图像不会换行:
.container {
display: flex;
flex-flow: row wrap;
border: 1px solid black;
width: 300px;
height: 300px;
}
.image {
flex: 1 1 0;
}
img {
max-width: 100%;
}
<div class="container">
<div class="image">
<img src="http://www.placebacon.net/400/300">
</div>
<div class="image">
<img src="http://www.placebacon.net/400/300">
</div>
<div class="image">
<img src="http://www.placebacon.net/400/300">
</div>
</div>
我怎样才能使图像扩展得足够大,以尽可能多地包裹以填充 div,但又不会超出 div?
【问题讨论】:
-
“缩小以适应”和“包装多行”是相互排斥的——您需要为图像提供最大/最小宽度或高度,否则它们只会缩小而不会换行。