Flexbox(彈性盒布局模型)以及適用場景?

大家好,我是IT修真院鄭州分院第六期的學員王棟征峦,一枚正直、純潔消请、善良的前端程序員栏笆。

今天給大家分享一下,修真院官網CSS(職業(yè))任務5臊泰,深度思考中的知識點——Flexbox(彈性盒布局模型)以及適用場景蛉加?


Flexbox(彈性盒布局模型)以及適用場景_騰訊視頻

1.背景介紹

常用的web布局有哪些?

1.靜態(tài)布局

2.彈性布局

3.流式布局

4.自適應布局

5.響應式布局

flex布局是什么缸逃?

2009年针饥,W3C提出了一種新的布局方案----Flex 布局,可以簡便需频、完整丁眼、響應式地實現(xiàn)各種頁面布局。 目前贺辰,它已經得到了所有瀏覽器的支持户盯,這意味著婴削,現(xiàn)在就能很安全地使用這項功能涧偷。

一,怎么運用flex布局

flex布局非常靈活刷后,任一容器都可以指定為flex布局吃靠。塊狀只需要display屬性規(guī)定為flex即可硫眨。 行內元素也可以指定為flex布局,將display屬性設置為inline-flex巢块。 還有WebKit內核的瀏覽器需要加上-webkit前綴礁阁。 需要注意的是設置成為flex布局之后巧号,子元素的float,clear姥闭,vertical-align就會失效丹鸿。

二,基本概念

采用flex布局的元素就被稱為flex容器(flex contain)棚品,它的所有子元素稱為flex項目(flex item)靠欢。 容器默認存在兩根軸線,一根主軸(main axis)一根交叉軸(cross axis)铜跑。 項目默認沿主軸排列门怪,單個項目占據(jù)的主軸空間叫main size,占據(jù)的交叉軸空間叫cross size.


flex-box(容器)和flex-item(項目)各自都有不同的屬性锅纺。通過對它們進行不同的設置來對整體布局進行調整以達到想要的效果掷空。

flex-box容器的主要屬性有:

1.flex-direction 決定項目在主軸的排列方向。

2.flex-wrap 決定如果一條軸線排不下了囤锉,該如何換行坦弟。

3.flex-row 是flex-direction和wrap的簡寫形式,默認row nowrap嚼锄。

4.justify-content 決定項目在主軸方向上如何對齊减拭。

5.align-items 決定項目在交叉軸上如何對齊。

6.align-content 定義多根軸線如何對齊区丑。

flex-direction

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

1.flex-direction: row;表示默認值,主軸在水平方向沧侥,從左到右可霎。

2.flex-direction: row-reverse;主軸在水平方向,從右到左宴杀。

3.flex-direction: column;主軸在垂直方向上癣朗,從上到下。 這樣的話就會將原本在x軸從左向右排列的項目更改為從上到下排列旺罢。

4.flex-direction: column-reverse; 主軸在垂直方向上旷余,同樣的,反轉一下扁达,是從下到上正卧。

flex-wrap

默認情況下,項目都排在一條線(又稱"軸線")上跪解。flex-wrap屬性定義炉旷,如果一條軸線排不下,如何換行。

1.flex-wrap: nowrap;也是這個屬性的默認值窘行,表示不換行饥追,項目等比例縮小(如果沒規(guī)定flex-shrink為0的情況下)罐盔。

2.flex-wrap: wrap;表示換行但绕,且第一行在上方。

3.flex-wrap: wrap-reverse;這個時候翘骂,也會換行壁熄,但是第一行就要跑到下方去了,畢竟reverse.

flex-flow

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

flex-flow: flex-direction || flex-wrap;

justify-content

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

1.flex-start: 也是這個屬性的默認值莹桅,表示主軸起點對齊。

2.flex-end: 主軸終點對齊

3.center: 居中

4.space-between: 兩端對齊烛亦,項目之間的間隔都相等诈泼。

5.space-around: 每個項目兩側的間隔相等。所以煤禽,項目之間的間隔比項目與邊框的間隔大一倍铐达。

align-items

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

1.flex-start: 也是這個屬性的默認值檬果,表示交叉軸起點對齊瓮孙。

2.flex-end: 交叉軸終點對齊

3.center: 居中

4.stretch(默認值): 如果項目未設置高度或設為auto,將占滿整個容器的高度选脊。

5.baseline: 項目的第一行文字的基線對齊杭抠。

align-content

align-content屬性定義了多根軸線的對齊方式。如果項目只有一根軸線恳啥,該屬性不起作用偏灿。

1.flex-start: 與交叉軸的起點對齊。钝的。

2.flex-end: 交叉軸終點對齊

3.center: 與交叉軸的中點對齊翁垂。

4.space-between: 與交叉軸兩端對齊,軸線之間的間隔平均分布硝桩。

5.space-around: 項目的第一行文字的基線對齊沿猜。

