CSS-flex

CSS flex 排版
缺點 - 無法跨行跨列排版

可參考 -> https://codepen.io/Jimmywei01/pen/wbemBx?editors=1100

flex 排版方向位置

flex - 依照 排版方向(row column) 決定 分布位置( justify-content-主軸 align-items-副軸)

  • 水平的起點與終點 ( main start、main end )
  • 垂直的起點與終點 ( cross start、cross end )
  • 水平軸與垂直軸 ( main axis、cross axis )
  • 元素具有水平尺寸與垂直尺寸 ( main size、cross size )

title

flex 外容器屬性

  • display
  • flex-direction
  • justify-content
  • flex-wrap
  • align-items
  • align-content

flex 內元件屬性

  • flex
    • flex-grow
    • flex-shrink
    • flex-basis
  • align-self
  • order

title

外容器

display

  • flex
  • inline-flex

title

flex-direction - 分布方向

  • column:從上到下
  • column-reverse:與 column 相反
  • row:預設值,由左到右
  • row-reverse:與 row 相反

title

justify-content - 主軸 flexbox 的「水平對齊」位置

  • flex-start:預設值,對齊最左邊的 main start
  • flex-end:對齊最左邊的 main end
  • center:水平置中
  • space-between:平均分配內容元素,左右元素將會與 main start 和 main end 貼齊
  • space-around:平均分配內容元素,兩旁間距平均分配
  • space-evenly(空間均勻):平均分配全部內容元素

title

flex-wrap - 超出範圍時是否換行的屬性,分為換行、不換行、換行時反轉

  • nowrap:預設值,單行
  • wrap:多行
  • wrap-reverse:多行,但內容元素反轉

title

align-items - 副軸(單行元素) Flexbox 的「垂直對齊」位置

無效屬性: space-between , space-around , space-evenly

  • flex-start:預設值,對齊最上面的 cross start
  • flex-end:對齊最下面的 cross end
  • center:垂直置中
  • stretch:將內容元素全部撐開至 flexbox 的高度
    • 在高度被限制的情況下不會正常伸展
  • baseline:以所有元素內容的基線作為對齊標準

title

物件排列: justify-content + align-items

title

align-content - 副軸(多行元素) flexbox 的「垂直對齊」位置

  • flex-start:預設值,對齊最上面的 cross start
  • flex-end:對齊最下面的 cross end
  • center:垂直置中
  • space-between:將第一行與最後一行分別對齊最上方與最下方
  • space-around:每行平均分配間距
  • stretch:內容元素全部撐開

title

內元件

flex

  • 由三個屬性組合而成,flex-growflex-shrinkflex-basis,如果 flex 只填了一個數值(無單位),那麼預設就是以 flex-grow 的方式呈現
    • flex-grow : 指定 flex 項目的放大比例,按照數字做相對應的「伸展」比例分配,預設值為 0,不會進行彈性變化,不可為負值,設為 1 則會進行彈性變化
    • flex-shrink:指定 flex 項目的縮小比例,按照數字做相對應的「壓縮」比例分配(值越大壓縮越小),預設值為 1,設為 0 的話不會進行彈性變化,不可為負值
    • flex-basis: 元件的基準值,可使用不同的單位值,子元素的基本大小作為父元素的大小比較基準,預設值為 0,沒有設定的時候會以直接採用 flex-grow 屬性

title

align-self - 和 align-items 相同,但目的不同(多行元素處理) align-self 的作用在於覆寫已經套用 align-items 的屬性

  • flex-start:預設值,對齊最上面的 cross start
  • flex-end:對齊最下面的 cross end
  • center:垂直置中
  • stretch:將內容元素全部撐開至 flexbox 的高度
  • baseline:以所有元素內容的基線作為對齊標準

title

order - 控制 flex 容器中 flex 項目的排列順序,默認值為 0

  • CSS 設定 排列順序:-1、flex:2、0、1、2

title

0%