Flexbox彈性盒模型詳解

導(dǎo)讀

  • Flexbox背景 / 起源
  • 基礎(chǔ)概念 (重點(diǎn))
  • 彈性容器 (重點(diǎn))
  • 彈性項(xiàng)目 (重點(diǎn))

Flexbox

2017年十月,w3c推薦使用Flexbox模塊寫(xiě)布局带兜。
在此之前我們的布局有三種:

  • 浮動(dòng)布局
  • 流動(dòng)布局
  • 定位布局

以上三種的共同點(diǎn)是:基于元素方向任柜。

  • 塊元素:自上而下
  • 行內(nèi)元素:自左而右
  • 在布局的時(shí)候卒废,父元素對(duì)子元素幾乎沒(méi)有什么掌控力。這句話是說(shuō):在布局方面宙地,父子元素之間的關(guān)系不夠緊密

Flexbox的目的
為各種限時(shí)設(shè)備和屏幕尺寸提供一種更高效的布局方式摔认,來(lái)處理元素的布局及元素之間的空間。

核心思想
賦予父元素一種超能力宅粥,讓父元素具有改變子元素的能力:

  • 改變子元素的尺寸
  • 改變子元素的位置
  • 改變子元素的排序
  • 改變子元素之間的空白

'彈性盒模型' - 彈性盒模型指的是一套css屬性規(guī)則参袱,不是一個(gè)css屬性,具體來(lái)說(shuō)秽梅,分為兩組:

  • 彈性容器屬性
  • 彈性項(xiàng)目屬性


    222.png

彈性容器 :被設(shè)置了display:flex的元素成為彈性容器抹蚀。彈性容器對(duì)子元素有掌控力。
彈性項(xiàng)目: 彈性容器的子元素被稱(chēng)為彈性項(xiàng)目风纠。彈性項(xiàng)目受到父元素的控制

主軸: 彈性項(xiàng)目排列的軸.彈性項(xiàng)目從主軸起點(diǎn)向主軸終點(diǎn)排列况鸣。
垂直軸:垂直于主軸的軸就是垂直軸,多行彈性項(xiàng)目沿垂直軸排列竹观。


主軸起點(diǎn):多個(gè)彈性項(xiàng)目沿主軸分布的起始點(diǎn)
主軸終點(diǎn):多個(gè)彈性項(xiàng)目沿主軸分布的終點(diǎn)


垂直軸起點(diǎn):多行彈性項(xiàng)目沿垂直軸分布的起點(diǎn)
垂直軸終點(diǎn):多行彈性項(xiàng)目沿垂直軸分布的終點(diǎn)


1.display

[圖片上傳失敗...(image-bb0d62-1668050962103)]
定義:用于定義彈性容器镐捧。
語(yǔ)法:

.container{
display:flex | inline-flex
}

屬性值:

  • flex:塊級(jí)彈性容器
  • inline-flex:行內(nèi)塊級(jí)彈性容器

2.flex-wrap

[圖片上傳失敗...(image-60b487-1668050962103)]
定義:用于定義折行方式。
語(yǔ)法:

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

屬性值:

  • nowrap:不換行臭增,所有彈性項(xiàng)目顯示在一行內(nèi)懂酱。(默認(rèn)值)
  • wrap:向垂直軸終點(diǎn)換行。彈性項(xiàng)目會(huì)根據(jù)容器的寬度自動(dòng)換行誊抛。
  • wrap-reverse :垂直軸起點(diǎn)換行列牺。彈性項(xiàng)目會(huì)根據(jù)容器的寬度自動(dòng)換行。

3.flex-direction

[圖片上傳失敗...(image-fe69b2-1668050962103)]
定義:用于設(shè)置彈性盒模型的主軸的方向.主軸方向就是元素的排列方式拗窃。
語(yǔ)法:

.container{
flex-direction:row | row-reverse | column | column-reverse
}

屬性值:

  • row:默認(rèn)值瞎领。彈性項(xiàng)目從左向右,從上到下排列
  • row-reverse:把主軸設(shè)為水平軸随夸,彈性項(xiàng)目從右向左九默,從上到下排列。
  • column:把主軸設(shè)為縱軸宾毒。彈性項(xiàng)目從上向下驼修,從左向右排列。
  • column-reverse:把主軸設(shè)為縱軸。彈性項(xiàng)目從上向下乙各,從左向右排列墨礁。

4.justify-content

justify:調(diào)整
[圖片上傳失敗...(image-c64d0b-1668050962103)]
定義:用于設(shè)置彈性項(xiàng)目的排列方式。
語(yǔ)法:

