CSS_recall_BFC

;(

? ? ? 如果有幸淫半,被別人看到了,發(fā)現(xiàn)有誤的地方科吭,還請批評指正!

)(自己回憶对人,給自己看);

先說說什么是 BFC牺弄。

先來看看官方一點的解釋

Block Formatting Context 塊級格式化上下文。通俗的說也就是一個獨立的塊級渲染區(qū)域猖闪,該區(qū)域有一套自己的的渲染機制來約束塊級盒子的布局,并且與該區(qū)域外面的其他區(qū)域布局無關(guān)培慌。(沒錯,當(dāng)我第一眼看到別人這么說這么寫的時候吵护,我也是一臉懵逼,似懂非懂馅而。)

我自己的理解

如上所說,創(chuàng)建了BFC的元素瓮恭,就是一個獨立的盒子,這個獨立的區(qū)域內(nèi)的盒子怎么布局屯蹦,是不會影響區(qū)域以外的部分,反過來也一樣登澜,外面的元素布局,不會影響這個獨立區(qū)域內(nèi)部的元素布局脑蠕。并且,這個獨立的區(qū)域跪削,依然屬于文檔中的普通文檔流迂求。打個比方(我也不知道恰不恰當(dāng))晃跺,大的文檔流就是一個國家,由國家的法律法規(guī)約束哼审,我們的家庭是在國家內(nèi)的一個小家孕豹,我們家里有自己的一套規(guī)則。在不違反法律法規(guī)的原則下励背,我們想干什么,想吃什么對國家不會有影響叶眉。反過來,也一樣衅疙。

BFC的特性

01,BFC會阻止外邊距疊加:一般情況饱溢,兩個相鄰的塊級框,它們之間的垂直方向的外邊距會發(fā)生疊加绩郎。 如果這兩個相鄰的塊框不屬于同一個BFC就不會疊加!

02肋杖,BFC不會重疊浮動的元素:一個BFC的邊框不能和它里面的元素的margin重疊。也就是說瀏覽器將會給BFC創(chuàng)建隱式的外邊距來阻止它和浮動元素的外邊距的疊加状植。當(dāng)給一個挨著浮動的BFC添加負得外邊距不會起作用!=蚧!

BFC的觸發(fā)條件

01洼畅,float除了none以外的值

02,display:inline-block帝簇、table-cell靠益、table-caption

03,overflow:hidden

04胧后,position:absolute,fixed

說了BFC壳快,隨之而來的就是清除浮動

我的理解是,清除浮動眶痰,實際上是清除浮動所帶來的影響。

清除浮動的原理竖伯,清除浮動的原理其實就是讓浮動這塊的元素形成BFC,就上面的例子七婴,如果有辦法讓父元素包住子元素,那么這個區(qū)域就是BFC了打厘,就好進行布局管理了,而這個方法就是清除浮動婚惫。

清除浮動的方法大致有這么幾種

1),添加額外的標(biāo)簽(原理是觸發(fā)BFC):此方法的哲學(xué)是在某個區(qū)域內(nèi)先舷,浮動元素脫離了文檔流,在浮動元素下面添加一個div標(biāo)簽蒋川,設(shè)置clear:both屬性互躬。此方法,通俗易懂班巩,容易掌握氮兵。但是,頁面中此方法用得多了歹鱼,就會出現(xiàn)很多無意義的空標(biāo)簽,這也違背了結(jié)構(gòu)與表現(xiàn)分離的原則,而且后期維護肯定是噩夢般的存在掺涛。所以是堅決不推薦的。

2)薪缆,這是一個傻瓜式的本辦法,就是給父元素也設(shè)置浮動拣帽,但是雖然不存在語義化的問題,但又使得父元素與之相鄰的元素的布局受到影響减拭,如果在一直往上設(shè)置浮動,恐怕一直設(shè)置到body這也不顯示。所以肯定也是堅決不推薦的茫虽。

3),給父元素設(shè)置overflow:hidden(原理是觸發(fā)BFC):此方法不存在語義化的問題濒析,代碼量極少。但是需要注意一個問題号杏,就是內(nèi)容增多的時候不會自動換行導(dǎo)致溢出的內(nèi)容被隱藏掉。

