Flex布局

一锋恬、Flex簡介

Flex布局是彈性布局滔岳,用來為盒狀模型提供最大的靈活性杠娱。
當(dāng)把容器設(shè)為Flex布局后,子元素的float谱煤、clear和vertical-align屬性將失效摊求。

二、基本概念

采用Flex布局的元素趴俘,稱為Flex容器睹簇,簡稱”容器”奏赘。其子元素自動成為容器成員寥闪,稱為Flex項目太惠,簡稱”項目”。
容器默認(rèn)存在兩根軸疲憋,一個默認(rèn)是水平方向的主軸凿渊,一個垂直方向的交叉軸。
主軸和交叉軸的起點位置分別叫做main start和cross start缚柳,主軸和交叉軸的結(jié)束位置分別叫做main end和cross end埃脏。主軸方向確定了交叉軸方向就確定了。


untitled.png

三秋忙、Flex屬性

容器(box)屬性

1.flex-direction屬性 - 確定主軸的方向(項目的排列方向)

.box {
  flex-direction: row | row-reverse | column | column-reverse;
}

·row(默認(rèn)值):主軸為水平方向彩掐,起點在左端。
·row-reverse:主軸為水平方向灰追,起點在右端堵幽。
(row、row-reverse弹澎,交叉軸為垂直方向朴下,起點在上沿)
·column:主軸為垂直方向,起點在上沿苦蒿。
·column-reverse:主軸為垂直方向殴胧,起點在下沿。
(column佩迟、column-reverse团滥,交叉軸為水平方向,起點在左端)

2.flex-wrap屬性 - 決定項目一條軸線排不下报强,如何換行

.box{
  flex-wrap: nowrap | wrap | wrap-reverse;
}

·nowrap(默認(rèn)):不換行灸姊。
·wrap:換行,第一行在上方躺涝。
·wrap-reverse:換行厨钻,第一行在下方。

3.flex-flow屬性

flex-flow屬性是flex-direction屬性和flex-wrap屬性的簡寫形式坚嗜,默認(rèn)值為row nowrap夯膀。

.box {
  flex-flow: <flex-direction> <flex-wrap>;
}

4.justify-content屬性 - 項目在主軸上的對齊方式

.box {
  justify-content: flex-start | flex-end | center | space-between | space-around;
}

具體對齊方式與主軸的方向有關(guān)。假設(shè)主軸為水平方向從左到右(row)時:

·flex-start(默認(rèn)值):左對齊
·flex-end:右對齊
·center: 居中
·space-between:左右兩端對齊苍蔬,項目之間的間隔都相等诱建。
·space-around:每個項目兩側(cè)的間隔相等。所以碟绑,項目之間的間隔比項目與邊框的間隔大一倍俺猿。

假設(shè)主軸為垂直方向從上到下(column)時:
·flex-start(默認(rèn)值):上對齊
·flex-end:下對齊
·center: 居中
·space-between:上下兩端對齊茎匠,項目之間的間隔都相等。
·space-around:每個項目上下兩側(cè)的間隔相等押袍。所以诵冒,項目之間的間隔比項目與邊框的間隔大一倍。

5.align-items屬性 - 定義項目在交叉軸上如何對齊,具體的對齊方式與交叉軸的方向有關(guān)谊惭。
(主軸是水平方向汽馋,交叉軸為垂直方向;主軸是垂直方向交叉軸為水平方向)

.box {
  align-items: flex-start | flex-end | center | baseline | stretch;
}

假設(shè)交叉軸從上到下:

·flex-start:交叉軸的起點對齊圈盔。
·flex-end:交叉軸的終點對齊豹芯。
·center:交叉軸的中點對齊。
·baseline: 項目的第一行文字的基線對齊驱敲。
·stretch(默認(rèn)值):如果項目未設(shè)置高度或設(shè)為auto铁蹈,將占滿整個容器的高度。

6.align-content - 定義了多根軸線的對齊方式

該屬性必須同flex-wrap:wrap/wrap-reverse一起使用众眨。如果項目flex-wrap:nowrap握牧,該屬性不起作用。

.box {
  align-content: flex-start | flex-end | center | space-between | space-around | stretch;
}

·flex-start:與交叉軸的起點對齊围辙。
·flex-end:與交叉軸的終點對齊我碟。
·center:與交叉軸的中點對齊。
·space-between:與交叉軸兩端對齊姚建,軸線之間的間隔平均分布矫俺。
·space-around:每根軸線兩側(cè)的間隔都相等。所以掸冤,軸線之間的間隔比軸線與邊框的間隔大一倍厘托。
·stretch(默認(rèn)值):軸線占滿整個交叉軸。

項目(item)屬性

1.order屬性 - 定義項目的排列順序稿湿。數(shù)值越小铅匹,排列越靠前,默認(rèn)為0饺藤。

.item {
  order: <integer>;
}

2.flex-grow屬性 - 定義項目的放大比例包斑,默認(rèn)為0,即如果存在剩余空間涕俗,也不放大罗丰。

.item {
  flex-grow: <number>; /* default 0 */
}

