css3flex布局justify-content:space-between最后⼀⾏左
对齐
在使⽤justify-content:space-between布局时,针对最后⼀⾏元素使⽤justify-self: start;没有效果,查了下css3 flexbox 还未⽀持。
那么如何实现最后⼀⾏左对齐呢?
现有的⼏个⽅案
使⽤标签元素补全缺的item
使⽤grid
使⽤伪类
伪类的情况,如果最后⼀个元素是满的,会有占位,grid会有兼容问题,⼜不想新增标签。
每⼀⾏固定列数的情况实现左对齐⽅案
由于每⼀列的数⽬都是固定的,因此,我们可以计算出最后⼀个元素的margin-right值保证完全左对齐。
假设每⼀⾏只有3列元素,那么当最后⼀个元素是第⼆列(即li:last-child:nth-child(3n + 2))的情况,才需要进⾏margin-right处理,距离是⼀个元素的宽度+空隙宽度。
假设元素宽度是$width,上述情况所需要的距离:(100% - 3 * $width) / 2 + $width => (100% - $width) / 2
.list1  li:last-child:nth-child(3n + 2) {
margin-right: calc((100% - $width) / 2);
}
同理,⼀⾏4列的情况,需要处理两种情况,最后⼀个元素在第⼆列和最后⼀个元素在第三列的情况。
.list2  li:last-child:nth-child(4n + 2) {
css布局左边固定右边自适应margin-right: calc((100% - $width) / 3 * 2);
}
.list2  li:last-child:nth-child(4n + 3) {
margin-right: calc((100% - $width) / 3 * 1);
}
点击这⾥查看
每⼀⾏不固定列数的情况实现左对齐⽅案
这个我觉得最好的⽅案还是使⽤grid了,⽹上⼀堆,就不做讨论啦。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。