彈性佈局 display:flex;
阿新 • • 發佈:2021-08-28
2.1 flex-direction:
- row(預設值):主軸為水平方向,起點在左端。
- row-reverse:主軸為水平方向,起點在右端。
- column:主軸為垂直方向,起點在上沿。
- column-reverse:主軸為垂直方向,起點在下沿。
2.2 flex-wrap:
- nowrap(預設):不換行。
- wrap:換行,第一行在上方。
- wrap-reverse:換行,第一行在下方。
2.3 justify-content:
- flex-start(預設值):左對齊
- flex-end:右對齊
- center: 居中
- space-between:兩端對齊,專案之間的間隔都相等。
- space-around:每個專案兩側的間隔相等。所以,專案之間的間隔比專案與邊框的間隔大一倍。
2.4 align-items:
- flex-start:交叉軸的起點對齊。
- flex-end:交叉軸的終點對齊。
- center:交叉軸的中點對齊。
- baseline: 專案的第一行文字的基線對齊。
- stretch(預設值):如果專案未設定高度或設為auto,將佔滿整個容器的高度。
2.5 align-content:
定義了多根軸線的對齊方式,如果專案只有一根軸線,那麼該屬性將不起作用
- flex-start:與交叉軸的起點對齊。
- flex-end:與交叉軸的終點對齊。
- center:與交叉軸的中點對齊。
- space-between:與交叉軸兩端對齊,軸線之間的間隔平均分佈。
- space-around:每根軸線兩側的間隔都相等。所以,軸線之間的間隔比軸線與邊框的間隔大一倍。
- stretch(預設值):軸線佔滿整個交叉軸。
結合justify-content
和align-items
,看看在flex-direction
兩個不同屬性值的作用下,軸心有什麼不同:
三、專案屬性
3.1 order屬性
3.2 flex-grow屬性
flex-grow
屬性定義專案的放大比例,預設為0
,即如果存在剩餘空間,也不放大。
如果所有專案的flex-grow
屬性都為1,則它們將等分剩餘空間(如果有的話)。如果一個專案的flex-grow
屬性為2,其他專案都為1,則前者佔據的剩餘空間將比其他項多一倍。
3.3 flex-shrink屬性
flex-shrink
.item { flex-shrink: <number>; /* default 1 */ }
如果所有專案的flex-shrink
屬性都為1,當空間不足時,都將等比例縮小。如果一個專案的flex-shrink
屬性為0,其他專案都為1,則空間不足時,前者不縮小。
負值對該屬性無效。
3.4 align-self屬性
align-self
屬性允許單個專案有與其他專案不一樣的對齊方式,可覆蓋align-items
屬性。預設值為auto
,表示繼承父元素的align-items
屬性,如果沒有父元素,則等同於stretch
。
.item { align-self: auto | flex-start | flex-end | center | baseline | stretch; }
彈性佈局預設不改變專案的寬度,但是它預設改變專案的高度。如果專案沒有顯式指定高度,就將佔據容器的所有高度。