Html布局之CSS屬性Flex


一、Flex是什么

        Flex 是 Flexible Box 的縮寫,意為"彈性布局",用來為盒狀模型提供最大的靈活性。

        行內元素(display:inline) 也可以事用Flex進行布局(display:inline-flex)。

        webkit內核的瀏覽器使用方式:display:-webkit-flex

        注意,設為 Flex 布局以后,子元素的floatclearvertical-align屬性將失效。

二、Flex概念解析    

  1. 采用 Flex 布局的元素,稱為 Flex 容器(flex container),簡稱"容器"。它的所有子元素自動成為容器成員,稱為 Flex 項目(flex item),簡稱"項目"。
  2. 容器默認存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)。主軸的開始位置(與邊框的交叉點)叫做main start,結束位置叫做main end;交叉軸的開始位置叫做cross start,結束位置叫做cross end

  3.  

    項目默認沿主軸排列。單個項目占據的主軸空間叫做main size,占據的交叉軸空間叫做cross size

三、Flex容器屬性介紹

  1.  flex-direction屬性:用於設置主軸的排列方式。屬性值包含(row:主軸水平方向,起點在左端;row-reverse:主軸水平方向,起點在右端;column:主軸垂直方向,起點在上方;column-reverse:主軸垂直方向,起點在下方)

  2. flex-wrap屬性:用於設置主軸的項目換行方式。屬性值包含(nowrap:不換行;wrap:換行,第一行在上方;wrap-reverse:換行,第一行在下方);默認值為不換行
  3. flex-flow屬性:是flex-direction屬性和flex-wrap屬性的簡寫形式。默認值為:row nowrap
  4. justify-content屬性:設置項目在主軸上的對齊方式。屬性值包含(flex-start:左對齊;flex-end:右對齊;center:居中;space-between:兩端對齊,項目之間的間隔相等;space-around:每個項目兩側的距離相等,項目之間的間隔比兩端的間隔大一倍)
  5. align-items屬性:設置項目在交叉軸如何對齊。屬性值包含(flex-start:交叉軸起點對齊;flex-end:交叉軸終點對齊;center:交叉軸居中對齊;baseline:項目文字的第一行基線對齊;stretch(默認值):如果項目未設置高度或設置為auto,將占據整個交叉軸)
  6. align-content屬性:設置多跟軸線的對齊方式。只有一根軸線時,該屬性不起作用。屬性值包含(flex-start:與交叉軸的起點對齊;flex-end:與交叉軸的終點對齊;ceneter:與交叉軸的中點對齊;space-between:與交叉軸的兩端對齊,軸線之間間隔平均分布;space-around:每根軸線的間隔都是相等,即軸線間隔比軸線到邊框的距離大;stretch:軸線沾滿整個交叉軸(默認值))

四、Flex項目屬性介紹

  1. order屬性:定義項目的排列順序,越小越靠前;默認值為0;
  2. flex-grow屬性:定義項目的放大比例,默認值為0,即存在剩余空間也不會放大;所有項目的flex-grow屬性設置為1的時候,等分剩余空間;如果其中有一個項目的flex-grow屬性設置為2,那么這個項目將比其他的項目的所占剩余空間大一倍;也就是說數值越大占的剩余空間越多,相同的等分剩余空間;
  3. flex-shrink屬性:定義項目的縮小比例,默認值為1,即空間不足,就會縮小;如果所有項目的該屬性值都為1,那么就會全部等比縮小,如果其中有一個項目的該屬性值為0,則該項目不進行縮小,其他的縮小;縮小的情況都是基於空間不足的時候,屬性值設置為負數無效
  4. flex-basis屬性:設置在分配多余空間之前,項目在主軸占據的空間;瀏覽器根據此屬性計算主軸是否有多余空間;屬性值(auto:默認值,即項目本來的大小;固定像素數值:項目占據固定空間大小)
  5. flex屬性:是flex-grow,flex-shrink和flex-basis的簡寫;默認值:0 1 auto
  6. align-self屬性:設置單個項目的對齊方式,會覆蓋align-items屬性,默認值auto,繼承父元素的屬性,如果沒有父元素,則等同於stretch。屬性值(auto/flex-satrt/flex-end/center/baseline/stretch)


免責聲明!

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



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