.contaienr{
justify-content:flex-start | flex-end | conter | space-between | space-around | space-evenly
}
  • flex-start:彈性項(xiàng)目從主軸起點(diǎn)向終點(diǎn)排列
  • flex-end : 彈性項(xiàng)目從主軸終點(diǎn)向起點(diǎn)排列 (順序不變)
  • conter :把彈性項(xiàng)目沿著主軸居中排列
  • space-between :彈性項(xiàng)目在項(xiàng)目與項(xiàng)目之間平均分布剩余空間耳峦。
  • space-around : 把剩余空間平均分布到彈性項(xiàng)目的兩側(cè)恩静。
  • space-evenly :把剩余空間平均分布到彈性項(xiàng)目之間(任意兩個(gè)彈性項(xiàng)目之間的空白是相等的。)

5.align-items

[圖片上傳失敗...(image-c8b969-1668050962103)]
定義:align-items用于設(shè)置沿著垂直軸的對(duì)齊方式妇萄。
語(yǔ)法:

.container{
align-items:flex-start | flex-end | conter | stretch | baseline
}

屬性值:

  • flex-start :彈性項(xiàng)目垂直對(duì)齊容器的起點(diǎn)位置蜕企。
  • flex-end :彈性項(xiàng)目垂直對(duì)齊容器的終點(diǎn)位置。
  • conter :彈性項(xiàng)目在彈性容器里居中對(duì)齊冠句。
  • stretch :默認(rèn)轻掩。拉伸子元素的高度,彈性項(xiàng)目被拉伸以適合容器懦底。
  • baseline :彈性項(xiàng)目對(duì)齊到容器的基線唇牧。

6.align-content

[圖片上傳失敗...(image-159a94-1668050962103)]
定義:設(shè)置彈性項(xiàng)目沿垂直軸的分布方式 / 對(duì)齊方式
語(yǔ)法:

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

屬性值:

  • normal:默認(rèn)
  • stretch:拉伸到彈性容器的高度
  • center:讓彈性項(xiàng)目沿著垂直軸居中對(duì)齊
  • flex-start:讓彈性項(xiàng)目對(duì)齊到垂直軸的起點(diǎn)位置
  • flex-end :讓彈性項(xiàng)目對(duì)齊到垂直軸的終點(diǎn)位置
  • space-between :剩余空間均勻分布在彈性項(xiàng)目?jī)蓚?cè),兩端各占一半
  • space-around : 剩余空間均勻分布在彈性項(xiàng)目之間聚唐。

7.gap

[圖片上傳失敗...(image-8429b3-1668050962103)]
定義:用于控制彈性項(xiàng)目之前的空白大小
該屬性僅僅控制非邊緣彈性項(xiàng)目(不控制第一個(gè)和最后一個(gè))
語(yǔ)法:

.container{
gap:10px;  /*單行:控制水平空白*/
gap:10px 10px ;  /*控制水平和垂直間距*/
}

屬性值:

  • 一個(gè)值 :控制水平空白
  • 兩個(gè)值:控制水平和垂直間距

8.order

定義:屬性規(guī)定彈性項(xiàng)目相對(duì)于同一容器內(nèi)其余彈性項(xiàng)目的順序丐重。
屬性值:number默認(rèn)值為 0。規(guī)定彈性項(xiàng)目的順序杆查。

注:屬性值越大扮惦,排行越靠后。

9.flex-grow

屬性值:規(guī)定項(xiàng)目相對(duì)于其余項(xiàng)目的增量亲桦。 |

  • 1崖蜜、flex-grow指擴(kuò)展flex子項(xiàng)所占據(jù)的寬度,擴(kuò)展的空間就是除去元素外剩余的空白間隙客峭。

  • 2豫领、不支持負(fù)值,默認(rèn)值是0舔琅,表示不占用剩余的空白間隙擴(kuò)展自己的寬度等恐。

  • 3、如果flex-grow大于0备蚓,則flex容器剩余空間的分配就會(huì)發(fā)生课蔬。

10.flex-shrink

定義:flex-shrink 屬性固定在相同的容器中,項(xiàng)目相對(duì)于其余彈性項(xiàng)目的收縮量郊尝。
屬性值:number 數(shù)字购笆,規(guī)定項(xiàng)目相對(duì)于其余彈性項(xiàng)目的收縮量。默認(rèn)值為 1虚循。

11.flex-basis

定義:屬性規(guī)定彈性項(xiàng)目的初始長(zhǎng)度。
屬性值:

  • number 長(zhǎng)度單位或百分百,規(guī)定彈性項(xiàng)目的初始長(zhǎng)度横缔。
  • auto 默認(rèn)值铺遂。長(zhǎng)度等于彈性項(xiàng)目的長(zhǎng)度。如果該項(xiàng)目未規(guī)定長(zhǎng)度茎刚,則長(zhǎng)度將依據(jù)其內(nèi)容襟锐。

解決浮動(dòng)布局高度坍塌的問(wèn)題:

解決高度塌陷的四種方法:

  • BFC
  • clear
  • 使用偽類(lèi)after
  • clearfix

