CSS-BFC

????block formatting context塊級(jí)格式化上下文
????bfc是一個(gè)獨(dú)立的渲染區(qū)域聘裁,只有block-level box參與眠蚂,它規(guī)定了內(nèi)部的block-level box如何布局肛冶,并且與這個(gè)區(qū)域外部毫不相干嫩絮。
????BFC就是頁面上的一個(gè)隔離的獨(dú)立容器迷雪,容器里面的子元素不會(huì)影響到外面的元素碘勉,反之也如此,包括浮動(dòng)和外邊距合并等等奇瘦,有了這個(gè)特性我們布局的時(shí)候就不會(huì)出現(xiàn)意外情況了棘催。

哪些元素會(huì)產(chǎn)生bfc

display屬性為block、list-item耳标、table的元素醇坝,會(huì)產(chǎn)生bfc。(最常用的就是塊級(jí)元素)

什么情況下會(huì)觸發(fā)bfc

1. 設(shè)置了float屬性次坡,并且不為none
2. position屬性為absolute或fixed
3. display為inline-block呼猪、table-cell、table-caption砸琅、flex宋距、inline-flex
4. overflow屬性不為visible

bfc元素所具有的特性

1. 在bfc中,盒子從頂端開始垂直地一個(gè)接一個(gè)的排列症脂;
2. 盒子垂直方向的距離由margin決定谚赎,屬于同一個(gè)bfc的盒子的margin會(huì)重疊;
3. 在bfc中诱篷,每一個(gè)盒子的左邊緣會(huì)觸碰到父容器的左邊緣內(nèi)部壶唤,也就是說在沒有margin和padding時(shí),父border的內(nèi)邊和子border的外邊重疊棕所;
4. bfc的區(qū)域不會(huì)與浮動(dòng)盒子產(chǎn)生交集闸盔,而是緊貼浮動(dòng)邊緣;
5. 如果父盒子沒有設(shè)置高度琳省,但子盒子中有浮動(dòng)元素蕾殴,那么在計(jì)算bfc的高度時(shí), 會(huì)計(jì)算上浮動(dòng)盒子的高度岛啸。

bfc的主要用途

清除元素內(nèi)部浮動(dòng)

????只要把父元素設(shè)置為bfc就可以清除子元素的浮動(dòng),最常見的就是給父元素添加overflow:hidden屬性茴肥。
????啥意思呢坚踩,其實(shí)我有一段時(shí)間不是很明白“清除子元素浮動(dòng)”這句話,人家設(shè)置的好好的浮動(dòng)瓤狐,你干嘛給人家清除呢瞬铸,那不就是不生效了么?其實(shí)清除浮動(dòng)的意思不是清除你設(shè)置的元素的浮動(dòng)屬性础锐,而是清除設(shè)置了浮動(dòng)屬性之后給別的元素帶來的影響嗓节。舉個(gè)栗子:

<div class="father">
     <div class="son1"></div>
     <div class="son2"></div>
</div>
.father {
    width: 150px;
    border: 1px solid red;
}

.son1, .son2 {
    width: 50px;
    height: 50px;
    background-color: pink;
}

.son2 {
    background-color: purple;
}

正常情況下的樣子是上下塊撐開父元素的高度

image.png

當(dāng)給兩個(gè)子元素設(shè)置了float屬性之后,子元素不再占據(jù)父元素的空間皆警,此時(shí)父元素的高度就為0
image.png

當(dāng)設(shè)置父元素bfc后拦宣,此時(shí)就清除了子元素浮動(dòng)帶來的影響,什么影響呢,就是不撐開父元素的高度的影響鸵隧,那么父元素的高度就是子元素的高度
為父元素添加

overflow: hidden;
image.png

解決外邊距合并問題

????我們知道绸罗,兩個(gè)盒子在一起時(shí),當(dāng)有相鄰的外邊距時(shí)豆瘫,會(huì)取外邊距較大的那一個(gè)珊蟀,也就是外邊距會(huì)合并,但這種情況只發(fā)生在同屬一個(gè)bfc的兩個(gè)盒子中間外驱,換言之育灸,要想解決外邊距合并問題,只要把兩個(gè)盒子放在不同的bfc中即可昵宇。

制作右側(cè)盒子自適應(yīng)寬度的問題(左側(cè)盒子寬度固定磅崭,右側(cè)寬度不固定)

????當(dāng)在父元素中只設(shè)定一個(gè)盒子浮動(dòng),另一個(gè)不浮動(dòng)時(shí)趟薄,會(huì)造成第二個(gè)盒子在第一個(gè)盒子的下方绽诚,被覆蓋掉一部分(但文字不會(huì)被覆蓋)。

.father2 {
    width: 200px;
    border: 1px solid red;
}

.s1 {
    width: 50px;
    height: 50px;
    background-color: pink;
    float: left;
}

.s2 {
    background-color: purple;
    height: 100px;
}
image.png

給第2個(gè)元素設(shè)定bfc

.s2 {
    background-color: purple;
    height: 100px;
    overflow: auto;
    word-break: break-all;
}
image.png

當(dāng)增加第一個(gè)塊的寬度時(shí)杭煎,第二個(gè)塊的寬度會(huì)自動(dòng)縮小恩够,實(shí)現(xiàn)寬度自適應(yīng)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末羡铲,一起剝皮案震驚了整個(gè)濱河市蜂桶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌也切,老刑警劉巖扑媚,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異雷恃,居然都是意外死亡疆股,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門倒槐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旬痹,“玉大人,你說我怎么就攤上這事讨越×讲校” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵把跨,是天一觀的道長(zhǎng)人弓。 經(jīng)常有香客問我,道長(zhǎng)着逐,這世上最難降的妖魔是什么崔赌? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任意蛀,我火速辦了婚禮,結(jié)果婚禮上峰鄙,老公的妹妹穿的比我還像新娘浸间。我一直安慰自己,他們只是感情好吟榴,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布魁蒜。 她就那樣靜靜地躺著,像睡著了一般吩翻。 火紅的嫁衣襯著肌膚如雪兜看。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天狭瞎,我揣著相機(jī)與錄音细移,去河邊找鬼。 笑死熊锭,一個(gè)胖子當(dāng)著我的面吹牛弧轧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播碗殷,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼精绎,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了锌妻?” 一聲冷哼從身側(cè)響起代乃,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仿粹,沒想到半個(gè)月后搁吓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吭历,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年堕仔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晌区。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡摩骨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出契讲,到底是詐尸還是另有隱情,我是刑警寧澤滑频,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布捡偏,位于F島的核電站,受9級(jí)特大地震影響峡迷,放射性物質(zhì)發(fā)生泄漏银伟。R本人自食惡果不足惜你虹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望彤避。 院中可真熱鬧傅物,春花似錦、人聲如沸琉预。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽圆米。三九已至卒暂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間娄帖,已是汗流浹背也祠。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留近速,地道東北人诈嘿。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像削葱,于是被迫代替她去往敵國(guó)和親奖亚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案佩耳? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,761評(píng)論 1 92
  • relative:生成相對(duì)定位的元素遂蛀,通過top,bottom,left,right的位置相對(duì)于其正常位置進(jìn)行定位...
    zx9426閱讀 947評(píng)論 0 2
  • 一,浮動(dòng)元素有什么特征干厚?對(duì)父容器李滴、其他浮動(dòng)元素、普通元素蛮瞄、文字分別有什么影響? 浮動(dòng)模型是一種可視化格式模型所坯,浮動(dòng)...
    DeeJay_Y閱讀 878評(píng)論 0 4
  • 1.浮動(dòng)元素有什么特征?對(duì)父容器挂捅、其他浮動(dòng)元素芹助、普通元素、文字分別有什么影響? 任何定義為float的元素闲先,都可以...
    QQQQQCY閱讀 263評(píng)論 0 0
  • 一、在什么場(chǎng)景下會(huì)出現(xiàn)外邊距合并训桶?如何合并累驮?如何不讓相鄰元素外邊距合并酣倾?給個(gè)父子外邊距合并的范例 在CSS當(dāng)中,相...
    dengpan閱讀 580評(píng)論 0 0