總結 Flex布局

2021-08-20 10:36:31 字數 3859 閱讀 5394

網頁布局(layout)是 css 的乙個重點應用。

布局的傳統解決方案,基於

盒狀模型

,依賴 

display

屬性 + 

position

屬性 + 

float

屬性。它對於那些特殊布局非常不方便,比如,

垂直居中

就不容易實現。

任何乙個容器都可以指定為 flex 布局。

行內元素也可以使用 flex 布局。

.box

注意,設為 flex 布局以後,子元素的

float

、clear

和vertical-align

屬性將失效。

webkit 核心的瀏覽器,必須加上

-webkit

字首。

在父盒子(容器)上

display:

flex

;.box

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

row-reverse

:主軸為水平方向,起點在右端。

column

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

column-reverse

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

預設情況下,專案都排在一條線(又稱"軸線")上。

flex-wrap

屬性定義,如果一條軸線排不下,如何換行。

flex-wrap

:nowrap | wrap | wrap-reverse;

(1)nowrap

(預設):不換行。

:換行,第一行在上方。

:換行,第一行在下方。

屬性是flex-direction

屬性和flex-wrap

屬性的簡寫形式,預設值為

row nowrap。

.box

justify-content

屬性定義了專案在主軸上的對齊方式。

.box

它可能取5個值,具體對齊方式與軸的方向有關。下面假設主軸為從左到右。

flex-start

(預設值):左對齊

flex-end

:右對齊

center

: 居中

space-between

:兩端對齊,專案之間的間隔都相等。

space-around

:每個專案兩側的間隔相等。所以,專案之間的間隔比專案與邊框的間隔大一倍。

屬性定義專案在交叉軸上如何對齊。

.box

它可能取5個值。具體的對齊方式與交叉軸的方向有關,下面假設交叉軸從上到下。

flex-start

:交叉軸的起點對齊。

flex-end

:交叉軸的終點對齊。

center

:交叉軸的中點對齊。

baseline

: 專案的第一行文字的基線對齊。

stretch

(預設值):如果專案未設定高度或設為auto,將佔滿整個容器的高度。

屬性定義了多根軸線的對齊方式。如果專案只有一根軸線,該屬性不起作用。

.box

該屬性可能取6個值。

flex-start

:與交叉軸的起點對齊。

flex-end

:與交叉軸的終點對齊。

center

:與交叉軸的中點對齊。

space-between

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

space-around

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

stretch

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

屬性定義專案的排列順序。數值越小,排列越靠前,預設為0。

屬性定義專案的放大比例,預設為

0,即如果存在剩餘空間,也不放大。

如果所有專案的

flex-grow

屬性都為1,則它們將等分剩餘空間(如果有的話)。如果乙個專案的

flex-grow

屬性為2,其他專案都為1,則前者佔據的剩餘空間將比其他項多一倍。

flex-shrink

屬性定義了專案的縮小比例,預設為1,即如果空間不足,該專案將縮小。

如果所有專案的

flex-shrink

屬性都為1,當空間不足時,都將等比例縮小。如果乙個專案的

flex-shrink

屬性為0,其他專案都為1,則空間不足時,前者不縮小。

負值對該屬性無效。

flex-basis

屬性定義了在分配多餘空間之前,專案佔據的主軸空間(main size)。瀏覽器根據這個屬性,計算主軸是否有多餘空間。它的預設值為

auto

,即專案的本來大小。

.item

它可以設為跟

width

或height

屬性一樣的值(比如350px),則專案將佔據固定空間。

flex

屬性是flex-grow

, flex-shrink

和 flex-basis

的簡寫,預設值為

0 1 auto

。後兩個屬性可選。

.item

該屬性有兩個快捷值:

auto

(1 1 auto

) 和 none (

0 0 auto)。

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

align-self

屬性允許單個專案有與其他專案不一樣的對齊方式,可覆蓋

align-items

屬性。預設值為

auto

,表示繼承父元素的

align-items

屬性,如果沒有父元素,則等同於

stretch。

.item

該屬性可能取6個值,除了auto,其他都與align-items屬性完全一致。

flex 布局總結

flex 容器的屬性 flex direction 主軸方向 justify content 主軸上 item 的對齊方式 align items 交叉軸上 item 的對齊方式 align content 多根軸上的對齊方式,若只有一根軸,該屬性則不起作用 flex wrap 如何換行item 屬...

flex布局總結

以下6屬性設定在容器上 1.flex direction 決定主軸方向 2.flex warp 決定一排放不下,如何換行 3.flex flaw 1和2兩屬性的合併寫法 4.justify content 定義專案在主軸上的對齊方式 5.align items 定義專案在交叉軸的對齊方式 6.ali...

flex布局總結

1 flex api簡介 flex direction 指定方向,預設值row flex wrap 一條軸線排不下,如何換行,值 nowrap 不換行 wrap 第一行在上方 wrap reverse flex flow flex direction flex wrap的縮寫 justify con...