天天看點

微信小程式flex布局

Flex布局:意為“彈性布局”,為盒模型提供巨大的靈活性

使用說明:

  1. 任何容器都可以使用flex布局

    display: flex;

2.行内元素可以使用flex布局

display: inline-flex;

外層flex容器的屬性:

1.flex-direction屬性

flex-direction: row | row-reverse | column | column-reverse;

row(預設值):主軸為水準方向,起點在左端。

row-reverse:主軸為水準方向,起點在右端。

column:主軸為垂直方向,起點在上沿。

column-reverse:主軸為垂直方向,起點在下沿。

2.flex-wrap屬性

flex-wrap: nowrap | wrap | wrap-reverse;

nowrap (預設值) :不換行。

wrap:換行,第一行在上方。

wrap-reverse:換行,第一行在下方。

  1. flex-flow屬性:是flex-direction屬性和flex-wrap屬性的簡寫形式,預設值為row nowrap

flex-flow: || ;

  1. justify-content屬性:定義item在主軸上的對齊方式

justify-content: flex-start | flex-end | center | space-between | space-around;

flex-start(預設值):左對齊

flex-end:右對齊

center: 居中

space-between:兩端對齊,項目之間的間隔都相等。

space-around:每個項目兩側的間隔相等。是以,項目之間的間隔比項目與邊框的間隔大一倍。

  1. align-items屬性:定義項目在交叉軸上如何對齊

align-items: flex-start | flex-end | center | baseline | stretch;

flex-start:交叉軸的起點對齊。

flex-end:交叉軸的終點對齊。

center:交叉軸的中點對齊。

baseline: 項目的第一行文字的基線對齊。

stretch(預設值):如果項目未設定高度或設為auto,将占滿整個容器的高度。

  1. align-content屬性:定義多跟軸線的對齊方式,如果隻有一根軸線則不起作用

    align-content: flex-start | flex-end | center | space-between | space-around | stretch;

flex-start:與交叉軸的起點對齊。

flex-end:與交叉軸的終點對齊。

center:與交叉軸的中點對齊。

space-between:與交叉軸兩端對齊,軸線之間的間隔平均分布。

space-around:每根軸線兩側的間隔都相等。是以,軸線之間的間隔比軸線與邊框的間隔大一倍。

stretch(預設值):軸線占滿整個交叉軸。

項目item的屬性

  1. order屬性:定義項目的排列順序,數值越小越靠前,預設值為0,負數在0前面

order: ;

  1. flex-grow屬性:定義項目的放大比例,預設為0,即如果存在剩餘空間,也不放大

    flex-grow: ; / default 0 /

  2. flex-shrink屬性:定義項目縮小比例,預設是1,即如果空間不足,該item将縮小

    flex-shrink: ; / default 1 /

  3. flex-basis屬性:在配置設定多餘空間之前,item占據的主軸空間(main size),預設值auto,即item本身大小

flex-basis: | auto; / default auto /

  1. flex屬性:是flex-grow,flex-shrink,flex-basis的簡寫,預設值為0 1 auto,後面兩個屬性可選

    flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]

該屬性有兩個快捷值:auto (1 1 auto) 和 none (0 0 auto)。

建議優先使用這個屬性,而不是單獨寫三個分離的屬性,因為浏覽器會推算相關值。

  1. align-self屬性:允許單個item與其他item有不一樣的對其方式,可覆寫align-items屬性

align-self: auto | flex-start | flex-end | center | baseline | stretch;