flex-basis:0 vs 0%

写代码手一抖,就给自己挖了一个坑:

// 异常情况 
flex: 1 1 0; 

// 正常写法
flex: 1 1 0%;

少写了一个百分号(%)结果就在vivo手机上出现flex-item撑不开父级元素,从而导致better-scroll无法正常使用。定位这个问题时,无数遍问候vivo。。发现这个问题后,瞬间。。。

逗比事件总太多,然而总不能掉坑里好几次,发现问题,知根究底:

flex: 1 1 0;
浏览器会解析为:


flex-basic: 0

flex: 1 1 0%; // === flex: 1
会被解析为


flex-basic: 0%

flex-basis 中的0px vs 0% 这两者有什么区别?

首先需要了解flex-basis的作用:

这个属性决定CSS如何给可伸缩项在容器中分配初始大小.
详细说明:Flexbox,终于可以承认自己明白了

image.png

图来源一张图理解Flexbox的3个核心属性

也就是说flex-basis决定了初始大小怎么设定,这样看来其实也没有影响,唯一的猜测就是在解析的时候,没有把 flex: 1 1 0正常解析。也就是0 没有解析为0px。等有空再复现场景再确认一番。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容