關(guān)于 CSS 布局——Flex 布局解決方案(一)

上一篇 介紹了傳統(tǒng)的布局解決方案鱼鸠,基于 盒模型榆苞,依靠 display 屬性 + position 屬性 + float 屬性 + z-index 屬性;而它對于特殊的布局結(jié)構(gòu)不太友好霞捡,比如坐漏,垂直居中 就不易實現(xiàn)。

關(guān)于 Flex 布局

Flex(Flexible Box)碧信,即彈性布局,Flexbox 的子元素之間提供了強(qiáng)大的空間分布和對齊能力赊琳,為各種布局結(jié)構(gòu)提供了合理的解決方案。當(dāng)容器設(shè)為Flex布局以后砰碴,子元素的float 躏筏、clearvertical-align 屬性將失效。

基本概念

Flex 布局是一種一維的布局模型呈枉,能處理一個維度上的元素布局趁尼。

  • FlexBox 中的兩根軸
    當(dāng)使用 Flex 布局時,容器中有兩根軸線:主軸和與之垂直的軸猖辫。
  • FlexBox 中的起始和終止線
    起始線終止線規(guī)定了兩根軸線在布局中的方向酥泞。

FlexBox 容器屬性

  • flex-direction
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content
  • flex-direction
    flex-direction定義了容器的兩根軸的方向和起止方向,可取值有 row | row-reverse | column | column-reverse啃憎。
    flex-direction: row;                   /主軸為水平方向芝囤,起點在左端
    flex-direction: row-reverse;           /主軸為水平方向,起點在右端
    flex-direction: column;                /主軸為垂直方向,起點在上沿
    flex-direction: column-reverse;        /主軸為垂直方向悯姊,起點在下沿
  • flex-wrap
    默認(rèn)情況下羡藐,容器內(nèi)的 item 都會根據(jù)主軸進(jìn)行排列,即使超出了容器的邊界也不會換行繼續(xù)顯示悯许。flex-wrap 規(guī)定了元素是否換行仆嗦,可取值有 nowrap | wrap | wrap-reverse
    flex-wrap: nowrap;                      /不換行岸晦。
    flex-wrap: wrap;                        /換行
    flex-wrap: wrap-reverse;                /反向換行
  • flex-flow
    flex-flowflex-direction屬性和flex-wrap 屬性的簡寫形式欧啤,默認(rèn)值為row nowrap
  • justify-content
    justify-content 屬性定義了容器內(nèi)元素在主軸上的對齊方式启上。常用的取值有 flex-start | flex-end | center | space-between | space-around邢隧。
   justify-content: flex-start              /默認(rèn)值,起始線對齊
   justify-content: flex-end                /終止線對齊
   justify-content: center                  /主軸居中對齊
   justify-content: space-around            /主軸兩端對齊冈在,容器內(nèi)元素之間的間距相同
   justify-content: space-between           /主軸方向上倒慧,容器內(nèi)每個元素有相同的外邊距
  • align-items
    align-items 屬性定義項目在交叉軸上如何對齊。常用的取值有 flex-start | flex-end | center | baseline | stretch包券。
   align-items: flex-start;                 /默認(rèn)值,交叉軸起始線對齊
   align-items: flex-end;                   /交叉軸終止線對齊
   align-items: center;                     /交叉軸居中對齊
   align-items: baseline;                   /項目的第一行文字的基線對齊
   align-items: stretch;                    /如果項目未設(shè)置高度或設(shè)為auto纫谅,將占滿整個容器的高度
  • align-content
    align-content 屬性定義了多根軸線的對齊方式。常用取值有 align-content: flex-start | flex-end | center | space-between | space-around | stretch溅固。
    align-content: flex-start付秕;              /交叉軸起始線對齊
    align-content: flex-end;                /交叉軸終止線對齊
    align-content: center侍郭;                  /交叉軸居中對齊
    align-content: space-between询吴;           /交叉軸兩端對齊,容器內(nèi)元素之間的間距相同
    align-content: space-around亮元;            /交叉軸方向上猛计,容器內(nèi)每個元素有相同的外邊距
    align-content: stretch;                 /默認(rèn)值爆捞,軸線占滿整個交叉軸

