本文探讨了在Flex布局中,当最后一行元素不满时如何处理以达到期望的效果。作者分享了一种利用空白元素填充的方法,通过创建与元素宽度相同、高度为1的空div来解决这个问题。这种方法简单易操作,且不需要预先知道元素数量或宽度占比。文章还提到了其他解决方案的局限性,如需要知道元素个数、大量CSS修改或放弃`justify-content:space-between`等。
摘要由CSDN通过智能技术生成
如图(借用别人的)所时,flex-wrap: wrap; justify-content: space-between; 时造成的问题;
但是我们期望的是这个样,如下图所示
我在本站上也看到了很多的方法,但使用时限制很多,并不能完满解决我们的问题;他人的解决方案存在的问题或限制:
-
有的必须知道每行的元素个数或每个元素width 占比(一个意思)
-
有的大量的css 修改作
-
有的放弃 justify-content: space-between;
以上方案解决不了我的问题,因为我的元素width 一定,一行几个不确定;
我的方案,在最后一行 用空白线 填写法 ,没错就是 width 与我元素一样的,height为的空白线 ----------------------,线的条数可以为一行的最大元素个数,这个几乎无破绽
[1,2,3,4,5,6,7,8,9,10].map(item=>{
return <div key={`empty_${item}`} style={{
display: 'inline-block',
width: 240,
height: 1
}}></div>
ok, 到此完美解决问题,代码量小,简单,易操作
问题来源
问题是这样的,我有一个list,期望做成一个flex的wrap布局。
每个item项有一个最小宽度,随着窗口的拉伸,item宽度会增加,并且占满容器空间。
当窗口宽度增加到一定程度,会触发wrap的布局,每一行会多排列一个item。
<div class="app-list">
<div class="app-block"></div>