flex 佈局筆記:瀏覽器
採用Flex佈局的元素,稱爲Flex容器(flex container),簡稱"容器"。它的全部子元素自動成爲容器成員,稱爲Flex項目(flex item),簡稱"項目"。佈局
設爲Flex佈局之後,子元素的float、clear和vertical-align屬性將失效。flex
行內元素也可使用Flex佈局。spa
項目默認沿主軸排列。單個項目佔據的主軸空間叫作main size,佔據的交叉軸空間叫作cross size。繼承
=========================it
flex-direction屬性決定主軸的方向(即項目的排列方向)。io
.box {class
flex-direction: row | row-reverse | column | column-reverse;容器
}float
————————
默認狀況下,項目都排在一條線(又稱"軸線")上。flex-wrap屬性定義,若是一條軸線排不下,如何換行。
.box{
flex-wrap: nowrap | wrap | wrap-reverse;
}
———————
.box {
flex-flow: <flex-direction> || <flex-wrap>; 默認值:row no-wrap
}
特別注意:flex-direction 會改變主軸和交叉軸的起點和終點,所以也會
影響對齊的方式,不過交叉軸必定是垂直,主軸必定是水平的.
———————
justify-content屬性定義了項目在主軸上的對齊方式。默認值:flex-start
———————
align-items屬性定義項目在交叉軸上如何對齊。
stretch(默認值):若是項目未設置高度或設爲auto,將佔滿整個容器的高度。
—————————
align-content屬性定義了多根軸線的對齊方式。若是項目只有一根軸線,該屬性不起做用。
注意默認值是stretch,通常要設置flex-start 在換行的時候,才能獲得想要的佈局
==============================================================================
項目也有6個屬性:
order屬性定義項目的排列順序。數值越小,排列越靠前,默認爲0。
flex-grow屬性定義項目的放大比例,默認爲0,即若是存在剩餘空間,也不放大。
flex-shrink屬性定義了項目的縮小比例,默認爲1,即若是空間不足,該項目將縮小。
flex-basis屬性定義了在分配多餘空間以前,項目佔據的主軸空間(main size)。瀏覽器根據這個屬性,計算主軸是否有多餘空間。它的默認值爲auto,即項目的原本大小。
flex屬性是flex-grow, flex-shrink 和 flex-basis的簡寫,默認值爲0 1 auto。後兩個屬性可選。
建議優先使用這個屬性,而不是單獨寫三個分離的屬性,由於瀏覽器會推算相關值。
align-self屬性容許單個項目有與其餘項目不同的對齊方式,可覆蓋align-items屬性。默認值爲auto,表示繼承父元素的align-items屬性,若是沒有父元素,則等同於stretch。
.item {
align-self: auto | flex-start | flex-end | center | baseline | stretch;
}