簡介:
flex是flex-grow,flex-shrink和flex-basis的縮寫,flex屬性值可以只指定一個屬性的值,而另外的屬性值採
用各自在flex屬性中的的初始值,但是有一點要注意的是:flex屬性中flex-grow和flex-basis的初始值和它們原始
的默認值不同,至於爲什麼不同,mdn中有明確的說過這樣的設計是爲了讓「flex」縮寫在最常見的情景下比較好用。
flex中對應各屬性的初始值:
flex-grow
flex-grow用於設置各item項按對應比例劃分剩餘空間,若flex中沒有指定flex-grow,則相當於設置了
flex-grow:1
flex-shrink
flex-shrink用於設置item的總和超出容器空間時,各item的收縮比例,若flex中沒有指定flex-shrink,
則等同於設置了flex-shrink:1
flex-basis
flex-basis用於設置各item項的伸縮基準值,可以取值爲長度或百分比,如果flex中省略了該屬性,則相當
於設置了flex-basis:0.
flex的不同取值
flex的值的完整寫法是[ ],不過它的取值還有可能是單個數字
或者單個百分比等,不同種類的取值所表示的意思是大有不同的。
flex值爲none
當flex爲none時,等同於flex: 0 0 auto;
flex值爲auto
當flex爲auto時,等同於flex: 1 1 auto;
flex值爲一個非負數字
當flex取值爲一個數字,則該數字是設置的flex-grow值,其它兩個屬性用初始值,如flex:1時,
等同於flex: 1 1 0%
flex值爲兩個非負數字
當flex取值爲2個數字時,相當於設置的flex-grow和flex-shrink值,flex-basis取值爲初始值,
如flex:1 0時,等同於flex: 1 0 0%
flex值爲一個數字和一個長度或百分比時
當flex取值爲1個數字和1個長度或百分比時,設置的是flex-grow和flex-basis的值,flex-shrink值
時初始值,如flex:1 20%,等同於flex: 1 1 20%