flexbox 學習筆記 參考阮一峯老師的blog

 

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 在換行的時候,才能獲得想要的佈局

 

  • flex-start:與交叉軸的起點對齊。
  • flex-end:與交叉軸的終點對齊。
  • center:與交叉軸的中點對齊。
  • space-between:與交叉軸兩端對齊,軸線之間的間隔平均分佈。
  • space-around:每根軸線兩側的間隔都相等。因此,軸線之間的間隔比軸線與邊框的間隔大一倍。
  • stretch(默認值):軸線佔滿整個交叉軸。

==============================================================================

項目也有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;

}

相關文章
相關標籤/搜索