6.stretch(默認值): 軸線占滿整個交叉軸。

四. flex-item項目屬性flex項目的屬性也有6個亿柑。項目的屬性有:

1.order 決定項目的排列順序邢疙,數(shù)值越小,排列越靠前。

2.flex-grow 決定項目的放大比例疟游,默認值是0呼畸,也就是存在剩余空間,不放大颁虐。

3.flex-shrink 是也就是決定項目的縮小比例蛮原,默認是1,表示剩余空間不足時另绩,等比縮小儒陨,如果需要不變,可以設置為0笋籽。

4.flex-basis 定義了在分配多余項目之前蹦漠,項目占據(jù)的主軸空間。瀏覽器根據(jù)這個屬性车海,計算主軸是否有多余空間笛园。它的默認值為auto,即項目的本來大小侍芝。它可以設為跟width或height屬性一樣的值(比如350px)研铆,則項目將占據(jù)固定空間。

5.flex 是以上三個的簡寫州叠,默認0 1 auto棵红,也就是不放大,不縮小咧栗,占據(jù)項目本來大小的主軸空間逆甜。該屬性有兩個快捷值: auto (1 1 auto) 和 none (0 0 auto),這里也不過多贅述楼熄。

6.align-self屬性 默認auto忆绰,繼承flex容器,也就是父元素的align-items屬性可岂,項目和algn-items一樣错敢,只是決定單個item對交叉軸的對齊方式。

3.常見問題

display:flex可以復合使用嗎缕粹?

4.解決方案

可以的稚茅,一個元素可以是一個display的子元素同時也是另外一個display的父元素。

5.編碼實戰(zhàn)

用flex布局平斩,完成簡單的網格系統(tǒng)







這個是用flex做一個簡單的網格亚享,還有一個靈活應用flex布局,完成骰子的效果绘面,大家可以自己嘗試一下欺税。

6.擴展思考

flex布局的常用場景

垂直居中侈沪,處于中心,以及左中右三塊布局

7.參考文獻

flexFlex 布局教程: 語法篇--阮一峰的個人博客

flexFlex 布局教程: 實例篇--阮一峰的個人博客

8.更多討論

flex布局和bootstrap網格布局各有什么優(yōu)缺點晚凿?

bootstrap優(yōu)缺點:

1.bootstap最近發(fā)布了bootstrap4亭罪,擁有了box-flex布局等更新,緊跟最新的web技術的發(fā)展

2.比較成熟歼秽,在大量的項目中充分的使用和測試

3.擁有完善的文檔应役,使用起來更方便

4.有大量的組件樣式,接受定制

缺點:

1.如果有自己特殊的需求燥筷,就需要重新定制樣式箩祥,如果一個網站中有大量的非bootstrap“風格”的樣式存在,那么你就需要做大量的css重寫肆氓,因此也就失去了使用框架的意義袍祖。

2.會有兼容問題,雖然網上存在很多兼容IE的辦法做院,但需要引入其他文件盲泛,有些還不小,勢必導致加載速度變慢键耕,影響用戶體驗。

flex布局的優(yōu)點:很靈活柑营,方便易用屈雄。

缺點:對大型項目的支持不如bootstrap好,手機上兼容性有一定問題官套。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末酒奶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子奶赔,更是在濱河造成了極大的恐慌惋嚎,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件站刑,死亡現(xiàn)場離奇詭異另伍,居然都是意外死亡,警方通過查閱死者的電腦和手機绞旅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門摆尝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人因悲,你說我怎么就攤上這事堕汞。” “怎么了晃琳?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵讯检,是天一觀的道長琐鲁。 經常有香客問我,道長人灼,這世上最難降的妖魔是什么围段? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮挡毅,結果婚禮上蒜撮,老公的妹妹穿的比我還像新娘。我一直安慰自己跪呈,他們只是感情好段磨,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耗绿,像睡著了一般苹支。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上误阻,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天债蜜,我揣著相機與錄音,去河邊找鬼究反。 笑死寻定,一個胖子當著我的面吹牛,可吹牛的內容都是我干的精耐。 我是一名探鬼主播狼速,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼卦停!你這毒婦竟也來了向胡?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤惊完,失蹤者是張志新(化名)和其女友劉穎僵芹,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體小槐,經...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡拇派,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了本股。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攀痊。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拄显,靈堂內的尸體忽然破棺而出苟径,到底是詐尸還是另有隱情,我是刑警寧澤躬审,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布棘街,位于F島的核電站蟆盐,受9級特大地震影響,放射性物質發(fā)生泄漏遭殉。R本人自食惡果不足惜石挂,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望险污。 院中可真熱鬧痹愚,春花似錦、人聲如沸蛔糯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚁飒。三九已至动壤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間淮逻,已是汗流浹背琼懊。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留爬早,地道東北人哼丈。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像筛严,于是被迫代替她去往敵國和親削祈。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內容