您现在的位置是:网站首页> 编程资料编程资料
让CSS flex布局最后一行列表左对齐的N种方法(小结)CSS字体、文本、列表属性详细介绍CSS 有序或者无序列表的前面的标记 list-style-type 属性的实现css中有序无序列表项list样式设置方法CSS如何设置列表样式属性(看这篇文章就够用了)css列表滑动防止被底部遮住和适配屏幕长一点的机型处理 纯CSS实现页面中的列表收拉效果
                     2021-09-03
                970人已围观
                
                2021-09-03
                970人已围观
            
简介 这篇文章主要介绍了让CSS flex布局最后一行列表左对齐的N种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
引用张鑫旭的一篇文章分享给大家,如果你想进行修改进入链接点到对应的图片生成的链接进入,方可修改。
问题描述
//html//css .container { display: flex; justify-content: space-between; flex-wrap: wrap; } .list { width: 24%; height: 100px; background-color: skyblue; margin-top: 15px; }
这种情况明显与我们想要的情况不同。

行数固定解决方法
方法一 用margin 模拟缝隙
比如
 .container { display: flex; flex-wrap: wrap; } .list { width: 24%; height: 100px; background-color: skyblue; margin-top: 15px; } .list:not(:nth-child(4n)) { margin-right: calc(4% / 3); }样式如下

方法二 根据最后一行个数确定margin
由于每一列的数目都是固定的,因此,我们可以计算出不同个数列表应当多大的margin值才能保证完全左对齐。
例如,假设每行4个元素,结果最后一行只有3个元素,则最后一个元素的margin-right大小是“列表宽度+间隙大小”的话,那最后3个元素也是可以完美左对齐的。
然后,借助树结构伪类数量匹配技术(这篇文章“伪类匹配列表数目实现微信群头像CSS布局的技巧”中的布局技巧就是借助这种技术实现),我们可以知道最后一行有几个元素。
例如:
- .list:last-child:nth-child(4n - 1)说明最后一行,要么3个元素,要么7个元素……
- .list:last-child:nth-child(4n - 2)说明最后一行,要么2个元素,要么6个元素……
 
在本例中,一行就4个元素,因此,我们可以有如下CSS设置:
 .container { display: flex; /* 两端对齐 */ justify-content: space-between; flex-wrap: wrap; } .list { width: 24%; height: 100px; background-color: skyblue; margin-top: 15px; } /* 如果最后一行是3个元素 */ .list:last-child:nth-child(4n - 1) { margin-right: calc(24% + 4% / 3); } /* 如果最后一行是2个元素 */ .list:last-child:nth-child(4n - 2) { margin-right: calc(48% + 8% / 3); }呈现的现象如下

即使你做了删除操作,依旧是完好的样式。这一点很佩服
方法三 如果子元素的宽度不固定
这个就很难处理,但是依旧有解决方法,程序真是越来越有意思。
 这个时候用上边的那种方法就比较困难了,因为宽度不固定不能根据宽度计算出margin的值
(1)最后一项margin-right:auto;
 .container { display: flex; justify-content: space-between; flex-wrap: wrap; } .list { background-color: skyblue; margin: 10px; } /* 最后一项margin-right:auto */ .list:last-child { margin-right: auto; }
(2)创建伪元素并设置flex:auto或flex:1
 .container { display: flex; justify-content: space-between; flex-wrap: wrap; } .list { background-color: skyblue; margin: 10px; } /* 使用伪元素辅助左对齐 */ .container::after { content: ''; flex: auto; /* 或者flex: 1 */ }
四、如果每一行列数不固定
//HTML代码://比div少一个即可!//CSS代码: .container { display: flex; justify-content: space-between; flex-wrap: wrap; margin-right: -10px; } .list { width: 100px; height:100px; background-color: skyblue; margin: 15px 10px 0 0; } .container > i { width: 100px; margin-right: 10px; }

到此这篇关于让CSS flex布局最后一行列表左对齐的N种方法(小结)的文章就介绍到这了,更多相关CSS flex最后一行列表左对齐内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
相关内容
- 解决移动端1px边框最好的方法(推荐)解决移动端1px边框问题的几种方法(5种)详解移动端Html5页面中1px边框的几种解决方法reset.css引入以及1px边框问题的解决方法
- CSS中的四种定位区别详解CSS之定位布局(position,定位布局技巧)关于CSS中定位的小结css3 transform导致子元素固定定位变成绝对定位的方法css定位position引发的层级关系问题详解深入学习CSS中如何使用定位(小结)详解css粘性定位position:sticky问题采坑
- CSS字体、文本、列表属性详细介绍CSS 有序或者无序列表的前面的标记 list-style-type 属性的实现css中有序无序列表项list样式设置方法使用CSS计数器美化数字有序列表的实现方法
- css3 flex布局实现平均分配元素的示例代码使用Flex布局实现头部固定内容区域滚动的方法详解flex布局下图片变形的解决方法详解flex布局与position:absolute/fixed的冲突问题Flex布局实现div内部子元素垂直居中的示例Flex布局让子项保持自身高度的实现让CSS flex布局最后一行列表左对齐的N种方法(小结)flex布局实现上下固定中间滑动的布局方式flex是什么及flex布局语法教程详解
- flex布局实现上下固定中间滑动的布局方式使用Flex布局实现头部固定内容区域滚动的方法详解flex布局下图片变形的解决方法详解flex布局与position:absolute/fixed的冲突问题Flex布局实现div内部子元素垂直居中的示例Flex布局让子项保持自身高度的实现让CSS flex布局最后一行列表左对齐的N种方法(小结)css3 flex布局实现平均分配元素的示例代码flex是什么及flex布局语法教程详解
- flex布局换行空白间隙之align-content的使用flex布局实现无缝滚动的示例代码解决flex布局space-between最后一行左对齐的方法Flex移动布局中单行和双行布局的区别及使用详解CSS3新增布局之: flex详解flex布局实现每行固定数量+自适应布局浅谈Flex布局与缩放比例计算Flex布局做出自适应页面(语法和案例)深入浅析CSS3中的Flex布局整理详解CSS中的flex布局css用Flex布局制作简易柱状图的实现
- css 命名:BEM, scoped css, css modules 与 css-in-js详解CSS使用BEM命名规范实践CSS样式书写顺序和命名规范及注意事项值得收藏的CSS命名规范(规则)常用的CSS命名规则 好的 CSS 命名规范可以节约 Debug 时间CSS规范BEM CSS和OOCSS的示例代码详解详解css BEM书写规范 从QQtabBar看css命名规范BEM的详细介绍
- 纯CSS实现图片百叶窗展示效果示例非常漂亮的CSS3百叶窗焦点图动画
- 详解中文字体在CSS样式中font-family对应的英文名称
 
                                
                                                         
                                
                                                         
                                
                                                         
 
    