數(shù)值越大,其所分的剩余空間越大再姑,倍數(shù)關(guān)系萌抵。

3.flex-shrink屬性 - 定義了項目的縮小比例,默認(rèn)為1,即如果空間不足绍填,該項目將縮小霎桅。

.item {
  flex-shrink: <number>; /* default 1 */
}

當(dāng)flex-shrink屬性為0時,項目不縮小讨永。負(fù)值對該屬性無效滔驶。

4.flex-basis屬性 - 在分配多余空間之前,項目占據(jù)的主軸空間(main size)住闯。瀏覽器根據(jù)這個屬性瓜浸,計算主軸是否有多余空間澳淑。它的默認(rèn)值為auto比原,即項目的本來大小。

.item {
 flex-basis: <length> | auto; /* default auto */
}

5.flex屬性 - 是flex-grow, flex-shrink 和 flex-basis的簡寫杠巡,默認(rèn)值為0 1 auto量窘。后兩個屬性可選。

.item {
  flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}

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

6 align-self屬性
align-self屬性允許單個項目有與其他項目不一樣的對齊方式蚌铜,可覆蓋align-items屬性。默認(rèn)值為auto嫩海,表示繼承父元素的align-items屬性冬殃,如果沒有父元素,則等同于stretch叁怪。

.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}

四审葬、兼容性

容器

   display: -webkit-flex;/* Chrome 21+ */ 
   display: flex;/*  Opera 12.1, Firefox 22+ */
   display:-webkit-box;/*Safari, iOS, Android browser, older WebKitbrowsers. */ 
   display: -ms-flexbox;/*  IE 10 */
   display: -moz-box;/*  Firefox (buggy) */

flex-direction屬性

    -webkit-box-orient:vertical;
    -webkit-box-direction:normal;
    -moz-box-orient:vertical;
    -moz-box-direction:normal;
    flex-direction:column;
    -webkit-flex-direction:column;

flex-wrap屬性:

-webkit-flex-wrap:wrap;
    -webkit-box-lines:multiple;
    -moz-flex-wrap:wrap;
    flex-wrap:wrap;

flex-flow屬性:

-webkit-flex-flow:row wrap;
    -webkit-box-orient:horizontal;
    -webkit-box-lines:multiple;
  -moz-flex-flow:row wrap;
    box-orient:horizontal;
    box-lines:multiple;
    flex-flow:row wrap;

justify-content屬性:

-webkit-justify-content:center|flex-start|flex-end;
justify-content:center|flex-start|flex-end;
-moz-box-pack:center|start|end;
-webkit--moz-box-pack:center|start|end;
box-pack:center|start|end;

align-items屬性:

align-items:center|flex-start|flex-end;
-webkit-align-items:center|flex-start|flex-end;
box-align:center|start|end;
-moz-box-align:center|start|end;
-webkit-box-align:center|start|end;

order屬性:

box-order:number;
-webkit-box-order:number;
-moz-box-order:number;
order:number;/* ie11, Spec - Opera 12.1, Firefox 20+ */
-webkit-order:number;/*  Chrome */

flex屬性:

box-flex: 1;       
-webkit-box-flex:number;/* OLD - iOS 6-, Safari 3.1-6 */
-moz-box-flex:number;/* OLD - Firefox 19- */
flex:number;/* ie11, Spec - Opera 12.1, Firefox 20+ */
-webkit-flex:number;/* Chrome */
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市奕谭,隨后出現(xiàn)的幾起案子涣觉,更是在濱河造成了極大的恐慌,老刑警劉巖血柳,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件官册,死亡現(xiàn)場離奇詭異,居然都是意外死亡难捌,警方通過查閱死者的電腦和手機膝宁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來根吁,“玉大人员淫,你說我怎么就攤上這事∮ぴ裕” “怎么了满粗?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長愚争。 經(jīng)常有香客問我映皆,道長挤聘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任捅彻,我火速辦了婚禮组去,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘步淹。我一直安慰自己从隆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布缭裆。 她就那樣靜靜地躺著键闺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪澈驼。 梳的紋絲不亂的頭發(fā)上辛燥,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機與錄音缝其,去河邊找鬼挎塌。 笑死,一個胖子當(dāng)著我的面吹牛内边,可吹牛的內(nèi)容都是我干的榴都。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼漠其,長吁一口氣:“原來是場噩夢啊……” “哼嘴高!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起辉懒,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤阳惹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后眶俩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體莹汤,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年颠印,在試婚紗的時候發(fā)現(xiàn)自己被綠了纲岭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡线罕,死狀恐怖止潮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情钞楼,我是刑警寧澤喇闸,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響燃乍,放射性物質(zhì)發(fā)生泄漏唆樊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一刻蟹、第九天 我趴在偏房一處隱蔽的房頂上張望逗旁。 院中可真熱鬧,春花似錦舆瘪、人聲如沸片效。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽淀衣。三九已至,卻和暖如春哺呜,著一層夾襖步出監(jiān)牢的瞬間舌缤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工某残, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人陵吸。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓玻墅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親壮虫。 傳聞我的和親對象是個殘疾皇子澳厢,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容