有關(guān)于 flex 布局

flex 布局

  • flex 布局譯為彈性布局儒洛,用來為盒狀模型提供最大的靈活性
    任何一個(gè)容器都可以指定為 flex 布局
  • webkit 內(nèi)核 瀏覽器必須加上-webkit
    設(shè)為 flex 布局之后珠叔,子元素的 float\clear\vertical-align 屬性將失效

基本概念

  • 采用 flex 布局的元素,稱為 flex (flex container)容器,簡(jiǎn)稱容器费什。他的所有子元素自動(dòng)稱為容器成員审孽,稱為 flex (flex item)項(xiàng)目,簡(jiǎn)稱項(xiàng)目
image.png

上圖利于理解 flex 布局屬性值

  • 容器默認(rèn)存在兩根軸:水平主軸(main axis) 和垂直的交叉軸 (cross axis)描融。主軸的開始位置與邊框的交叉點(diǎn)叫做main start,結(jié)束位置叫做main end;交叉軸的開始位置叫做cross start, 結(jié)束位置叫做 cross end
    項(xiàng)目默認(rèn)沿主軸排列。單個(gè)項(xiàng)目占據(jù)的主軸空間叫做main size,占據(jù)的交叉軸空間叫做cross size.

容器屬性

  • 此處屬性為容器屬性衡蚂,即父盒子屬性
flex-direction
flex-wrap
flex-flow
justify-content
align-items
align-content
  • flex-direction 屬性決定主軸的方向窿克,即項(xiàng)目排列方向
.box{
        flex-direction:row | row-reverse | column | column-reverse
}
row -- 主軸水平方向,起點(diǎn)在左端毛甲,是默認(rèn)值
row-reverse -- 主軸為水平方向年叮,起點(diǎn)在右端
column -- 主軸為垂直方向,起點(diǎn)在上方頂端
column-reverse -- 主軸為垂直方向玻募,起點(diǎn)在下方底端
image.png

從左到右依次:column-reverse,column,row,row-recverse

  • flex-wrap 屬性
    默認(rèn)情況下只损,項(xiàng)目都排在一條線上(軸線),flex-wrap屬性定義七咧,如果一條軸線排不下如何換行的作用
.box{
    flex-wrap:nowrap | wrap | wrap-reverse
}

它可能取3個(gè)值

  • nowrap -- 不換行跃惫,為默認(rèn)值
  • wrap -- 換行,第一行在上方
image.png
  • wrap-reverse -- 換行艾栋,第一行在下方
image.png
  • flex-flow
    flex-flow 屬性是 flex-directionflex-wrap 屬性的簡(jiǎn)寫形式爆存,默認(rèn)值為row nowrap
.box{
    flex-flow: row || mowrap;
}
  • justify-content 屬性
    justify-content 屬性定義了項(xiàng)目在主軸上的對(duì)齊方式
.box{
    justify-content:flex-start | flex-end | center | space-between | space-around
}
image.png

它的可能取值為5個(gè),具體對(duì)齊方式與軸的方向有關(guān)蝗砾。下面假設(shè)主軸為從左到右

flex-start -- 默認(rèn)值先较,左對(duì)齊
flex-end -- 右對(duì)齊
center -- 居中對(duì)齊
space-between -- 兩端對(duì)齊携冤,項(xiàng)目之間的間隔都相等
space-around -- 每個(gè)項(xiàng)目?jī)蓚?cè)的間隔相等,所以闲勺,項(xiàng)目之間的間隔比項(xiàng)目與邊框的間隔大一倍
  • align-items 屬性
    align-items 屬性定義項(xiàng)目在交叉軸上如何對(duì)齊
.box{
align-items:flex-start | flex-end | center | baseline | stretch;
}
image.png

它的可能取值為5個(gè)曾棕,具體的對(duì)齊方式與交叉軸的方向有關(guān),下面假設(shè)交叉軸從上到下

flex-start -- 交叉軸的起點(diǎn)對(duì)齊(上方)
flex-end -- 交叉軸的終點(diǎn)對(duì)齊 (下方)
center -- 交叉軸的中點(diǎn)對(duì)齊
baseline -- 項(xiàng)目的第一行文字的基線對(duì)齊
stretch -- 默認(rèn)值菜循,如果項(xiàng)目未設(shè)置高度或者設(shè)為 auto翘地,將占滿整個(gè)容器高度
  • align-content
    align-content 屬性定義了多跟軸線的對(duì)齊方式,如果項(xiàng)目只有一根軸線债朵,該屬性不起作用
.box{
    align-content:flex-start | flex-end | center | space-between | space-around | stretch;
}
image.png

該屬性有6個(gè)取值

