flex — 彈性盒子布局

flex 基本概念

  • flex 的核心的概念就是 容器 和 軸宙攻。容器包括外層的 父容器 和內(nèi)層的 子容器,軸包括 主軸 和 交叉軸蠢涝,可以說(shuō) flex 布局的全部特性都構(gòu)建在這兩個(gè)概念上

  • 容器具有這樣的特點(diǎn):父容器可以統(tǒng)一設(shè)置子容器的排列方式乏苦,子容器也可以單獨(dú)設(shè)置自身的排列方式蛉顽,如果兩者同時(shí)設(shè)置,以子容器的設(shè)置為準(zhǔn)矾端。

任何一個(gè)容器都可以指定為 Flex 布局掏击。
.box{
    display: flex;
 }
行內(nèi)元素也可以使用 Flex 布局。
.box{
   display: inline-flex;
}
注意:設(shè)為 Flex 布局以后秩铆,子元素的float砚亭、clear和vertical-align屬性將失效。

1. 父容器

  • flex-direction屬性決定主軸的方向(即項(xiàng)目的排列方向)。

.box {
    flex-direction: row | row-reverse | column | column-reverse; 
}
image.png
  row(默認(rèn)值):主軸為水平方向捅膘,起點(diǎn)在左端.

  row-reverse:主軸為水平方向添祸,起點(diǎn)在右端。

  column:主軸為垂直方向寻仗,起點(diǎn)在上沿膝捞。

  column-reverse:主軸為垂直方向,起點(diǎn)在下沿愧沟。
  • justify-content 屬性用于定義如何沿著主軸方向排列子容器蔬咬。

.box {
    justify-content: flex-start | flex-end | center | space-between | space-around;
}
image.png
  flex-start:起始端對(duì)齊

  flex-end:末尾段對(duì)齊

  center:居中對(duì)齊

  space-around:子容器沿主軸均勻分布,位于首尾兩端的子容器到父容器的距離是子容器間距的一半

  space-between:子容器沿主軸均勻分布沐寺,位于首尾兩端的子容器與父容器相切林艘。
  • align-items 屬性用于定義如何沿著交叉軸方向分配子容器的間距。

.box {
  align-items: flex-start | flex-end | center | baseline | stretch;
}
image.png
   flex-start:與交叉軸的起點(diǎn)對(duì)齊混坞。

   flex-end:與交叉軸的終點(diǎn)對(duì)齊狐援。

   center:與交叉軸的中點(diǎn)對(duì)齊。

   space-between:與交叉軸兩端對(duì)齊究孕,軸線之間的間隔平均分布啥酱。

   space-around:每根軸線兩側(cè)的間隔都相等。所以厨诸,軸線之間的間隔比軸線與邊框的間隔大一倍镶殷。

   stretch(默認(rèn)值):軸線占滿整個(gè)交叉軸。
  • align-content屬性定義了多根軸線的對(duì)齊方式微酬。如果項(xiàng)目只有一根軸線绘趋,該屬性不起作用。

.box {
  align-content: flex-start | flex-end | center | space-between | space-around | stretch;
}
flex-start:與交叉軸的起點(diǎn)對(duì)齊颗管。

flex-end:與交叉軸的終點(diǎn)對(duì)齊陷遮。

center:與交叉軸的中點(diǎn)對(duì)齊。

space-between:與交叉軸兩端對(duì)齊垦江,軸線之間的間隔平均分布帽馋。

space-around:每根軸線兩側(cè)的間隔都相等。所以比吭,軸線之間的間隔比軸線與邊框的間隔大一倍绽族。

stretch(默認(rèn)值):軸線占滿整個(gè)交叉軸。
  • flex-wrap:設(shè)置換行方式:

默認(rèn)情況下梗逮,項(xiàng)目都排在一條線(又稱"軸線")上项秉。flex-wrap屬性定義,如果一條軸線排不下慷彤,如何換行

.box{
    flex-wrap: nowrap | wrap | wrap-reverse;
}
  • flex-flow:是flex-direction屬性和flex-wrap屬性的簡(jiǎn)寫形式娄蔼,默認(rèn)值為row nowrap怖喻。

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

2. 子項(xiàng)目

  • order:定義項(xiàng)目的排列順序。數(shù)值越小岁诉,排列越靠前锚沸,默認(rèn)為0。

 .son {
    order: 2; /* default 0 */
 }
  • flex-grow:定義項(xiàng)目的放大比例涕癣,默認(rèn)為0哗蜈,即如果存在剩余空間,也不放大坠韩。

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

tips:如果所有項(xiàng)目的flex-grow屬性都為1距潘,則它們將等分剩余空間(如果有的話)。如果一個(gè)項(xiàng)目的 flex- grow屬性為2只搁,其他項(xiàng)目都為1音比,則前者占據(jù)的剩余空間將比其他項(xiàng)多一倍。

  • flex-shrink:定義了項(xiàng)目的縮小比例氢惋,默認(rèn)為1洞翩,即如果空間不足,該項(xiàng)目將縮小焰望。

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

