12. Flexbox
flex-direction
在使用flex時,首先可以控制其流動方向,使用 flex-direction關鍵字,有以下選擇:- flex-direction: column; 由上往下
- flex-direction: column-reverse; 由下往上
- flex-direction: row; 由左往右
- flex-direction: row-reverse; 由右往左
A
B
C
D
E
F
flex-wrap
接下來介紹flex-wrap屬性,這是關於容器中元件超過容器寬度時的處理, 在縮放視窗時會用到。有以下幾種選擇:- flex-wrap: nowrap; 不換行(預設值)
- flex-direction: wrap; 換行
- flex-direction: wrap-reverse; 由下往上換行
- flex-flow: row wrap; 換行
顯示結果如下:試著縮放視窗看其變化。
A
B
C
D
E
F
G
H
I
J
K
L
justify-content
跟Grid類似,Flex也有justify-content屬性,相關參數如下:- justify-content: flex-start; 靠容器開始端(預設值)
- justify-content: flex-end; 靠容器結束端
- justify-content: center; 置中
- justify-content: space-around; 元件兩端都有空間
- justify-content: space-between; 平分空間,與容器沒有間隙
原則上與Grid的justify-content類似。在第一例中加上 justify-content: space-around; 這行,顯示結果如下:
A
B
C
D
E
F
align-items
在垂直向對齊則使用align-items屬性,可選擇的參數有:- align-items: stretch; (預設值)
- align-items: center;
- align-items: baseline;
- align-items: flex-start;
- align-items: flext-end;
修改css code如下:
我們調整個別元件的height,可以看到元件都根據中點置中了。
A
B
C
D
E
F
align-content
align-content是調整的是垂直向多行對齊。可用的參數有:- align-content: stretch; (預設值) 拉伸填滿
- align-content: space-between; 平分空間,靠兩端
- align-content: space-around; 元件兩端有平分空間
- align-content: center; 置中
- align-content: flex-start; 靠開始端
- align-content: flext-end; 靠結束端
舉例如下,為了較好顯示,容器內元件增加到12個。
結果顯示如下:
A
B
C
D
E
F
G
H
I
J
K
L