【发布时间】:2015-10-18 17:08:04
【问题描述】:
我有一个随机宽度图像的 flexbox 网格:
我想将每一行的元素拉伸到全宽以消除空白 - 如何使用 CSS 实现这一点?justify-content 似乎没有多大帮助。我已经阅读了一些 JavaScript 技术,但我想尽可能避免使用它。
[已编辑] 预期结果:example
.grid {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.grid .grid-item {
width: auto;
display: inline-block;
vertical-align: bottom;
float: none;
margin: 1px;
overflow: hidden;
}
.grid .grid-item .grid-in {
padding: 0;
width: auto;
height: 190px;
vertical-align: bottom;
}
.grid img {
max-width: 100%;
width: 100%;
height: auto;
padding: 0;
}
<div class="grid">
<div class="grid-item">
<div class="grid-in">
<img src="http://placehold.it/190x190" alt="">
</div>
</div>
<div class="grid-item">
<div class="grid-in">
<img src="http://placehold.it/250x190" alt="">
</div>
</div>
<div class="grid-item">
<div class="grid-in">
<img src="http://placehold.it/100x190" alt="">
</div>
</div>
<div class="grid-item">
<div class="grid-in">
<img src="http://placehold.it/190x190" alt="">
</div>
</div>
<div class="grid-item">
<div class="grid-in">
<img src="http://placehold.it/250x190" alt="">
</div>
</div>
<div class="grid-item">
<div class="grid-in">
<img src="http://placehold.it/190x190" alt="">
</div>
</div>
<div class="grid-item">
<div class="grid-in">
<img src="http://placehold.it/100x190" alt="">
</div>
</div>
<div class="grid-item">
<div class="grid-in">
<img src="http://placehold.it/190x190" alt="">
</div>
</div>
<div class="grid-item">
<div class="grid-in">
<img src="http://placehold.it/250x190" alt="">
</div>
</div>
<div class="grid-item">
<div class="grid-in">
<img src="http://placehold.it/190x190" alt="">
</div>
</div>
<div class="grid-item">
<div class="grid-in">
<img src="http://placehold.it/100x190" alt="">
</div>
</div>
</div>
【问题讨论】:
-
您也可以发布您的 HTML 吗?右边第三行的空白是你的问题?
-
您在
.grid .grid-in .grid-item上有 1 像素的边距。也许你应该删除它 -
@ManojKumar:我在问题中添加了一个代码 sn-p。 Luis:删除边距没有帮助。
-
如果您不关心图像之间的边距大小,也就是说目标是保持平滑的方形容器,您可以尝试使用
justify-content: space-between -
我也建议你去看看this clip,大约需要 30 分钟,之后你将成为 flex 的专业人士:P