flex:1与flex-grow:1最简单的区别与计算

一、flex的宽度计算方式是容器剩余空间+具有flex属性的元素自身尺寸:
例如在一个width:400px的容器中,有a、b、c 三个width:100px的元素,给a元素flex:2的属性,给b元素flex:1的属性,不给c元素。
计算宽度是:剩余空间(400px-300px):100px + 参与flex项目尺寸200px=300px 再按3份的比例给a2份,b1份。
最后:a:width:200px ; b:width:100px ; c:width:100px

二、flex:grow的宽度计算方式只是容器剩余空间:
还是在一个width:400px的容器中,有a、b、c 三个width:100px的元素,给a元素flex-grow:2的属性,给b元素flex-grow:1的属性,不给c元素。
计算宽度是:剩余空间(400px-300px):100px
剩余100px再按3份比例给a2份+自身本身尺寸,b1份+自身本身尺寸
最后:a:width:166.7px ; b:width:133.3px ; c:width:100px

三、如果一个容器中的所有项目都给了flex或flex-grow属性,那么在计算中没有差别。两者最大的差别就在于flex的宽度是具有flex属性(即参与项目)尺寸再加上剩余空间。再除以份数剩以比例。
再举2个例子:
1、 在一个width:300px的容器中,有a、b、c 三个width:100px的元素,给a元素flex:3的属性,给b元素flex:2的属性,不给c元素。
计算宽度是:剩余空间0 + 参与flex项目尺寸200px=200px 再按5份的比例给a3份(200除以5剩以3),b2份。
最后:a:width:120px ; b:width:80px ; c:width:100px

2、 在一个width:300px的容器中,有a、b、c 三个width:100px的元素,给a元素flex-grow:3的属性,给b元素flex-grow:2的属性,不给c元素。
计算宽度是:剩余空间0 项目没有可分配的空间,尺度不会发生变化。
最后:a:width:100px ; b:width:100px ; c:width:100px

                                                                                  are U get?
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值