【CSS】虎躯一震!flex=1 和 flex-grow=1 竟然不一样!

本文通过实际案例对比了在CSS布局中使用flex与仅使用flex-grow属性的效果差异。特别是当元素包含大量文本时,flex-grow=1可能导致元素超出其应有的空间范围。

在以前做项目的时候,使用 flex,而且当遇到 子元素 需要 占满剩余空间 的时候,习惯性的会添加 flex=1 这个属性。

不假思索,不做考虑,不做深究,毫不犹豫。

而恰好此时,同事把我的 flex=1 改成了 flex-grow=1,我一看,好像也可以,就没再多想。

但是看着网页发现不太对劲!!!!怎么设置了 flex-grow=1 的元素不是占满剩余元素???

而是把别人的地方也给占了一部分!!这是什么鬼!!!

而我改成了 flex=1 的时候,又恢复正常了!!!这特喵的什么

                                                      004226_QrMj_3060934.jpg

 

于是我开始漫长的写 Demo 之路>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

于是我写了个 Demo ,发现了 真相!!!

  1. 当 设置了 flex-grow 的子元素,里面没有文字内容的时候,是正常的!!
    003555_yeQF_3060934.png
     
  2. 真相就在这里!!!当我给 设置 了 flex-grow=1 的子元素,添加很多文字内容的时候!!
    那个子元素开始把其他兄弟元素的领地侵占了!!!!这能忍?????
    003527_p0IL_3060934.png

    而我把 flex-grow 改为 flex 的时候,一切又回到了最初的起点,perfect

    003431_EBEA_3060934.png

 

于是我开始漫长的  找理由 之路>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

问题1:flex=1 和 flex-grow =1 有什么区别????

  1. flex = 1 的时候,设置了 三个属性
    flex-grow=1,flex-shrink=1,flex-basis=0%
     
  2. 只设置 flex-grow =1 的时候
    flex-grow=1,flex-shrink=1(默认值),flex-basis=auto(默认值)

其实没有问题2,不要因为写了问题1,感觉还有其他问题

                                                  004159_weeR_3060934.jpg 

在这里,我就不解释 这 三个属性 是什么意思了,因为我还要去洗澡,明天上班,继续学习

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3060934/blog/1583663

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值