flex布局(彈性布局)淺析

1.Flex布局是什么?

Flex是Flexible Box的縮寫,就是靈活的彈性頁面布局育特。

作用是為盒子模型提供強大的靈活性功能啃憎;

兼容性:也被所有主流瀏覽器所支持

Flex布局支持的瀏覽器

任何一個容器都可以指定為Flex布局,包括塊級元素和行內(nèi)元素次洼。

塊級元素的Flex布局聲明方式為

.box{display: flex;? }

行內(nèi)元素的Flex布局聲明方式為

.box{display: inline-flex;}

Webkit內(nèi)核的瀏覽器关贵,必須加上-webkit前綴

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

注意:設(shè)為Flex布局以后,子元素的float卖毁、clear和vertical-align屬性將失效坪哄。

2、基本概念

采用Flex布局的元素势篡,稱為Flex容器(flex container)翩肌,簡稱"容器"。它的所有子元素自動成為容器成員禁悠,稱為Flex項目(flex item)念祭,簡稱"項目"。

flex容器

容器有兩根軸:

main axis(主軸):容器中水平的稱為主軸碍侦;main start(主軸的開始位置)粱坤;main end(主軸的結(jié)束位置)隶糕;

cross axis(交叉軸):容器中垂直于主軸的軸稱為交叉軸;cross start(交叉軸的開始位置)站玄;cross end(交叉軸的結(jié)束位置)枚驻;

需注意,項目默認是按照主軸排列的株旷,main size(單個項目占據(jù)的主軸空間)再登,cross size(單個項目占據(jù)的交叉軸空間);

3.容器的屬性

flex-direction

flex-direction屬性決定主軸的方向(即項目的排列方向)晾剖。

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


column-reverse \ column \ row \ row-reverse

row(默認值):主軸為水平方向锉矢,起點在左端。

row-reverse:主軸為水平方向齿尽,起點在右端沽损。

column:主軸為垂直方向,起點在上沿循头。

column-reverse:主軸為垂直方向绵估,起點在下沿。

flex-wrap

flex-wrap屬性:默認情況下卡骂,項目都排在一條線(又稱"軸線")上壹士。flex-wrap

屬性定義,如果一條軸線排不下偿警,可以選擇換行躏救。

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

nowrap(默認):不換行。wrap:換行螟蒸,第一行在上方盒使。wrap-reverse:換行,第一行在下方七嫌。

flex-flow

flex-flow屬性是flex-direction屬性和flex-wrap屬性的簡寫形式少办,默認值為row nowrap。

.box{flex-flow: || ;}

justify-content

justify-content屬性定義了項目在主軸上的對齊方式诵原。

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

flex-start \ flex-end \ center \ space-between \ space-around

flex-start(默認值):左對齊

flex-end:右對齊

center: 居中

space-between:兩端對齊英妓,項目之間的間隔都相等。

space-around:每個項目兩側(cè)的間隔相等绍赛。所以蔓纠,項目之間的間隔比項目與邊框的間隔大一倍。

align-items

align-items屬性定義項目在交叉軸上如何對齊吗蚌。

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

flex-start \ flex-end \ center \ baseline \ stretch

flex-start:交叉軸的起點對齊腿倚。

flex-end:交叉軸的終點對齊。

center:交叉軸的中點對齊蚯妇。

baseline: 項目的第一行文字的基線對齊敷燎。

stretch(默認值):如果項目未設(shè)置高度或設(shè)為auto暂筝,將占滿整個容器的高度。

align-content

align-content屬性定義了多根軸線的對齊方式硬贯。如果項目只有一根軸線焕襟,該屬性不起作用。

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

flex-start \ flex-en \ center \ space-between \ space-around \ ?stretch

flex-start:與交叉軸的起點對齊饭豹。

flex-end:與交叉軸的終點對齊鸵赖。

center:與交叉軸的中點對齊。

space-between:與交叉軸兩端對齊墨状,軸線之間的間隔平均分布卫漫。

space-around:每根軸線兩側(cè)的間隔都相等菲饼。所以肾砂,軸線之間的間隔比軸線與邊框的間隔大一倍。stretch(默認值):軸線占滿整個交叉軸宏悦。

4.項目的屬性

order

order屬性定義項目的排列順序镐确。數(shù)值越小,排列越靠前饼煞,默認為0源葫。

.item{order: x;};

flex-grow

flex-grow屬性定義項目的放大比例,默認為0砖瞧,即如果存在剩余空間息堂,也不放大。

