当用flex布局的时候,大部分的分布都会使用space-between的方式,但是当最后一行的个数和上面行的个数不一样的时候,最后一行的分布就显得尴尬。
比如我们想要这样的效果:
但是却出现这样的效果:
如果每一行列数不确定,宽度不确定,间隔不确定的情况下,最好的方法就是为最后一个元素设置margin-right:auto,这个auto具有占有剩余空间的能力。
就好像这样的效果:
主要代码就是:
<div class="nav"> <ul class="flex"> <li><img src="images/web.png" alt=""></li> <li><img src="images/ipad.png" alt=""></li> <li><img src="images/iphone.png" alt=""></li> <li><img src="images/linux.png" alt=""></li> <li><img src="images/mac.png" alt=""></li> <li><img src="images/windows.png" alt=""></li> <li><img src="images/android.png" alt=""></li> </ul> </div>
.flex { display: flex; flex-wrap: wrap; justify-content: space-between; padding: 1em; } .flex li { padding: 1em; } @media screen and (max-width:640px) { .flex li:last-child{ margin-right: auto; } /* flex:auto或者flex:1 */ /* .flex:after{ content: ""; flex:auto; } */ }
不同的场景有不同的做法,可以看看张鑫旭这篇文章,很全面。
发表评论:
◎请发表你卖萌撒娇或一针见血的评论,严禁小广告。