flex布局

關(guān)于flex的基本概念啥的就不介紹了,直接正題隘梨。
基本布局

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>flex box</title>
  <style media="screen">
    * {-webkit-box-sizing: border-box; box-sizing: border-box;}
    .container div { background-color: red; border: 1px solid #333; }
    .div1 {width: 70px; height: 70px;}
    .div2 {width: 50px; height: 50px;}
    .div3 {width: 60px; height: 60px;}
    .container {width: 299px;  height: 300px; background-color: #f0f0f0;}
  </style>
</head>
<body>
  <div class="container">
    <div class="div1">盒1</div>
    <div class="div2">盒2</div>
    <div class="div3">盒3</div>
  </div>
</body>
</html>

寫在父容器上的屬性

1蚀腿、flex-direction(排列)

.container {
    flex-direction:  row ;              /*水平排列(同float:left嘴瓤;)*/
                   row-reverse ;        /*水平排列(同float:right;)*/
                   column ;             /*垂直排列-頂部開始*/
                   column-reverse;      /*垂直排列-底部開始*/
}
flex-direction.jpg

2莉钙、flex-wrap(換行)

.container{
    flex-wrap: nowrap;          /*不換行*/
               wrap;            /*換行纱注,第一行在頂部*/
               wrap-reverse;    /*換行,第一行在底部*/
}
flex-wrap.jpg

3胆胰、flex-flow

.container{
    flex-flow: <flex-direction>  <flex-wrap>;   /*怎么排列(row/column)   怎么換行(nowrap/wrap)*/
}
flex-flow.jpg

4狞贱、justify-content

.container{
    justify-content: flex-start;          /*左對齊(默認值) 類似flex-direction: row;*/
                     flex-end;            /*右對齊  類似flex-direction: row-reverse;*/
                     center;              /*居中*/
                     space-between;       /*兩端對齊,項目之間的間隔都相等*/
                     space-around;        /*每個項目兩側(cè)的間隔相等蜀涨。所以瞎嬉,項目之間的間隔比項目與邊框的間隔大一倍*/   
                     space-evenly;        /*每個項目間隔相等蝎毡。所以,項目之間的間隔與邊框的間隔一樣大*/                  
}
justify-content.jpg

5氧枣、align-items

.container{
    align-items: flex-start;      /*頂對齊*/
                 flex-end;        /*底對齊*/
                 center;          /*居中對齊*/
                 baseline;        /*項目的第一行文字的基線對齊*/
                 stretch;         /*(默認值):如果項目未設(shè)置高度或設(shè)為auto沐兵,將占滿整個容器的高度。案例中沒有給盒1和盒3高度*/       
}
align-items.jpg

6便监、align-content

這個屬性是基于兩條軸線的 如果我的元素還是三個 扎谎,沒有出現(xiàn)換行的時候,此屬性是沒有效果的烧董。增加三個盒子毁靶,然后給他們增加一個屬性 flex-wrap: wrap就可以了。

.container{
    align-content: flex-start;      /*與交叉軸的起點對齊*/
                 flex-end;          /*與交叉軸的終點對齊*/
                 center;            /*與交叉軸的中點對齊*/
                 space-between;     /*與交叉軸兩端對齊逊移,軸線之間的間隔平均分布*/
                 space-around;      /*每根軸線兩側(cè)的間隔都相等预吆。所以,軸線之間的間隔比軸線與邊框的間隔大一倍胳泉。*/
                 stretch;           /*((默認值):軸線占滿整個交叉軸*/       
}
align-content.png

寫在子元素上的屬性

1拐叉、order

默認值是零 ,越小的數(shù)字排的學(xué)靠前扇商;

.div2{
    order: 1;  /*在這里給div2的子元素增加了這個屬性凤瘦,它就會比其他的排列都靠后*/
}

在這里給div2的子元素增加了這個屬性,它就會比其他的排列都靠后案铺;盒5和盒2是都是 div2廷粒;


order.png

2、flex-grow

定義子元素的放大比例红且,默認為0,意思就是即使存在剩余空間涤姊,也不會放大暇番;

.div2{
    flex-grow: 1;  /*拉伸剩余空間*/
}

flex-grow

如果所有子元素的flex-grow屬性都為1,則它們將等分剩余空間(如果有的話)思喊。
如果一個子元素的flex-grow屬性為2壁酬,其他子元素都為1,則前者占據(jù)的剩余空間將比其他子元素多一倍恨课。
flex-grow 2.jpg

3舆乔、flex-shrink

flex-shrink屬性定義了子元素的縮小比例,默認為1剂公,即如果空間不足希俩,該子元素將縮小。

.container{
    width: 150px;  /*設(shè)置父元素的寬度為150px纲辽;*/
}
.div2{
   flex-shinrk: 0;  /*默認值為1颜武,這里改成0璃搜,表示空間不足也不能壓縮div2 ,盒1和盒3將會被壓縮*/
}
flex-shink.png

4鳞上、flex-basis

flex-basis屬性定義了在分配多余空間之前这吻,項目占據(jù)的主軸空間(main size)。瀏覽器根據(jù)這個屬性篙议,計算主軸是否有多余空間唾糯。它的默認值為auto,即項目的本來大小鬼贱。

它可以設(shè)為跟width或height屬性一樣的值(比如350px)移怯,則項目將占據(jù)固定空間。

.div2{
    flex-basis: 100px;  /*當父元素存在多于空間吩愧,div2要占據(jù)100px空間芋酌;空間不足也按照100px空間來壓縮*/
}
flex-basis.png

5、flex

flex屬性是flex-grow, flex-shrinkflex-basis的簡寫雁佳,默認值為0 1 auto脐帝。后兩個屬性可選。

.div2{
    flex: 0 1 100px;  /*即flex-grow: 0; flex-shrink: 1; flex-basis: 100px;*/
}

flex-grow和flex-shrink值為默認值糖权,顯示效果等同于basis: 100px;

6堵腹、

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

.div2{
    align-self: auto;        /*默認值*/
                flex-start;  /**/
                flex-end;    /**/
                center;      /**/
                baseline;    /*需要兩個以上元素有此屬性才有用*/
                stretch;     /*給盒2的去掉*/
}
align-self.jpg

以上為flex的基礎(chǔ)知識,具體應(yīng)用還要上手練習(xí)才能體會如暖。

本文參考 Flex 布局教程:語法篇

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末笆檀,一起剝皮案震驚了整個濱河市滑进,隨后出現(xiàn)的幾起案子做葵,更是在濱河造成了極大的恐慌,老刑警劉巖凛忿,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枷遂,死亡現(xiàn)場離奇詭異樱衷,居然都是意外死亡,警方通過查閱死者的電腦和手機酒唉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門矩桂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人痪伦,你說我怎么就攤上這事耍鬓±眩” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵牲蜀,是天一觀的道長笆制。 經(jīng)常有香客問我,道長涣达,這世上最難降的妖魔是什么在辆? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮度苔,結(jié)果婚禮上匆篓,老公的妹妹穿的比我還像新娘。我一直安慰自己寇窑,他們只是感情好鸦概,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著甩骏,像睡著了一般窗市。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上饮笛,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天咨察,我揣著相機與錄音,去河邊找鬼福青。 笑死摄狱,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的无午。 我是一名探鬼主播媒役,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宪迟!你這毒婦竟也來了酣衷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤踩验,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后商玫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體箕憾,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年拳昌,在試婚紗的時候發(fā)現(xiàn)自己被綠了袭异。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡炬藤,死狀恐怖御铃,靈堂內(nèi)的尸體忽然破棺而出碴里,到底是詐尸還是另有隱情,我是刑警寧澤上真,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布咬腋,位于F島的核電站,受9級特大地震影響睡互,放射性物質(zhì)發(fā)生泄漏根竿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一就珠、第九天 我趴在偏房一處隱蔽的房頂上張望寇壳。 院中可真熱鬧,春花似錦妻怎、人聲如沸壳炎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽匿辩。三九已至,卻和暖如春偿洁,著一層夾襖步出監(jiān)牢的瞬間撒汉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工涕滋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留睬辐,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓宾肺,卻偏偏與公主長得像溯饵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子锨用,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

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

  • Flex之前 在Flex之前我們用什么布局主要使用: normal flow(正常流丰刊,也叫文檔流) float+c...
    PYFang閱讀 537評論 0 0
  • 一、什么是Flex布局增拥? Flex是Flexible Box的縮寫啄巧,意為"彈性布局",用來為盒狀模型提供最大的靈活...
    shadow123閱讀 753評論 0 2
  • 1. Flex布局簡介 Flex布局又叫彈性布局掌栅,設(shè)計思想是應(yīng)用于響應(yīng)式布局開發(fā)秩仆。兼容性為IE9以上。 2. Fl...
    Renderz_干了這碗口嚼酒閱讀 676評論 1 1
  • 網(wǎng)頁布局(layout)是CSS的一個重點應(yīng)用猾封。 一澄耍、Flex布局是什么? Flex是Flexible Box的縮...
    抱著熊喵啃什么閱讀 632評論 0 4
  • 網(wǎng)頁布局(layout)是CSS的一個重點應(yīng)用。 布局的傳統(tǒng)解決方案齐莲,基于盒狀模型痢站,依賴display屬性 +po...
    老夫的天閱讀 683評論 2 6