item 元素屬性

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self
  • order
    order 屬性規(guī)定了彈性容器中的可伸縮項目在布局時的順序奉瘤。元素按照 order 屬性的值的增序進(jìn)行布局,取值為整數(shù)煮甥,值越小順序越靠前盗温。
  • flex-grow
    flex-grow 屬性定義彈性容器內(nèi)元素的拉伸因子,取值為非負(fù)整數(shù)成肘,0 為不拉伸肌访,值越大拉伸比例越大,按比例分配容器內(nèi)剩余空間艇劫。
  • flex-shrink
    flex-shrink 屬性指定了 flex 元素的收縮規(guī)則吼驶。flex 元素僅在默認(rèn)寬度之和大于容器的時候才會發(fā)生收縮惩激,其收縮的大小是依據(jù) flex-shrink 的值。取值為非負(fù)整數(shù)蟹演,0 為不收縮风钻,值越大收縮比例越大,按比例收縮充滿彈性容器酒请。
  • flex-basis
    flex-basis屬性指定了 flex 元素在主軸方向上的初始大小骡技,默認(rèn)為 auto
  • flex
    flex 屬性是flex-grow, flex-shrinkflex-basis的簡寫羞反,默認(rèn)值為0 1 auto布朦。
  • align-self
    align-self 屬性允許單個項目有與其他項目不一樣的對齊方式,可覆蓋align-items 屬性昼窗。默認(rèn)值為auto 是趴,表示繼承父元素的align-items 屬性,如果沒有父元素澄惊,則等同于 stretch唆途。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市掸驱,隨后出現(xiàn)的幾起案子肛搬,更是在濱河造成了極大的恐慌,老刑警劉巖毕贼,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件温赔,死亡現(xiàn)場離奇詭異,居然都是意外死亡鬼癣,警方通過查閱死者的電腦和手機(jī)陶贼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扣溺,“玉大人骇窍,你說我怎么就攤上這事瓜晤∽队啵” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵痢掠,是天一觀的道長驱犹。 經(jīng)常有香客問我,道長足画,這世上最難降的妖魔是什么雄驹? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮淹辞,結(jié)果婚禮上医舆,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好蔬将,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布爷速。 她就那樣靜靜地躺著,像睡著了一般霞怀。 火紅的嫁衣襯著肌膚如雪惫东。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天毙石,我揣著相機(jī)與錄音廉沮,去河邊找鬼。 笑死徐矩,一個胖子當(dāng)著我的面吹牛滞时,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播丧蘸,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼漂洋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了力喷?” 一聲冷哼從身側(cè)響起刽漂,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎弟孟,沒想到半個月后贝咙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡拂募,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年庭猩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陈症。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡蔼水,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出录肯,到底是詐尸還是另有隱情趴腋,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布论咏,位于F島的核電站优炬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏厅贪。R本人自食惡果不足惜蠢护,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望养涮。 院中可真熱鬧葵硕,春花似錦眉抬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蘸劈,卻和暖如春昏苏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背威沫。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工贤惯, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人棒掠。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓孵构,卻偏偏與公主長得像,于是被迫代替她去往敵國和親烟很。 傳聞我的和親對象是個殘疾皇子颈墅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,737評論 1 92
  • 一雾袱、Flex 布局是什么恤筛? CSS3引入了一種新的布局模式——Flexbox布局,即伸縮盒模型布局(Flexibl...
    俠客有情劍無情QAQ閱讀 5,733評論 7 94
  • H5移動端知識點總結(jié) 閱讀目錄 移動開發(fā)基本知識點 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇閱讀 4,431評論 0 26
  • 第六章 師姐駕到 我要減肥芹橡,減肥是女人永恒的主題毒坛,不管她胖還是瘦,都永遠(yuǎn)想減肥林说。我們手術(shù)室有個很胖的女護(hù)士煎殷,有...
    張大大大錢閱讀 285評論 0 0
  • 「生活就像騎自行車豪直,要想保持平衡,就要不斷運動」 初入職場珠移,我早早就給自己定下了計劃弓乙,還有提前租房的適應(yīng)活動。 工...
    麥其家的二少爺閱讀 389評論 1 1