1.什么是Flex布局Flex 是flexible Box 的縮寫,意為“彈性布局”,用來為盒裝模型提供最大的靈活性。任何一個(gè)容器都可以指定為Flex 布局。 2.基本概念采用Flex布局的元素,稱為容器(flex container),簡(jiǎn)稱‘容器’。它的所有子元素自動(dòng)成為容器成員,稱為Flex項(xiàng)目(flex item),簡(jiǎn)稱項(xiàng)目“” 容器默認(rèn)存在兩根軸: 水平的主軸(main axis) 和垂直的交叉軸 (cross axis)。主軸的開始位置(與邊框的交叉點(diǎn))叫 main start ,結(jié)束位置叫main end;交叉軸的開始位置叫 cross start ,結(jié)束位置叫cross end。項(xiàng)目默認(rèn)沿著主軸排列。單個(gè)項(xiàng)目占據(jù)的主軸空間叫做main size,占據(jù)的交叉軸空間叫做 cross size 3.容器的屬性容器有6個(gè)屬性
3.1 flex-direction flex-direction 屬性決定項(xiàng)目的排列方向 flex-direction: row | row-reverse | column | column-reverse
3.2 flex-wrap flex-wrap 屬性決定項(xiàng)目在一條軸線上排不下如何換行 flex-wrap: nowrap | wrap | wrap-reverse
3.3 flex-flow flex-flow 屬性是 flex-direction 屬性和flex-wrap 屬性的簡(jiǎn)寫,默認(rèn)值為 row nowrap
3.4 justify-content justify-content 屬性決定了 項(xiàng)目在主軸上的對(duì)齊方式 justify-content: flex-start | flex-end | center | space-between | space-around
3.5 align-items align-items 屬性決定項(xiàng)目在交叉軸上如何對(duì)齊 align-items : flex-start | flex-end |center | baseline | stretch
3.6 align-content align-content 屬性定義了多跟軸線的對(duì)齊方式,如果項(xiàng)目只有一根軸線,該屬性不起作用 align-content:flex-start | flex-end | center | space-between | space-around | stretch
4.項(xiàng)目的屬性項(xiàng)目有6個(gè)屬性
4.1 order order 屬性定義項(xiàng)目的排列順序。數(shù)字越小,排列越靠前,默認(rèn)為0 4.2 flex-grow flex-grow 屬性定義項(xiàng)目的放大比例,默認(rèn)為0,既如果存在剩余空間,也不放大 4.3 flex-shrink flex-shrink屬性定義了項(xiàng)目的縮小比例,默認(rèn)為1,既如果空間不足,該項(xiàng)目將縮小。 4.4 flex-basis flex-basis 定義了在分配多余空間之前,項(xiàng)目占據(jù)的主軸空間(main size)。瀏覽器根據(jù)這個(gè)屬性,計(jì)算主軸是否有多余的空間。它的默認(rèn)值為 auto, 既項(xiàng)目的本來大小。 flex-basis :<length> | auto 4.5 flex 屬性 flex 屬性 是 flex-grow , flex-shrink 和flex-basis 的簡(jiǎn)寫,默認(rèn)值為 0 1 auto 。后兩個(gè)屬性可選 flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] 該屬性有兩個(gè)快捷鍵值 auto( 1 1 auto) 和 none(0 0 auto),建議優(yōu)先使用這個(gè)屬性,而不是單獨(dú)寫三個(gè)分離的屬性,因?yàn)闉g覽器會(huì)推算相關(guān)值 4.6 align-self align-self 屬性允許單個(gè)項(xiàng)目與其他項(xiàng)目不一樣的對(duì)齊方式,可覆蓋 align-items 屬性。默認(rèn)值為 auto,表示繼承父元素的 align-items 屬性,如果沒有父元素,則等于 stretch。 |
|