flex深度布局-子元素的尺寸计算

flex的属性的值是 flex-grow, flex-shrink, flex-basis的缩写

flex的属性的值是 flex-grow flex-shrink flex-basis的缩写,

  • 1.默认值是 0 1 auto;
  • 2.当值为none即(0 0 auto);
  • 3.当值为auto即 (1 1 auto);
  • 4.当flex取值为一个非负数字,则该数字为flex-grow的值, flex-shrink取1, flex-basis取0%;
  • 5.当flex取值为一个长度或百分比,则视为flex-basis的值, flex-grow取1, flex-shrink取1;
  • 6.当 flex 取值为两个非负数字,则分别视为 flex-grow 和 flex-shrink 的值,flex-basis 取 0%;
  • 7.当 flex 取值为一个非负数字和一个长度或百分比,则分别视为 flex-grow 和 flex-basis 的值,flex-shrink 取 1


    
        
        
        
        flex的深度尝试
    
    
        
        

flex-basis是如何影响计算

开始块
中间块
尾部块

flex-basis 规定的是子元素的基准值。所以是否溢出的计算与此属性息息相关。
flex-basis 规定的范围取决于 box-sizing。这里主要讨论以下 flex-basis 的取值情况:

  • auto:首先检索该子元素的主尺寸,如果主尺寸不为 auto,则使用值采取主尺寸之值;如果也是 auto,则使用值为 content。
  • content:指根据该子元素的内容自动布局。有的用户代理没有实现取 content 值,等效的替代方案是 flex-basis 和主尺寸都取 auto。
  • 百分比:根据其包含块(即伸缩父容器)的主尺寸计算。如果包含块的主尺寸未定义(即父容器的主尺寸取决于子元素),则计算结果和设为 auto 一样。

你可能感兴趣的:(flex深度布局-子元素的尺寸计算)