Flexbox:如何将行的元素拉伸到全宽? [英] Flexbox: How to stretch row's elements to full width?
问题描述
我有一个随机宽度图像的flexbox网格:
我想将每行的元素拉伸到全宽,以摆脱空白 - 我怎样才能实现与CSS?
justify-内容
似乎没有多大帮助。我已经阅读了一些JavaScript技术,但是我希望尽可能避免它。
预期结果:示例 我偶然发现了这个问题,不幸的是无法使用Flexbox解决问题。 请注意以下几点: 您也可以使用其他html元素,并使用css I have a flexbox grid of random width images: I would like to stretch elements of each row to full width in order to get rid of white-space - how can I achieve that with CSS? [Edited] Expected result: example
I have stumbled across this issue and unfortunately couldn't solve it using Flexbox.
The answer might suprise you, but what I found to be the appropriate solution for me here is a table, yeah you heard me right, a There are a couple of constraints to keep in mind:
You can also use other html elements and mimic the table behaviour using css 这篇关于Flexbox:如何将行的元素拉伸到全宽?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
.grid {display:flex; flex-wrap:wrap; justify-content:center;}。grid .grid-item {width:auto;显示:内联块; vertical-align:bottom; float:none; margin:1px; overflow:hidden;}。grid .grid-item .grid-in {padding:0;宽度:自动;身高:190px; vertical-align:bottom;}。grid img {max-width:100%;宽度:100%;身高:自动; padding:0;}
< div class =grid > < div class =grid-item> < div class =grid-in> < img src =http://placehold.it/190x190alt => < / DIV> < / DIV> < div class =grid-item> < div class =grid-in> < img src =http://placehold.it/250x190alt => < / DIV> < / DIV> < div class =grid-item> < div class =grid-in> < img src =http://placehold.it/100x190alt => < / DIV> < / DIV> < div class =grid-item> < div class =grid-in> < img src =http://placehold.it/190x190alt => < / DIV> < / DIV> < div class =grid-item> < div class =grid-in> < img src =http://placehold.it/250x190alt => < / DIV> < / DIV> < div class =grid-item> < div class =grid-in> < img src =http://placehold.it/190x190alt => < / DIV> < / DIV> < div class =grid-item> < div class =grid-in> < img src =http://placehold.it/100x190alt => < / DIV> < / DIV> < div class =grid-item> < div class =grid-in> < img src =http://placehold.it/190x190alt => < / DIV> < / DIV> < div class =grid-item> < div class =grid-in> < img src =http://placehold.it/250x190alt => < / DIV> < / DIV> < div class =grid-item> < div class =grid-in> < img src =http://placehold.it/190x190alt => < / DIV> < / DIV> < div class =grid-item> < div class =grid-in> < img src =http://placehold.it/100x190alt => < / DIV> < / div>< / div>
答案可能让你大吃一惊,但是我发现在这里找到合适的解决方案是一个表格,是的,你听到了我的意思,< table>
!
表格{宽度:100%;保证金:0 0 10px 0;填充:0; border-collapse:collapse;} table td {padding:0; margin:0;} img {display:block;宽度:100%;最大宽度:100%;}
< table> < TR> < TD> < img src =http://placehold.it/190x190alt => < / TD> < TD> < img src =http://placehold.it/250x190alt => < / TD> < TD> < img src =http://placehold.it/100x190alt => < / TD> < / TR>< /表><表> < TR> < TD> < img src =http://placehold.it/190x190alt => < / TD> < TD> < img src =http://placehold.it/250x190alt => < / TD> < TD> < img src =http://placehold.it/190x190alt => < / TD> < / TR>< /表><表> < TR> < TD> < img src =http://placehold.it/100x190alt => < / TD> < TD> < img src =http://placehold.it/190x190alt => < / TD> < TD> < img src =http://placehold.it/250x190alt => < / TD> < / TR>< /表><表> < TR> < TD> < img src =http://placehold.it/190x190alt => < / TD> < TD> < img src =http://placehold.it/100x190alt => < / TD> < TD> < img src =http://placehold.it/190x190alt => < / TD> < / tr>< / table>
display:table |来模仿表格行为表格行| table-cell
justify-content
doesn't seem to help much. I have read about some JavaScript techniques but I would like to avoid it if possible..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>
<table>
!
table {
width: 100%;
margin: 0 0 10px 0;
padding: 0;
border-collapse: collapse;
}
table td {
padding: 0;
margin: 0;
}
img {
display: block;
width: 100%;
max-width: 100%;
}
<table>
<tr>
<td>
<img src="http://placehold.it/190x190" alt="">
</td>
<td>
<img src="http://placehold.it/250x190" alt="">
</td>
<td>
<img src="http://placehold.it/100x190" alt="">
</td>
</tr>
</table>
<table>
<tr>
<td>
<img src="http://placehold.it/190x190" alt="">
</td>
<td>
<img src="http://placehold.it/250x190" alt="">
</td>
<td>
<img src="http://placehold.it/190x190" alt="">
</td>
</tr>
</table>
<table>
<tr>
<td>
<img src="http://placehold.it/100x190" alt="">
</td>
<td>
<img src="http://placehold.it/190x190" alt="">
</td>
<td>
<img src="http://placehold.it/250x190" alt="">
</td>
</tr>
</table>
<table>
<tr>
<td>
<img src="http://placehold.it/190x190" alt="">
</td>
<td>
<img src="http://placehold.it/100x190" alt="">
</td>
<td>
<img src="http://placehold.it/190x190" alt="">
</td>
</tr>
</table>
display: table | table-row | table-cell