flex布局

布局的傳統(tǒng)解決方案竟趾,基于盒狀模型,依賴 display屬性 + position屬性 + float屬性宫峦。它對于那些特殊布局非常不方便岔帽,比如,垂直居中就不容易實現(xiàn)导绷。

Flex是Flexible Box的縮寫犀勒,意為"彈性布局",用來為盒狀模型提供最大的靈活性妥曲。
任何一個容器都可以指定為Flex布局贾费。

.box{
  display: flex;
  // display: inline-flex;
}


.box{
  display: -webkit-flex; /* Safari */
  display: flex;
}

注意,設(shè)為Flex布局以后檐盟,子元素的float褂萧、clear和vertical-align屬性將失效。
采用Flex布局的元素葵萎,稱為Flex容器(flex container)导犹,簡稱"容器"。它的所有子元素自動成為容器成員羡忘,稱為Flex項目(flex item)谎痢,簡稱"項目"。

容器的屬性

  1. flex-direction:
  • row(默認(rèn)值):主軸為水平方向卷雕,起點在左端节猿。
  • row-reverse:主軸為水平方向,起點在右端漫雕。
  • column:主軸為垂直方向滨嘱,起點在上沿。
  • column-reverse:主軸為垂直方向蝎亚,起點在下沿九孩。
  1. flex-wrap:
    nowrap | wrap | wrap-reverse

  2. flex-flow
    flex-flow屬性是flex-direction屬性和flex-wrap屬性的簡寫形式先馆,默認(rèn)值為row nowrap发框。

  3. justify-content

  • flex-start(默認(rèn)值):左對齊
  • flex-end:右對齊
  • center: 居中
  • space-between:兩端對齊,項目之間的間隔都相等。
  • space-around:每個項目兩側(cè)的間隔相等梅惯。所以宪拥,項目之間的間隔比項目與邊框的間隔大一倍。
  1. align-items
  • flex-start:交叉軸的起點對齊铣减。
  • flex-end:交叉軸的終點對齊她君。
  • center:交叉軸的中點對齊。
  • baseline: 項目的第一行文字的基線對齊葫哗。
  • stretch(默認(rèn)值):如果項目未設(shè)置高度或設(shè)為auto缔刹,將占滿整個容器的高度。
  1. align-content 屬性定義了多根軸線的對齊方式劣针。如果項目只有一根軸線校镐,該屬性不起作用。
  • flex-start:與交叉軸的起點對齊捺典。
  • flex-end:與交叉軸的終點對齊鸟廓。
  • center:與交叉軸的中點對齊。
  • space-between:與交叉軸兩端對齊襟己,軸線之間的間隔平均分布引谜。
  • space-around:每根軸線兩側(cè)的間隔都相等。所以擎浴,軸線之間的間隔比軸線與邊框的間隔大一倍员咽。
  • stretch(默認(rèn)值):軸線占滿整個交叉軸。

項目的屬性

  1. order 屬性定義項目的排列順序贮预。數(shù)值越小骏融,排列越靠前,默認(rèn)為0萌狂。
  2. flex-grow 定義項目的放大比例档玻,默認(rèn)為0,即如果存在剩余空間茫藏,也不放大误趴。0 為默認(rèn)不放大,為文本本身的長度务傲,如果沒有則不顯示
  3. flex-shrink 屬性定義了項目的縮小比例凉当,默認(rèn)為1,即如果空間不足售葡,該項目將縮小看杭。1 為默認(rèn),為原始大小挟伙,
  4. flex-basis 屬性定義了在分配多余空間之前楼雹,項目占據(jù)的主軸空間(main size)。瀏覽器根據(jù)這個屬性,計算主軸是否有多余空間贮缅。它的默認(rèn)值為auto榨咐,即項目的本來大小
  5. flex flex-grow, flex-shrink 和 flex-basis的簡寫,默認(rèn)值為0 0 auto谴供。后兩個屬性可選块茁。
  6. align-self 屬性允許單個項目有與其他項目不一樣的對齊方式,可覆蓋align-items屬性桂肌。默認(rèn)值為auto数焊,表示繼承父元素的align-items屬性,如果沒有父元素崎场,則等同于stretch昌跌。
  7. margin : auto 設(shè)置"margin"值為"auto"值,自動獲取彈性容器中剩余的空間照雁。所以設(shè)置垂直方向margin值為"auto"蚕愤。可以使彈性子元素在彈性容器的兩上軸方向都完全集中饺蚊。
    以下實例在第一個彈性子元素上設(shè)置了 margin-right: auto; 纸泄。 它將剩余的空間放置在元素的右側(cè):

flex :默認(rèn) 0 1 auto ; auto<=> " 1 1 auto "; none<=> "0 0 auto"
參考一下代碼壳嚎,分別改變flex的三個值,去理解其中三個值的含義。
當(dāng)總長度-去flex-basis的值之后馅扣,根據(jù)剩余的空間或者縮小比例 來改變grow或者shrink的值静秆。

<style>
#main {
    width: 350px;
    height: 100px;
    border: 1px solid #c3c3c3;
    display: flex;
}
#main div {
    flex: 0 1 80px;
}

#main div:nth-of-type(5) {
  flex: 0 1 30px;
}
flex-grow : 
flex-shrink: 
</style>
</head>
<body>

<div id="main">
  <div style="background-color:coral;">1</div>
  <div style="background-color:lightblue;">2</div>
  <div style="background-color:khaki;">3</div>
  <div style="background-color:pink;">4</div>
  <div style="background-color:lightgrey;">5</div>
</div>

示例

DEMO

骰子
圣懷布局
常用后臺布局

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末喊巍,一起剝皮案震驚了整個濱河市路媚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌苗缩,老刑警劉巖饵蒂,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異酱讶,居然都是意外死亡退盯,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門泻肯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渊迁,“玉大人,你說我怎么就攤上這事灶挟×鹦啵” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵稚铣,是天一觀的道長箱叁。 經(jīng)常有香客問我墅垮,道長,這世上最難降的妖魔是什么蝌蹂? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任噩斟,我火速辦了婚禮曹锨,結(jié)果婚禮上孤个,老公的妹妹穿的比我還像新娘。我一直安慰自己沛简,他們只是感情好齐鲤,可當(dāng)我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著椒楣,像睡著了一般给郊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捧灰,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天淆九,我揣著相機與錄音,去河邊找鬼毛俏。 笑死炭庙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的煌寇。 我是一名探鬼主播焕蹄,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阀溶!你這毒婦竟也來了腻脏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤银锻,失蹤者是張志新(化名)和其女友劉穎永品,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體击纬,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡腐碱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了掉弛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片症见。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖殃饿,靈堂內(nèi)的尸體忽然破棺而出谋作,到底是詐尸還是另有隱情,我是刑警寧澤乎芳,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布遵蚜,位于F島的核電站帖池,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吭净。R本人自食惡果不足惜睡汹,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望寂殉。 院中可真熱鬧囚巴,春花似錦、人聲如沸友扰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽村怪。三九已至秽浇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間甚负,已是汗流浹背柬焕。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留梭域,地道東北人斑举。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像碰辅,于是被迫代替她去往敵國和親懂昂。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,922評論 2 361

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