Lidemy / mentor-program-2nd-futianshen

mentor-program-2nd-futianshen created by GitHub Classroom
14 stars 2 forks source link

用抽象二維座標系理解 Flexbox #28

Open futianshen opened 5 years ago

futianshen commented 5 years ago

什麼是 Flexbox ?

為什麼要使用 Flexbox ?

如果不使用 Flexbox ?

在 Flexbox 出現之前是怎麼排版的?

table (已過時) float grid

如何使用 Flexbox ?

選定範圍,訂定座標,調整順序,改變位置。

1. 定義一個 Flexbox 容器

display: flex default 原點在容器左上角,橫軸為 X 、縱軸為 Y ,容器內元素的排列順序為 0 -> ∞ 。

2. 訂定原點與座標軸(X, Y)

flex-flow: = flex-direction: + flex-wrap:

flex-direction: 座標方向

flex-wrap: 分行

依據以上可分為八種情況( Box Model 4角 * 2 座標軸交換)

原點 橫軸為 X 、縱軸為 Y 橫軸為 Y 、縱軸為 X
左上角 flex-flow: row wrapdefault) flex-flow: column wrap
左下角 flex-flow: row wrap-reverse flex-flow: column-reverse wrap
右上角 flex-flow: row-reverse wrap flex-flow: column wrap-reverse
右下角 flex-flow: row-reverse wrap-reverse flex-flow: column-reverse wrap-reverse

3. 調整 Class 的先後順序

order: 改變 Flexbox 內「單一 Class」的先後順序

4-1. 改變 Flexbox 內元素,在 X 軸上的位置分佈

justify-content:

4-2. 改變 Flexbox 內元素,在 Y 軸上的位置分佈

align-items: 改變 Flexbox 內 「所有元素」 相對於容器的位置 align-self: 改變 Flexbox 內 「單一 Class」 相對於容器的位置

align-content: 改變 Flexbox 內「行與行之間」相對於容器的位置 (使用條件:flex-wrap不為nowrap

如何幫助理解

把圖畫出來

參考資料

FLEXBOX FROGGY 簡單介紹 CSS Flexbox