1. 程式人生 > >CSS3彈性盒子Flex

CSS3彈性盒子Flex

情況 比例 失效 nta 相等 分配 lin vertica highlight

盒子變成彈性盒子

display:flex;

彈性盒子由彈性容器(Flex container)和彈性子元素(Flex item)組成

flex容器

flex布局圖

技術分享圖片

flex六個屬性

1.flex-direction


決定主軸的方向

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

四個值的含義:

row(默認值):主軸為水平方向,起點在左端
row-reverse:主軸為水平方向,起點在右端
column:主軸為垂直方向,起點在上端
column-reverse:主軸為垂直方向,起點在上端

分別效果對應下圖:

row row-reverse:

技術分享圖片 技術分享圖片

column column-reverse:

技術分享圖片 技術分享圖片

2.flex-wrap

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

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

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

技術分享圖片 技術分享圖片 技術分享圖片

flex-flow

flex-flow屬性是flex-direction和flex-wrap的簡寫形式。默認值為:row nowrap。

justify-content


定義了項目在主軸(X軸)上的對齊方式。

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

效果

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

align-items

align-items屬性定義項目在交叉軸(Y軸)上如何對齊。

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

  技術分享圖片技術分享圖片技術分享圖片

技術分享圖片技術分享圖片

align-content

align-content屬性定義了多根軸線的對齊方式。如果項目只有一根軸線,該屬性不起作用。該屬性定義多根軸線在Y軸上的對齊方式,其六個屬性值:

flex-start:與交叉軸的起點對齊;
flex-end:與交叉軸的終點對齊;
center:與交叉軸的中點對齊;
space-between:與交叉軸的兩端對齊,軸線之間的間隔平均分布。
space-around:每根軸線兩側的間隔都相等。所以,軸線之間的間隔比軸線與邊框的間隔大一倍。
stretch(默認值):軸線占滿整個交叉軸。

  技術分享圖片技術分享圖片技術分享圖片

技術分享圖片技術分享圖片技術分享圖片

flex item

這裏需要之一的是:設為Flex布局以後,子元素的float、clear和vertical-align屬性將失效。

flex六個屬性:

order
flex-grow
flex-shrink
flex-basis
flex
align-self

order

order屬性定義項目的排列順序。數值越小,排列越靠前,默認為0。有了這個屬性,可以調整在HTML中出現的順序。

order:<integer>;

flex-grow

flex-grow屬性定義項目的放大比例,默認為0,即如果存在剩余空間,也不放大。

flex-grow:<number>;

flex-shrink

flex-shrink屬性定義了項目的縮小比例,默認為1,即如果空間不足,該項目將縮小。

flex-shrink:<number>;

  如果所有項目的flex-shrink屬性都為1,當空間不足時,都將等比例縮小。如果一個項目的flex-shrink屬性為0,其他項目都為1,則空間不足時,前者不縮小。

flex-basis

flex-basis屬性定義了在分配多余空間之前,項目占據的主軸空間(main size)。類似於設置了width屬性。

flex

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

align-self

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

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

  

CSS3彈性盒子Flex