tips:如果所有項(xiàng)目的flex-shrink屬性都為1骚亿,當(dāng)空間不足時(shí),都將等比例縮小熊赖。如果一個(gè)項(xiàng)目的flex-shrink
屬性為0来屠,其他項(xiàng)目都為1,則空間不足時(shí)秫舌,前者不縮小的妖。 負(fù)值對(duì)該屬性無(wú)效绣檬。

  • flex-basis:定義了在分配多余空間之前足陨,項(xiàng)目占據(jù)的主軸空間(main size)。瀏覽器根據(jù)這個(gè)屬性娇未,計(jì)算主軸是否有多余空間墨缘。它的默認(rèn)值為auto,即項(xiàng)目的本來(lái)大小零抬。

.son {
  flex-basis: 100px | auto; /* default auto */
}

tips:它可以設(shè)為跟width或height屬性一樣的值(比如100px)镊讼,則項(xiàng)目將占據(jù)固定空間。

  • flex:flex-grow, flex-shrink 和 flex-basis的簡(jiǎn)寫平夜,默認(rèn)值為0 1 auto蝶棋。后兩個(gè)屬性可選。

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

tips:該屬性有兩個(gè)快捷值:auto (1 1 auto) 和 none (0 0 auto)忽妒。建議優(yōu)先使用這個(gè)屬性玩裙,而不是單獨(dú)寫三個(gè)
分離的屬性兼贸,因?yàn)闉g覽器會(huì)推算相關(guān)值

  • align-self:允許單個(gè)項(xiàng)目有與其他項(xiàng)目不一樣的對(duì)齊方式,可覆蓋align-items屬性吃溅。默認(rèn)值為auto溶诞,表示繼承父元素的align- items屬性,如果沒(méi)有父元素决侈,則等同于stretch螺垢。

.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市赖歌,隨后出現(xiàn)的幾起案子枉圃,更是在濱河造成了極大的恐慌,老刑警劉巖庐冯,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件讯蒲,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡肄扎,警方通過(guò)查閱死者的電腦和手機(jī)墨林,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)犯祠,“玉大人旭等,你說(shuō)我怎么就攤上這事『庠兀” “怎么了搔耕?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)痰娱。 經(jīng)常有香客問(wèn)我弃榨,道長(zhǎng),這世上最難降的妖魔是什么梨睁? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任鲸睛,我火速辦了婚禮,結(jié)果婚禮上坡贺,老公的妹妹穿的比我還像新娘官辈。我一直安慰自己,他們只是感情好遍坟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布拳亿。 她就那樣靜靜地躺著,像睡著了一般愿伴。 火紅的嫁衣襯著肌膚如雪肺魁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天隔节,我揣著相機(jī)與錄音鹅经,去河邊找鬼胡桨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛瞬雹,可吹牛的內(nèi)容都是我干的昧谊。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼酗捌,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼呢诬!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起胖缤,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤尚镰,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后哪廓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狗唉,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年涡真,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了分俯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡哆料,死狀恐怖缸剪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情东亦,我是刑警寧澤杏节,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站典阵,受9級(jí)特大地震影響奋渔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜壮啊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一嫉鲸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧他巨,春花似錦充坑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辈灼。三九已至份企,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間巡莹,已是汗流浹背司志。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工甜紫, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人骂远。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓囚霸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親激才。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拓型,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

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

  • 2009年,W3C 提出了一種新的方案----Flex 布局瘸恼,可以簡(jiǎn)便劣挫、完整、響應(yīng)式地實(shí)現(xiàn)各種頁(yè)面布局东帅。目前压固,它已...
    丫3閱讀 562評(píng)論 0 0
  • 給容器設(shè)置任何容器都設(shè)置 inline-flex 場(chǎng)景幾乎沒(méi)有 (行級(jí))子元素 浮動(dòng)display : ...
    小飛俠zzr閱讀 1,162評(píng)論 0 1
  • 移動(dòng)開發(fā)基本知識(shí)點(diǎn) 一.使用rem作為單位 html { font-size: 100px; } @media(m...
    橫沖直撞666閱讀 3,460評(píng)論 0 6
  • 彈性可伸展的.讓一個(gè)容器變成一個(gè)可以自由伸展(彈性)的 移動(dòng)端使用較多(不用考慮IE) 1 起源 2009年.W3...
    Jianshu9527閱讀 890評(píng)論 0 0
  • H5移動(dòng)端知識(shí)點(diǎn)總結(jié) 閱讀目錄 移動(dòng)開發(fā)基本知識(shí)點(diǎn) calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇閱讀 4,433評(píng)論 0 26