1. 程式人生 > >彈性佈局flex:1詳解

彈性佈局flex:1詳解

flex-shrink的預設值為1,如果沒有顯示定義該屬性,將會自動按照預設值1在所有因子相加之後計算比率來進行空間收縮。

本例中c顯式的定義了flex-shrink,a,b沒有顯式定義,但將根據預設值1來計算,可以看到總共將剩餘空間分成了5份,其中a佔1份,b佔1份,c佔3分,即1:1:3

我們可以看到父容器定義為400px,子項被定義為200px,相加之後即為600px,超出父容器200px。那麼這麼超出的200px需要被a,b,c消化

通過收縮因子,所以加權綜合可得200*1+200*1+200*3=1000px;
於是我們可以計算a,b,c將被移除的溢位量是多少:
a被移除溢位量:(200*1/1000)*200,即約等於40px
b被移除溢位量:(200*1/1000)*200,即約等於40px
c被移除溢位量:(200*3/1000)*200,即約等於120px
最後a,b,c的實際寬度分別為:200-40=160px, 200-40=160px, 200-120=80px