彈性布局


[Flex彈性布局]

1、了解兩個基本概念:

容器:需要添加彈性布局的父元素;

項目:彈性布局容器中的每一個子元素,稱為項目;

2、彈性布局的使用?

① 給父容器添加display: flex/inline-flex;屬性,即可使容器內容采用彈性布局顯示,而不遵循常規文檔流的顯示方式;

② 容器添加彈性布局后,僅僅是容器內容采用彈性布局,而容器自身在文檔流中的定位方式依然遵循常規文檔流;

display: flex;容器添加彈性布局后,顯示為塊級元素;

    display: inline-flex;容器添加彈性布局后,顯示為 行級元素;

④設為 Flex 布局以后,子元素的float、clear和vertical-align屬性將失效。但是position定位屬性依然生效。

3、作用於容器的相關屬性:

 ① flex-direction屬性決定主軸的方向(即項目的排列方向)。

      row(默認值):主軸為水平方向,起點在左端;

      row-reverse:主軸為水平方向,起點在左端;

      column:主軸為垂直方向,起點在上端。

      column-reverse:主軸為垂直方向,起點在下端。

②flex-wrap屬性:定義,如果一條軸線排不下,如何換行。

 

  (1)nowrap(默認):不換行。如果容器寬度不夠時,每個項目會被擠壓寬度;

  (2) wrap:換行,並且第一行在容器最上方;

  (3) wrap-reverse:換行,並且第一行在容器最下方 ;

③flex-flow屬性是flex-direction屬性和flex-wrap屬性的簡寫形式,默認值為row nowrap。

④justify-content屬性定義了項目在主軸上的對齊方式。

     此屬性與主軸方向息息相關。

   主軸方向為:

   row-起點在左邊

  row-reverse-起點在右邊

  column- 起點在上端

  column-reverse-起點在下端。

flex-start(默認值):項目位於主軸起點

flex-end:項目位於主軸終點

center: 居中

space-between:兩端對齊,項目之間的間隔都相等。(開頭和最后的項目,與父容器的邊緣沒有間隔)

space-around:每個項目兩側的間隔相等。所以,項目之間的間隔比項目與邊框的間隔大一倍。(開頭和最后的項目,與父容器的邊緣有一定的間隔,是項目間隔的一半。)

⑤ align-items屬性定義項目在交叉軸上如何對齊。

flex-start:交叉軸的起點對齊。

flex-end:交叉軸的終點對齊。

center:交叉軸的中點對齊。

baseline: 項目的第一行文字的基線對齊。(文字的行高,字體大小會影響每行的基線)

stretch(默認值):如果項目未設置高度或設為auto,將占滿整個容器的高度。

⑥ align-content屬性定義了多根軸線的對齊方式。如果項目只有一根軸線,該屬性不起作用。

(當項目換為多行時,可使用align-content取代align-items)

flex-start:與交叉軸的起點對齊。

flex-end:與交叉軸的終點對齊。

center:與交叉軸的中點對齊。

space-between:與交叉軸兩端對齊,軸線之間的間隔平均分布。

space-around:每根軸線兩側的間隔都相等。所以,軸線之間的間隔比軸線與邊框的間隔大一倍。

stretch(默認值):軸線占滿整個交叉軸。

4、作用於項目上的屬性:

①order屬性定義項目的排列順序。數值越小,排列越靠前,默認為0。

②flex-grow屬性定義項目的放大比例,默認為0,即如果存在剩余空間,也不放大。可以為負數。

③flex-shrink屬性定義了項目的縮小比例,默認為1,即如果空間不足,該項目將縮小。0為不縮小。

     如果所有項目的flex-shrink屬性都為1,當空間不足時,都將等比例縮小。如果一個項目的flex-shrink屬性為0,其他項目都為1,則空間不足時,前者不縮小。

  注意:負值對該屬性無效。

④flex-basis屬性定義項目占據的主軸空間。(如果主軸為水平,則設置這個屬性,相當於設置項目的寬度,原寬度width將會失效。)

⑤flex屬性是flex-grow, flex-shrink 和 flex-basis的簡寫,默認值為0 1 auto。后兩個屬性可選。這個屬性有兩個快捷設置:auto=(1 1 auto)/none=(0 0 auto)

⑥align-self:定義單個項目自身在交叉軸上的排列方式,可以覆蓋掉容器上的align-items屬性。

屬性值:與align-items相同,默認值為auto,表示繼承父容器的align-items屬性值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM