CSS 盒模型 vs Flex 布局

CSS 盒模型是網(wǎng)頁(yè)設(shè)計(jì)的布局中經(jīng)常用到的模型,很好的了解模型對(duì)網(wǎng)頁(yè)的布局有非常大的幫助;CSS3 讓網(wǎng)頁(yè)能夠符合多種平臺(tái),讓網(wǎng)頁(yè)更加的彈性推出了 Flex 布局畸冲。

盒模型

盒模型一直在網(wǎng)頁(yè)設(shè)計(jì)中非常流行,現(xiàn)在的前端工程師對(duì)盒模型的了解程度越來(lái)越高观腊,我們?cè)谥匦禄仡櫼幌潞心P偷木瑁?/p>

//CSS
.box {
    height: 100px;
    width: 100px;
    margin: 20px;
    padding: 10px;
    border: 1px solid #000;
    background-color: #ccc;
}
box-model.jpg

當(dāng)然不同的 display 屬性下的盒模型是不一樣的邑闲,上圖為display:block情況下的盒模型,當(dāng)在display:inline梧油、display:table-cell等情況下需要另外考慮苫耸。

flex

CSS3 新增了display:flex,它使得網(wǎng)頁(yè)更加彈性適合各種不同的屏幕儡陨,它的思想是讓容器有能力讓其子項(xiàng)目能夠改變其寬度褪子、高度甚至是順序,以最佳的方式填充可用空間骗村,當(dāng)然這種不可預(yù)知的布局會(huì)讓頁(yè)面缺乏靈活性嫌褪。

概念

設(shè)置了display:flex的元素稱為彈性容器,它的所有子元素將稱為flex item(彈性項(xiàng)目)胚股。注意:設(shè)置了 flex 布局以后渔扎,子元素的floatclearvertical-align屬性將失敗信轿。

flex-base.png
  • main axis:水平軸主軸
  • cross axis:垂直交叉軸
  • main start:主軸的開始位置
  • main end:主軸的結(jié)束位置
  • cross start:交叉軸的開始位置
  • cross end:交叉軸的結(jié)束位置
  • main size:?jiǎn)蝹€(gè)彈性項(xiàng)目占據(jù)的主軸
  • cross size:?jiǎn)蝹€(gè)彈性項(xiàng)目占據(jù)的交叉軸

容器的屬性

  • 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;
}
flex-direction.png

flex-wrap

它來(lái)設(shè)置項(xiàng)目如何換行,默認(rèn)情況下項(xiàng)目都在一條軸線上

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

flex-flow

它是flex-directionflex-wrap的簡(jiǎn)寫财忽,默認(rèn)值為:row nowrap

.box {
  flex-flow: <flex-direction> || <flex-wrap>;
}

justify-content

它來(lái)設(shè)置項(xiàng)目在主軸上的對(duì)齊方式

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

align-items

它來(lái)設(shè)置項(xiàng)目在交叉軸上的對(duì)齊方式

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

align-content

它定義了多根軸線的對(duì)齊方式倘核。如果項(xiàng)目只有一根軸線,該屬性不起作用即彪。

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

彈性項(xiàng)目的屬性

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self

order

它是用來(lái)定義項(xiàng)目的排列順序紧唱,數(shù)字越小,排列靠前隶校,默認(rèn)為0漏益。

.item {
  order: 1;
}
order.png

flex-grow

這個(gè)屬性是用來(lái)設(shè)置項(xiàng)目的放大比例,默認(rèn)為0深胳,即如果存在剩余空間也不放大绰疤;如果說(shuō)有的項(xiàng)目的flex-grow屬性都為1,那么它們會(huì)均分剩余的空間舞终,如果一個(gè)項(xiàng)目的flex-grow屬性為2轻庆,其他項(xiàng)目都為1,則為2的占據(jù)的剩余空間將比其他項(xiàng)多一倍敛劝。

.item {
  flex-grow: 1;
}
flex-grow.png

flex-shrink

這個(gè)屬性是用來(lái)設(shè)置項(xiàng)目的縮小比例余爆,默認(rèn)1,如果空間不足夸盟,則該項(xiàng)目縮卸攴健;如果一個(gè)項(xiàng)目的flex-shrink的屬性為0上陕,其它為1桩砰,則空間不足時(shí),前者不縮小唆垃。

.item {
  flex-shrink: 1;
}
flex-shrink.png

flex-basis

這個(gè)屬性定義了在分配多余空間前五芝,項(xiàng)目占據(jù)的主軸空間,它的默認(rèn)值為auto辕万,即項(xiàng)目本來(lái)的大小枢步。

.item {
  flex-basis: 200px;
}

flex

它是屬性flex-growflex-shrinkflex-basis的簡(jiǎn)寫渐尿,默認(rèn)值為0 1 auto醉途,后兩個(gè)屬性為可選項(xiàng)。

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

align-self

它是用來(lái)設(shè)置單個(gè)項(xiàng)目的在交叉軸上的對(duì)齊方式砖茸,它會(huì)覆蓋align-items屬性的值隘擎,默認(rèn)值為auto,即繼承了父級(jí)元素的align-items屬性凉夯。

.item {
  align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
align-self.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末货葬,一起剝皮案震驚了整個(gè)濱河市采幌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌震桶,老刑警劉巖休傍,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蹲姐,居然都是意外死亡磨取,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門柴墩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)忙厌,“玉大人,你說(shuō)我怎么就攤上這事江咳》昃唬” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵扎阶,是天一觀的道長(zhǎng)汹胃。 經(jīng)常有香客問我,道長(zhǎng)东臀,這世上最難降的妖魔是什么着饥? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮惰赋,結(jié)果婚禮上宰掉,老公的妹妹穿的比我還像新娘。我一直安慰自己赁濒,他們只是感情好轨奄,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拒炎,像睡著了一般挪拟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上击你,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天玉组,我揣著相機(jī)與錄音,去河邊找鬼丁侄。 笑死惯雳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鸿摇。 我是一名探鬼主播石景,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了潮孽?” 一聲冷哼從身側(cè)響起揪荣,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎往史,沒想到半個(gè)月后变逃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡怠堪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了名眉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粟矿。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖损拢,靈堂內(nèi)的尸體忽然破棺而出陌粹,到底是詐尸還是另有隱情,我是刑警寧澤福压,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布掏秩,位于F島的核電站,受9級(jí)特大地震影響荆姆,放射性物質(zhì)發(fā)生泄漏蒙幻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一胆筒、第九天 我趴在偏房一處隱蔽的房頂上張望邮破。 院中可真熱鬧,春花似錦仆救、人聲如沸抒和。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)摧莽。三九已至,卻和暖如春顿痪,著一層夾襖步出監(jiān)牢的瞬間镊辕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工员魏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丑蛤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓撕阎,卻偏偏與公主長(zhǎng)得像受裹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

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