Flex 是 Flexible Box 的縮寫,意為"彈性布局",用來為盒狀模型提供最大的靈活性。
任何一個容器都可以指定為 Flex 布局
基本概念:
采用 Flex 布局的元素,稱為 Flex 容器(flex container),簡稱"容器"。它的所有子元素自動成為容器成員,稱為 Flex 項目(flex item),簡稱"項目"。
- flexDirection
- 屬性決定主軸的方向(即項目的排列方向)
flexDirection: row | row-reverse | column | column-reverse;
row(默認值):主軸為水平方向,起點在左端。
row-reverse:主軸為水平方向,起點在右端。
column:主軸為垂直方向,起點在上沿。
column-reverse:主軸為垂直方向,起點在下沿。
- flexWrap
- 默認情況下,項目都排在一條線(又稱"軸線")上。flex-wrap屬性定義,如果一條軸線排不下,如何換行。
flexWrap: nowrap | wrap | wrap-reverse;
```
1.nowrap(默認):不換行。
2.wrap:換行,第一行在上方。
3.wrap-reverse:換行,第一行在下方。
* flexFlow
* flex-flow屬性是flexDirection屬性和flexWrap屬性的簡寫形式,默認值為row nowrap。
<flex-direction> || <flex-wrap>;
* justifyContent
* justifyContent屬性定義了項目在主軸上的對齊方式。
justifyContent: flex-start | flex-end | center | space-between | space-around;
flex-start(默認值):左對齊
flex-end:右對齊
center: 居中
space-between:兩端對齊,項目之間的間隔都相等。
space-around:每個項目兩側的間隔相等。所以,項目之間的間隔比項目與邊框的間隔大一倍。
* alignItems
* alignItems屬性定義項目在交叉軸上如何對齊。
alignItems: flex-start | flex-end | center | baseline | stretch;
flex-start:交叉軸的起點對齊。
flex-end:交叉軸的終點對齊。
center:交叉軸的中點對齊。
baseline: 項目的第一行文字的基線對齊。
stretch(默認值):如果項目未設置高度或設為auto,將占滿整個容器的高度
* alignContent
* alignContent屬性定義了多根軸線的對齊方式。如果項目只有一根軸線,該屬性不起作用。
alignContent: flex-start | flex-end | center | space-between | space-around | stretch;
flex-start:與交叉軸的起點對齊。
flex-end:與交叉軸的終點對齊。
center:與交叉軸的中點對齊。
space-between:與交叉軸兩端對齊,軸線之間的間隔平均分布。
space-around:每根軸線兩側的間隔都相等。所以,軸線之間的間隔比軸線與邊框的間隔大一倍。
stretch(默認值):軸線占滿整個交叉軸。