12.復(fù)合屬性flex

語(yǔ)法:

.container{
flex: flex-grow flex-sheink flex-basis 
   /* flex: 0 1 auto; */
}

屬性值:

  • flex:1;/如果只有一個(gè)值膛锭,表示flex-grow/
  • flex: 50px;
  • flex: 50%;
    
  • flex: 20rem;/*如果有單位則指向 flex-basis*/  
    

一粮坞、BFC全稱(chēng) (Block Formatting Context) 塊級(jí)格式化環(huán)境
元素開(kāi)啟BFC的特點(diǎn):
1初狰、開(kāi)啟BFC的元素不會(huì)被浮動(dòng)元素所覆蓋
2、開(kāi)啟BFC的元素子元素和父元素外邊距不會(huì)重疊
3筝闹、開(kāi)啟BFC的元素可以包含子元素


開(kāi)啟BFC的方式:
1、設(shè)置元素的浮動(dòng)
2关顷、將元素設(shè)置為行內(nèi)塊元素
3武福、將元素的overflow設(shè)置為一個(gè)非visible的值
(常用的方式為元素設(shè)置overflow:hidden開(kāi)啟BFC)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末捉片,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子界睁,更是在濱河造成了極大的恐慌觉增,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翻斟,死亡現(xiàn)場(chǎng)離奇詭異逾礁,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)访惜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)嘹履,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人债热,你說(shuō)我怎么就攤上這事砾嫉。” “怎么了窒篱?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵焕刮,是天一觀的道長(zhǎng)舶沿。 經(jīng)常有香客問(wèn)我,道長(zhǎng)配并,這世上最難降的妖魔是什么括荡? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任吸祟,我火速辦了婚禮敢靡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘劳跃。我一直安慰自己观腊,他們只是感情好邑闲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布梧油。 她就那樣靜靜地躺著鲸阔,像睡著了一般褐筛。 火紅的嫁衣襯著肌膚如雪渔扎。 梳的紋絲不亂的頭發(fā)上晃痴,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天倘核,我揣著相機(jī)與錄音紧唱,去河邊找鬼漏益。 笑死,一個(gè)胖子當(dāng)著我的面吹牛舞终,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播煎谍,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼转捕!你這毒婦竟也來(lái)了五芝?” 一聲冷哼從身側(cè)響起枢步,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隘擎,沒(méi)想到半個(gè)月后货葬,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體震桶,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年淤堵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拐邪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扎阶。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡东臀,死狀恐怖惰赋,靈堂內(nèi)的尸體忽然破棺而出赁濒,到底是詐尸還是另有隱情拒炎,我是刑警寧澤击你,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布惯雳,位于F島的核電站吨凑,受9級(jí)特大地震影響鸵钝,放射性物質(zhì)發(fā)生泄漏恩商。R本人自食惡果不足惜怠堪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望损拢。 院中可真熱鬧福压,春花似錦、人聲如沸蒙幻。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至范嘱,卻和暖如春员魏,著一層夾襖步出監(jiān)牢的瞬間撕阎,已是汗流浹背虏束。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工照藻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留汗侵,地道東北人晰韵。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓栏尚,卻偏偏與公主長(zhǎng)得像抵栈,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子斥赋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

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

  • 導(dǎo)讀 Flexbox的來(lái)歷 基礎(chǔ)概念(重點(diǎn)) 彈性容器屬性(重點(diǎn)) 彈性項(xiàng)目屬性(重點(diǎn)) 應(yīng)用場(chǎng)景 Flexbox...
    buhaoqi閱讀 3,440評(píng)論 0 1
  • 大家好踱阿,我是IT修真院鄭州分院第四期的學(xué)員王相博软舌,一枚正直、純潔醇滥、善良的前端程序員 今天給大家分享一下鸳玩,修真院官網(wǎng)...
    More_ce0d閱讀 1,660評(píng)論 1 1
  • 彈性盒子是一種新技術(shù),但在如今各個(gè)瀏覽器都廣泛支持的情況下船响,它已經(jīng)開(kāi)始準(zhǔn)備廣泛應(yīng)用了见间。 彈性盒子提供了工具米诉,允許快...
    codeTao閱讀 857評(píng)論 0 0
  • 彈性布局(flexble box)模塊指在提供一個(gè)更加有效的方式來(lái)布置拴泌,對(duì)齊和分部在容器之間的各項(xiàng)內(nèi)容,即使它們的...
    土豆蘿卜君閱讀 1,153評(píng)論 2 5
  • Flexbox叫彈性盒模型,它的使用場(chǎng)景主要是屏幕自適應(yīng)布局和取代浮動(dòng)布局家制。 細(xì)節(jié)性的知識(shí)需要大量實(shí)踐泡一,系統(tǒng)性的知...
    Gundy_閱讀 182評(píng)論 0 1