最近在學(xué)習(xí)微信小程序,在設(shè)計(jì)首頁布局的時(shí)候,新認(rèn)識(shí)了一種布局方式display:flex
.container {
display: flex;
flex-direction: column;
align-items: center;
background-color: #b3d4db;
}編譯之后的效果很明顯,界面的布局也很合理,看起來很清晰。那么究竟這個(gè)屬性是干嘛用的呢?
Flex是Flexible Box的縮寫,意為"彈性布局",用來為盒狀模型提供最大的靈活性。設(shè)為Flex布局以后,子元素的float、clear和vertical-align屬性將失效。
它即可以應(yīng)用于容器中,也可以應(yīng)用于行內(nèi)元素。(以上說明結(jié)合微信開發(fā)者工具說明)2009年,W3C提出了一種新的方案—-Flex布局,可以簡(jiǎn)便、完整、響應(yīng)式地實(shí)現(xiàn)各種頁面布局。目前,它已經(jīng)得到了所有瀏覽器的支持,這意味著,現(xiàn)在就能很安全地使用這項(xiàng)功能。
基本概念
采用Flex布局的元素,稱為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。

以下6個(gè)屬性設(shè)置在容器上:
flex-direction 容器內(nèi)項(xiàng)目的排列方向(默認(rèn)橫向排列)
flex-wrap 容器內(nèi)項(xiàng)目換行方式
flex-flow 以上兩個(gè)屬性的簡(jiǎn)寫方式
justify-content 項(xiàng)目在主軸上的對(duì)齊方式
align-items 項(xiàng)目在交叉軸上如何對(duì)齊
align-content 定義了多根軸線的對(duì)齊方式。如果項(xiàng)目只有一根軸線,該屬性不起作用。
flex-direction
.box { 2 flex-direction: row | row-reverse | column | column-reverse; 3 } 屬性可選值的范圍為row(默認(rèn))沿水平主軸由左向右排列、row-reverse沿水平主軸由右向左排列、column沿垂直主軸右上到下和column-reverse。
flex-wrap
.box{ 2 flex-wrap: nowrap | wrap | wrap-reverse; 3 } 屬性可選值的范圍為nowrap(默認(rèn))不換行、wrap換行(第一行在上方)和wrap-reverse(你懂的~)
flex-flow
.box { 2 flex-flow: <flex-direction> || <flex-wrap>; 3 } 寫法屬性中,將上述兩種方法的值用||連接即可
justify-content
新聞熱點(diǎn)
疑難解答