多列布局是頁面設(shè)計中常見需求魁瞪,而且經(jīng)常會指定某列有固定寬度满力,或者某列可以自適應(yīng)等篷角。
針對這類需求,使用flex
布局的項目特性就可以基本滿足一屋。之前的文章已經(jīng)介紹過flex
布局的容器特性:CSS彈性布局簡單了解。
項目特性
-
order
order
屬性定義項目的排列順序被啼。數(shù)值越小曾撤,排列越靠前,默認(rèn)為0《锟。可以設(shè)置負(fù)值垦沉。 -
flex-grow
flex-grow
屬性定義項目的放大比例,默認(rèn)為0劣像,即如果存在剩余空間乡话,也不放大。
值得注意的是:
(1)flex-grow
不是絕對值耳奕,它是一個相對值绑青。
即如果所有項目的flex-grow
屬性都為1,則它們將等分剩余空間屋群。
而如果一個項目的flex-grow
屬性為2闸婴,其他項目都為1,則前者占據(jù)的剩余空間將比其他項多一倍芍躏。
(2)flex-grow
只適用于主軸(main axis)邪乍,即與flex-direction
的取值相關(guān)。 -
flex-shrink
flex-shrink
屬性定義了項目的縮小比例对竣,默認(rèn)為1庇楞,即如果空間不足,該項目將縮小否纬。
值得注意的是:
(1)如果所有項目的flex-shrink屬性都為1吕晌,當(dāng)空間不足時,都將等比例縮小临燃。
(2)如果一個項目的flex-shrink屬性為0睛驳,其他項目都為1,則空間不足時膜廊,前者不縮小乏沸。
(3)負(fù)值對該屬性無效。 -
flex-basis
flex-basis
屬性定義了在分配多余空間之前爪瓜,項目占據(jù)的主軸空間(main size)大小蹬跃。瀏覽器根據(jù)這個屬性,計算主軸是否有多余空間铆铆。它的默認(rèn)值為auto炬转,即項目的本來大小。
值得注意的是:
(1)它可以設(shè)固定值算灸,如此則項目將占據(jù)固定空間扼劈,等價于width
或height
的作用。
(2)flex-basis
的作用有時會與width
或height
重疊菲驴,這是因為該屬性是 根據(jù)flex-direction
的不同來確定width
或height
的荐吵。 -
flex
flex
屬性是flex-grow
,flex-shrink
和flex-basis
的簡寫,默認(rèn)值為0 1 auto
。后兩個屬性可選先煎。
該屬性有兩個快捷值:auto (1 1 auto)
和none (0 0 auto)
贼涩。 -
align-self
align-self
屬性允許單個項目有與其他項目不一樣的對齊方式,可覆蓋align-items
屬性薯蝎。默認(rèn)值為auto
遥倦,表示繼承父元素的align-items
屬性,如果沒有父元素占锯,則等同于stretch
袒哥,即如果項目未設(shè)置高度或設(shè)為auto
,將占滿整個容器的高度消略。