CSS3 彈性盒子模型的使用

指定一個容器的 display 屬性爲 flex(彈性佈局)

inline-flex(爲行內元素設置)、-webkit-flex(爲 WebKit 內核瀏覽器元素設置)

注意:設爲 flex 佈局以後,子元素的 floatclear和 vertical-align屬性將失效。

屬性包括:1)Flex 容器屬性;2)Flex 項目屬性(包含在容器中);

Flex 容器屬性:

A. flex-direction:(決定項目的排列方向)— row | row-reverse | column | column-reverse(水平從左到右 | 水平反向 | 垂直 | 垂直反向)

B. flex-wrap(默認情況下,項目都排在一條線(又稱"軸線")上。flex-wrap屬性定義,如果一條軸線排不下,如何換行)

nowrap | wrap | wrap-reverse; (默認:不換行)、(換行)、(換行,第一行在下方)

AB. flex-flow(是flex-direction屬性和flex-wrap屬性的簡寫形式,默認值爲row nowrap)

flex-flow: <flex-direction> || <flex-wrap>

C. justify-content(定義了項目(item)在主軸上的對齊方式。)水平對齊

flex-start | flex-end | center | space-between | space-around (默認值:左對齊、右對齊、居中、兩端對齊,項目之間的間隔都相等、每個項目兩側的間隔相等,所以,項目之間的間隔比項目與邊框的間隔大一倍)

D. align-content(定義了多根軸線的對齊方式。如果項目只有一根軸線,該屬性不起作用。可以使用justify-content)

flex-start | flex-end | center | space-between | space-around | stretch(stretch(默認值):軸線佔滿整個交叉軸;——其它的和 justify-content 一樣)

E. align-item(定義項目在交叉軸上如何對齊)垂直對齊

align-items: flex-start | flex-end | center | baseline | stretch(stretch(默認值):如果項目未設置高度或設爲auto,將佔滿整個容器的高度。 | baseline: 項目的第一行文字的基線對齊)

Flex 項目屬性

A. order(定義項目的排列順序。數值越小,排列越靠前,默認爲0)— order: <integer>

B. flex-grow(定義項目的放大比例,默認爲0,即如果存在剩餘空間,也不放大)

flex-grow: <number>    所有項目的flex-grow屬性都爲1,則它們將等分剩餘空間(如果有的話)。如果一個項目的flex-grow屬性爲2,其他項目都爲1,則前者佔據的剩餘空間將比其他項多一倍。

C. flex-shrink(定義了項目的縮小比例,默認爲1,即如果空間不足,該項目將縮小)— flex-shrink: <number> 設置爲 0 不縮小

D. flex-basis(定義了在分配多餘空間之前,項目佔據的主軸空間(main size)。瀏覽器根據這個屬性,計算主軸是否有多餘空間。它的默認值爲auto,即項目的本來大小。)— flex-basis: <length> | auto (不是放大和縮小,是設置固定值)

BCD. flex(是flex-grow, flex-shrink 和 flex-basis的簡寫,默認值爲0 1 auto。後兩個屬性可選。)

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

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

E. align-self(允許單個項目有與其他項目不一樣的對齊方式,可覆蓋align-items屬性。默認值爲auto,表示繼承父元素的align-items屬性,如果沒有父元素,則等同於stretch。)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章