如果所有項目的flex-grow屬性都為1块促,則它們將等分剩余空間(如果有的話)荣堰。如果一個項目的flex-grow屬性為2,其他項目都為1竭翠,則前者占據(jù)的剩余空間將比其他項多一倍振坚。

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

flex-shrink

flex-shrink屬性定義了項目的縮小比例,默認為1斋扰,即如果空間不足渡八,該項目將縮小。

如果所有項目的flex-shrink屬性都為1传货,當空間不足時屎鳍,都將等比例縮小。如果一個項目的flex-shrink屬性為0问裕,其他項目都為1哥艇,則空間不足時,前者不縮小僻澎。負值對該屬性無效貌踏。

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

flex-basis

flex-basis屬性定義了在分配多余空間之前十饥,項目占據(jù)的主軸空間(main size)。瀏覽器根據(jù)這個屬性祖乳,計算主軸是否有多余空間逗堵。它的默認值為auto,即項目的本來大小眷昆。

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

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

flex

flex屬性是flex-grow, flex-shrink 和 flex-basis的簡寫亚斋,默認值為0 1 auto作媚。后兩個屬性可選。

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

建議優(yōu)先使用這個屬性纸泡,而不是單獨寫三個分離的屬性,因為瀏覽器會推算相關(guān)值赖瞒。

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

align-self

align-self屬性允許單個項目有與其他項目不一樣的對齊方式女揭,可覆蓋align-items屬性。默認值為auto栏饮,表示繼承父元素的align-items屬性吧兔,如果沒有父元素,則等同于stretch袍嬉。

該屬性可能取6個值境蔼,除了auto,其他都與align-items屬性完全一致伺通。

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

彈性布局先介紹到這里箍土,如果對您有所幫助的話,請點贊并關(guān)注哦泵殴,我會不定時的更新一下自己學習的經(jīng)驗以及見解涮帘,和大家進行交流。

您贊就是是我最大的動力Pψ纭5饔А!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吆你,一起剝皮案震驚了整個濱河市弦叶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌妇多,老刑警劉巖伤哺,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡立莉,警方通過查閱死者的電腦和手機绢彤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜓耻,“玉大人茫舶,你說我怎么就攤上這事∩蔡剩” “怎么了饶氏?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長有勾。 經(jīng)常有香客問我疹启,道長,這世上最難降的妖魔是什么蔼卡? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任喊崖,我火速辦了婚禮,結(jié)果婚禮上菲宴,老公的妹妹穿的比我還像新娘贷祈。我一直安慰自己趋急,他們只是感情好喝峦,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呜达,像睡著了一般谣蠢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上查近,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天眉踱,我揣著相機與錄音,去河邊找鬼霜威。 笑死谈喳,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的戈泼。 我是一名探鬼主播婿禽,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼大猛!你這毒婦竟也來了扭倾?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤挽绩,失蹤者是張志新(化名)和其女友劉穎膛壹,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡模聋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年肩民,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片链方。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡此改,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出侄柔,到底是詐尸還是另有隱情共啃,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布暂题,位于F島的核電站移剪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏薪者。R本人自食惡果不足惜纵苛,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望言津。 院中可真熱鬧攻人,春花似錦、人聲如沸悬槽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽初婆。三九已至蓬坡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間磅叛,已是汗流浹背屑咳。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留弊琴,地道東北人兆龙。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像敲董,于是被迫代替她去往敵國和親紫皇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

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

  • 移動開發(fā)基本知識點 一.使用rem作為單位 html { font-size: 100px; } @media(m...
    橫沖直撞666閱讀 3,453評論 0 6
  • H5移動端知識點總結(jié) 閱讀目錄 移動開發(fā)基本知識點 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇閱讀 4,395評論 0 26
  • 作者: 阮一峰日期: 2015年7月10日原文鏈接:http://www.ruanyifeng.com/blog/...
    Mike_Gu閱讀 971評論 0 6
  • 2009年臣缀,W3C 提出了一種新的方案----Flex 布局坝橡,可以簡便、完整精置、響應式地實現(xiàn)各種頁面布局计寇。目前,它已...
    丫3閱讀 560評論 0 0
  • 我出生之時尚無為,我出生之后蠻已衰… … 天不仁兮降亂離番宁,地不仁兮使我烏山殤元莫。 干戈起兮月碎紛非,陌于南兮家路哀悲...
    羌淄泫閱讀 2,732評論 2 3