flex-start -- 與交叉軸的起點(diǎn)對(duì)齊
flex-end -- 與交叉軸的終點(diǎn)對(duì)齊
center -- 與交叉軸的中點(diǎn)對(duì)齊
space-between -- 與交叉軸兩端對(duì)齊子眶,軸線之間的間隔平均分布
space-around -- 每個(gè)軸線兩側(cè)的間隔都相等,所以序芦,軸線之間的間隔比軸線與邊框的間隔大一倍
stretch -- 默認(rèn)值臭杰,軸線占滿整個(gè)交叉軸

項(xiàng)目屬性

以下六個(gè)屬性設(shè)置在項(xiàng)目上

order
flex-grow
flex-shrink
flex-basis
flex
align-self
  • order 屬性定義項(xiàng)目的排列順序,數(shù)值越小谚中,排列越靠前渴杆,默認(rèn)為0
.item{
    order : 1;
}
image.png
  • flex-grow 屬性
    flex-grow 屬性定義項(xiàng)目的放大比例,默認(rèn)為0宪塔,即如果存在剩余空間磁奖,也不放大
.item{
    flex-grow:<number>
}
image.png

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

  • flex-shrink 屬性
    flex-shrink 屬性定義了項(xiàng)目的縮小比例南誊,默認(rèn)為1身诺,即如果空間不足,該項(xiàng)目將縮小
.item{
    flex-shrink:<number>;
}
image.png

如果所有項(xiàng)目的 flex-shrink 屬性都為1抄囚,當(dāng)空間不足時(shí)霉赡,都將等比例縮小,如果一個(gè)項(xiàng)目的flex-shrink 屬性為0幔托,其他項(xiàng)目都為1穴亏,則空間不足時(shí),前者不縮小重挑,負(fù)值無效

  • flex-basis 屬性
    flex-basis 屬性定義了在分配多余空間之前嗓化,項(xiàng)目占據(jù)的主軸空間,瀏覽器根據(jù)這個(gè)屬性谬哀,計(jì)算主軸是否有多余空間刺覆,他的默認(rèn)值為auto,即項(xiàng)目的本來大小
.item{
    flex-basis:<length> | auto;
}

它可以設(shè)為跟widthheight屬性一樣的值,即項(xiàng)目將占據(jù)固定空間

  • flex 屬性
    flex屬性是flex-grow,flex-shrinkflex-basis的簡(jiǎn)寫职恳,默認(rèn)值為0 1 auto后兩個(gè)屬性可選
.item{
    flex: none | [<'flex-grow'> <'flex-shrink'> ? || <'flex-basis'>];
}

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

  • align-self 屬性
    align-self 屬性允許單個(gè)項(xiàng)目有與其他項(xiàng)目不一樣的對(duì)齊方式伦仍,可覆蓋align-items屬性。默認(rèn)值為auto,表示繼承父元素的align-items屬性很洋,如果沒有父元素充蓝,則等同于stretch
.item{
    align-self:auto | flex-start | flex-end | center | baseline | stretch;
}
image.png

該屬性可能取6個(gè)值,除了 auto喉磁,其他都與 align-items 屬性完全一致

主軸未必是x軸谓苟,交叉軸則為垂直與主軸交叉的那個(gè)軸

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市协怒,隨后出現(xiàn)的幾起案子涝焙,更是在濱河造成了極大的恐慌,老刑警劉巖孕暇,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仑撞,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡妖滔,警方通過查閱死者的電腦和手機(jī)隧哮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來座舍,“玉大人沮翔,你說我怎么就攤上這事∏” “怎么了采蚀?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)岸浑。 經(jīng)常有香客問我搏存,道長(zhǎng),這世上最難降的妖魔是什么矢洲? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任璧眠,我火速辦了婚禮,結(jié)果婚禮上读虏,老公的妹妹穿的比我還像新娘责静。我一直安慰自己,他們只是感情好盖桥,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布灾螃。 她就那樣靜靜地躺著,像睡著了一般揩徊。 火紅的嫁衣襯著肌膚如雪腰鬼。 梳的紋絲不亂的頭發(fā)上嵌赠,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音熄赡,去河邊找鬼姜挺。 笑死,一個(gè)胖子當(dāng)著我的面吹牛彼硫,可吹牛的內(nèi)容都是我干的炊豪。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼拧篮,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼词渤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起串绩,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤缺虐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后礁凡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體志笼,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年把篓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了纫溃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡韧掩,死狀恐怖紊浩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情疗锐,我是刑警寧澤坊谁,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站滑臊,受9級(jí)特大地震影響口芍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜雇卷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一鬓椭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧关划,春花似錦小染、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至调榄,卻和暖如春踊赠,著一層夾襖步出監(jiān)牢的瞬間呵扛,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工筐带, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留择份,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓烫堤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親凤价。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鸽斟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

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