CSS中flex-basis、flex-grow、flex-shrink对比

1.flex-basis:设置或检索弹性盒伸缩基准值。

例子:

当子元素无设置width和flex-basis时,根据内容实际宽度显示;

当子元素设置width和flex-basis:auto;时,根据width值显示;.div3的实际宽度为300px

当子元素设置width和flex-basis值时,根据flex-basis值显示;.div4的实际宽度为200px

 

 2.flex-grow:设置或检索弹性盒子的扩展比率(瓜分剩余空间)

 

 例子:

.div2没有设置flex-grow,默认值为0;

div3和div4设置flex-grow为2和1;

剩余空间被分为2+1 = 3份;剩余空间= 600-40-300-200 = 60px;

div2的真实宽度为40px;

div3的真实宽度为300+(60/3*2) = 340px;

div4的真实宽度为200+(60/3) = 220px;

 

3.flex-shrink:指定了 flex 元素的收缩规则。flex 元素仅在默认宽度之和大于容器的时候才会发生收缩,其收缩的大小是依据 flex-shrink 的值

 div2+div3+div4的宽度 = 100+ 300+200 = 600 , 大于父元素div1的宽度400;

.div2没有设置flex-shrink,默认值为1;

div3和div4设置flex-shrink为2和1;

div2的需减少的宽度为100 / (100*1 + 300*2 + 200*1)  * 100 = 11px;div2的真实宽度为100 - 11 = 89px;

div3的需减少的宽度为300 / (100*1 + 300*2 + 200*1)  * 100 = 33px;div3的真实宽度为300 - 11 = 267px;

div4的需减少的宽度为200 / (100*1 + 300*2 + 200*1)  * 100 = 22px;div4的真实宽度为200 - 11 = 178px;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值