flex 平铺布局_flex 布局 自适应 靠左对齐

本文介绍了如何使用flex布局来实现自适应平铺,让卡片在换行时靠左对齐,不依赖JavaScript。重点讲解了通过调整`justify-content`、`flex-wrap`属性,结合`calc`和`media query`计算间距的方法,以适应不同屏幕宽度。同时,提到了float和grid布局的替代方案。
摘要由CSDN通过智能技术生成

需求

假设我有5个300px*300px的卡片,需要根据屏幕宽度自适用平铺排列,并在换行的时候靠左对齐。

不能用js实现,用js就太简单了,而且代码会比较啰嗦和让人困扰。

核心知识

利用flex容器的justify-content: flex-start和flex-wrap: wrap完成自动换行靠左需求

利用calc和margin-left完成子项目平铺需求

单单利用justify-content: space-evenly完成不了需求

直觉上,利用这个属性和wrap就可以满足,但实际上不可以,因为会每行各自计算空隙,这样会导致最后一行对不齐,效果如下

利用flex-start和margin-left: calc实现

1. 数学公式

flex-start可以满足我们靠左对齐的需求。接下来,我们只要完成间距的需求就可以了。子项目宽度是固定的300px,那么根据容器的宽度,肯定就能计算出来间距了,例如宽1000px的容器,那肯定只能容纳3个子项目,剩余100px空间,一个四个空隙,那每个空隙就是25px。

conWidth 容器宽度

itemWidth 子项目宽度

每行子项目个数 n = Math.floor(conWidth/itemWidth)

嗯,貌似是搞定了,我们转化成css中calc就是:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值