此類屬性全部為項目屬性
1、flex-grow:定義項目放大比例 默認為0(即使有剩余空間都不分配)。值為num;無單位
(1)項目沒有給定寬度:
默認按照比例分配此時會造成寬度分配不均需要給所有項目加寬度width:0;
(2)項目給定寬度:
會分配剩余空間(寬度小于容器的前提下)
按照flex-grow: num;分配
!!!注意是分配剩余空間
2、flex-shrink:定義收縮比例 默認值為1(即使超出也不會超出會壓縮)。值為num;無單位
算法:
加權綜合(每個項目寬度自己的shrink 的總和)
收縮值(項目的寬度shrink/加權綜合)
項目實際的寬度(項目初始寬度-收縮值)
!!!注意是壓縮超出空間
例:
{ width: 100px; flex-shrink: 1; }
{ width: 200px; flex-shrink: 1; }
{ width: 200px; flex-shrink: 3; }//按照1:2:6(1*1:2*1:2*3)
3、flex-basis: 通俗的說就是寬度,
分配空間的時候要根據這一個值來進行計算,默認值auto(width屬性或者內容撐開的寬度),也就是說,如果有這個屬性,則按照這個屬性分配,如果沒有,按照width分配,width也沒有,按內容撐開的寬度分配
優先級:
flex-basis > width > 無寬度(內容撐開)
4、復合屬性flex: flex-grow flex-shrink flex-basis;
當容器寬度改變時,會根據給定的比例進行伸縮。
5、align-self 單獨的項目在交叉軸上的對齊方式
屬性值:stretch //默認值
flex-start //和默認值一樣
center //居中
flex-end //主軸尾對齊
baseline //基線對其
注:如果要用baseline對齊,則這些項目都要有這個屬性,是按照最大的字體的基線對齊