4)盾致,給父元素設(shè)置display:table(原理是觸發(fā)BFC):此方法會改變設(shè)置改屬性的盒子的盒模型。比如:父盒子沒有寬度庭惜,沒有高度,塊級元素默認占滿一行护赊,設(shè)置此屬性過后,默認寬度會發(fā)生改變骏啰。

5)节吮,使用偽元素(注意不是偽類):.clearfix:after{content:".";display:block;height:0;visibility:hidden;clear:both;}.clearfix{*zoom:1;}只需注意謹慎使用透绩,如使用不當(dāng)會造成代碼量增加。

此方法 的原理:

1) display:block 使生成的元素以塊級元素顯示,占滿剩余空間;

2) height:0 避免生成內(nèi)容破壞原有布局的高度渺贤。

3) visibility:hidden 使生成的內(nèi)容不可見,并允許可能被生成內(nèi)容蓋住的內(nèi)容可以進行點擊和交互;

4)通過 content:”.”生成內(nèi)容作為最后一個元素志鞍,至于content里面是點還是其他都是可以的,有些版本可能content 里面內(nèi)容為空,不推薦這樣做的,firefox直到7.0 content:”” 仍然會產(chǎn)生額外的空隙固棚;(bug!此洲!)

5)zoom:1 觸發(fā)IE hasLayout。(IE6呜师,7不支持偽元素故添加此屬性閉合浮動)


順便說一下解決父盒子高度塌陷的問題

如上面所說道的方法就可以用,比如給父盒子添加overflow:hidden汁汗,display:table,偽類清除浮動知牌。還有就是添加空元素(所謂的隔墻法)祈争,當(dāng)然還有一種菩混,就是給父盒子設(shè)置高度。用哪一種沮峡,見仁見智。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末帖烘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子秘症,更是在濱河造成了極大的恐慌,老刑警劉巖乡摹,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異聪廉,居然都是意外死亡瞬痘,警方通過查閱死者的電腦和手機板熊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來津辩,“玉大人,你說我怎么就攤上這事喘沿。” “怎么了竭贩?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長窄赋。 經(jīng)常有香客問我,道長忆绰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任较木,我火速辦了婚禮红符,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘预侯。我一直安慰自己,他們只是感情好萎馅,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著糜芳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪峭竣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天皆撩,我揣著相機與錄音哲银,去河邊找鬼。 笑死荆责,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的做院。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼山憨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了弥喉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤由境,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后虏杰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡纺阔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了笛钝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡结榄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出囤捻,到底是詐尸還是另有隱情,我是刑警寧澤蝎土,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站誊涯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏醋拧。R本人自食惡果不足惜慷嗜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望薇溃。 院中可真熱鬧,春花似錦缭乘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奴紧。三九已至,卻和暖如春黍氮,著一層夾襖步出監(jiān)牢的瞬間唐含,已是汗流浹背沫浆。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留专执,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓本股,卻偏偏與公主長得像,于是被迫代替她去往敵國和親痊末。 傳聞我的和親對象是個殘疾皇子哩掺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J的外補...
    _Yfling閱讀 13,759評論 1 92
  • 一嚼吞,浮動元素有什么特征?對父容器舱禽、其他浮動元素炒刁、普通元素誊稚、文字分別有什么影響? 浮動模型是一種可視化格式模型罗心,浮動...
    DeeJay_Y閱讀 877評論 0 4
  • relative:生成相對定位的元素,通過top,bottom,left,right的位置相對于其正常位置進行定位...
    zx9426閱讀 946評論 0 2
  • 1.CSS基本概念 1.1 CSS的定義 CSS(Cascading Style Sheets)層疊樣式表渤闷,主要用...
    寥寥十一閱讀 1,839評論 0 6
  • 一個幾百年村莊 流傳著傳統(tǒng)的思想 村莊并非富裕 卻流露出令人驚嘆的氣息 村莊的座落 圍繞著一條將要干涸的溪邊 幾百...
    雁楠秋閱讀 223評論 4 1