我有一个随机宽度图像的flexbox网格:
我想将每行的元素拉伸到全宽,以消除空白-我如何用CSS实现这一点?justify-content看起来没什么帮助。我读过一些JavaScript技术,但如果可能的话我想避免使用它。
justify-content
[编辑]预期结果:example
第一个
exdqitrt1#
首先将每一行 Package 在一个容器中,比如.grid-row,它将包含您之前分配给.grid的那些Flexbox属性。现在为每个单元格设置flex-grow属性,值可以是任何值,只要每行的值的ratio正确即可。您可以简单地将其设置为单元格的宽度(不带单位),这样第一个单元格将具有flex-grow: 190。另外,确保在所有.grid-item上将flex-shrink设置为1,以避免此flexbug。要想让图片一直伸展,就从.grid-in中删除所有inline-block的内容;要想让图片按比例增加高度,就从.grid-in中删除width: 190px,而不是裁剪成190px。最后,为了隔开它们,在这种情况下,最好在.grid-item上使用padding: 1px,而不是在.grid-in上使用margin: 1px。因为这个演示没有被足够的简化,为了清晰起见我对它进行了清理。希望你知道如何在你的原始代码中实现它。第一个
.grid-row
.grid
flex-grow
flex-grow: 190
.grid-item
flex-shrink
1
.grid-in
inline-block
width: 190px
190px
padding: 1px
margin: 1px
iklwldmw2#
我偶然发现了这个问题,不幸的是无法解决它使用Flexbox.答案可能会让你感到惊讶,但我发现这里是一个适合我的解决方案是一个表,是的,你听到我的权利,一个<table>!请记住以下几个限制:1.您应该知道每一行上所需的单元格/列数。1.如果每一行的列宽不同,则每行都需要一个表元素。('member 2000 s?)第一个您还可以使用其他html元素,并使用css模拟表的行为。display: table | table-row | table-cell
<table>
display: table | table-row | table-cell
2条答案
按热度按时间exdqitrt1#
首先将每一行 Package 在一个容器中,比如
.grid-row
,它将包含您之前分配给.grid
的那些Flexbox属性。现在为每个单元格设置
flex-grow
属性,值可以是任何值,只要每行的值的ratio正确即可。您可以简单地将其设置为单元格的宽度(不带单位),这样第一个单元格将具有flex-grow: 190
。另外,确保在所有.grid-item
上将flex-shrink
设置为1
,以避免此flexbug。要想让图片一直伸展,就从
.grid-in
中删除所有inline-block
的内容;要想让图片按比例增加高度,就从.grid-in
中删除width: 190px
,而不是裁剪成190px
。最后,为了隔开它们,在这种情况下,最好在
.grid-item
上使用padding: 1px
,而不是在.grid-in
上使用margin: 1px
。因为这个演示没有被足够的简化,为了清晰起见我对它进行了清理。希望你知道如何在你的原始代码中实现它。
第一个
iklwldmw2#
我偶然发现了这个问题,不幸的是无法解决它使用Flexbox.答案可能会让你感到惊讶,但我发现这里是一个适合我的解决方案是一个表,是的,你听到我的权利,一个
<table>
!请记住以下几个限制:
1.您应该知道每一行上所需的单元格/列数。
1.如果每一行的列宽不同,则每行都需要一个表元素。('member 2000 s?)
第一个
您还可以使用其他html元素,并使用css模拟表的行为。
display: table | table-row | table-cell