我的代码如下:
<div className="row">
{data.map(datum => <Card field={datum.field} />)}
</div>
其中,Card
是className="col-lg-3"
的可变高度组件。这会使卡片行在较短的卡片下带有空白,以便下一行垂直对齐:
Aaa|Bbb|Ccc
aaa| |ccc
| |ccc
Ddd|Eee|Fff
ddd|eee|
...
我想删除空格。如何删除?上面的内容应该如下所示:
Aaa|Bbb|Ccc
aaa|Eee|ccc
Ddd|eee|ccc
...
我可以写上
div className="row">
<div className="col-lg-3">
{data1.map(datum => <Card field={datum.field} />) /* where data1 is the first quarter of data */}
</div>
{/* same for the remaining data */}
......但这看起来很糟糕。除此之外,我还想让卡片保持与data
相同的顺序,从上到下排序;从这里很难做到。有更干净的解决方案吗?
CodeSandbox demo
1条答案
按热度按时间xsuvu9jc1#
如果你想要的只是一个数量上均匀的列分布(不考虑最终的列高度),你可以修改你的循环来实现这一点。如果你想让卡片适合一个最小高度的网格,这就变成了一个"砖石"问题,而且变得更加复杂。
首先确定每个基准面所属的列:
然后在循环中检查:
CodeSandbox demo
当然,您可以预先分割数组,并在其各自的列中渲染各个子数组。