BFC

BFC:block fomating context

我總有種感覺自己在簡書上總結過這個,最近我老大讓我在他們那些技術大牛面前做技術分享精偿,自己耍了個滑弧圆,覺得大家js都是大牛級別的,我就講講CSS笔咽。搔预。
BFC是一個很神奇又很有用的利器,但是大多數前端工程師基本上不會花太多時間去研究叶组,只需要知道我們可以利用BFC來清除浮動拯田,利用BFC來防止margin重疊。其實做業(yè)務時甩十,這樣就真的夠了船庇。
但是,多知道點侣监,沒壞處鸭轮。


在理解BFC之前你需要確定自己知不知道包含塊的概念,這篇筆記只能假裝你知道啦橄霉。

  • BFC
    block:塊級元素窃爷,大家都知道,默認不加修飾的情況下塊級元素并不會被收縮包裹其內容,其寬會充斥父元素按厘,高度由自身內容撐開医吊。每個塊級元素即使設置了寬度,不占滿父元素也會自己占據一行逮京,不讓其后元素與自己并行卿堂。
    fomating context:格式化上下文,擁有一套渲染規(guī)則懒棉。對內來約束其內塊級元素的布局草描,對外來控制和外部元素的布局。
    誤解:需要說明:觸發(fā)BFC后并不是使得非塊級元素像塊級元素一樣布局漓藕,但是確實會給觸發(fā)BFC區(qū)域的元素帶來有這樣的副作用陶珠,而是為觸發(fā)BFC的元素制定一套規(guī)則約束其內塊級盒子布局與對外部元素布局的影響挟裂。并不是改變自己的display模式享钞。

  • BFC規(guī)則

  • [A] 內部的塊級Box會在垂直方向,一個接一個地放置诀蓉。

  • [B] 每個元素的margin box的左邊栗竖, 與包含塊的左邊(參考包含塊)相接觸(不重合)(對于從左往右的格式化,否則相反)渠啤。即使存在浮動也是如此狐肢。

  • [C] Box垂直方向的距離由margin決定。屬于同一個BFC的兩個相鄰Box的margin會發(fā)生重疊

  • [D] BFC的區(qū)域不會與float box重疊沥曹。

  • [E] BFC就是頁面上的一個隔離的獨立容器份名,容器里面的子元素不會影響到外面的元素。反之也如此妓美。(這里面的不會影響僵腺,只在文檔流內是不會影響的,脫離文檔流后壶栋,當忽略)

  • [F] 計算BFC的高度時辰如,浮動元素也參與計算

AF為BFC的渲染規(guī)則,當某個DOM元素被觸發(fā)BFC后贵试,會使該元素擁有AF的這些渲染規(guī)則琉兜。

  • 觸發(fā)BFC的條件
  • 根元素
    根元素這個,很好理解毙玻。
    html文檔建立豌蟋,就會觸發(fā)根元素的BFC,我們在根元素內寫幾個div元素桑滩,會發(fā)現內部div垂直排列梧疲,本身沒有兄弟元素,自然滿足B、D往声、E擂找、F這幾條規(guī)則,內部塊級盒子來自同一個BFC(html)浩销,所以相鄰margin會重疊贯涎,行內盒子橫向就不會重疊。
  • float屬性不為none
    當一個元素被設置為float:left or right,會觸發(fā)這個元素慢洋,生成BFC區(qū)域塘雳,使他不僅擁有BFC的渲染規(guī)則,而且會給自身帶來副作用普筹,display:block,但是這個元素不會像行內元素通過設置display:block變?yōu)閴K級元素那樣败明,寬度充滿其父元素,而是表現的更像行內塊級元素,只會使得行內元素不會收縮包裹其內容.
  • position為absolute或fixed
    這個觸發(fā)器觸發(fā)生成BFC后太防,margin重不重疊這個對于他都沒有效果妻顶,可能定位流和一般的文檔流浮動流不屬于一個吧,蜒车,所以自然會與浮動元素重疊讳嘱。
  • display為inline-block, table-cell
    基本上每一條渲染規(guī)則都滿足
  • overflow不為visible
    這個對于來自不同BFC margin不會重疊這一條來說,不滿足酿愧,其他都能滿足
    overflow:hidden通常是對父元素定義比較有效的沥潭。

另外一個很神奇的地方就是父子元素的margin也會發(fā)生重疊。
這時候只要觸發(fā)一方的bfc就可以解決父子元素margin重疊這個問題嬉挡,overflow:hidden還是針對父元素比較有效钝鸽。
,還有一個對父元素進行border的設置也可以解決父子元素margin重疊的問題庞钢。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末拔恰,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子焊夸,更是在濱河造成了極大的恐慌仁连,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阱穗,死亡現場離奇詭異饭冬,居然都是意外死亡,警方通過查閱死者的電腦和手機揪阶,發(fā)現死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門昌抠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鲁僚,你說我怎么就攤上這事炊苫〔锰” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵侨艾,是天一觀的道長执虹。 經常有香客問我,道長唠梨,這世上最難降的妖魔是什么袋励? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮当叭,結果婚禮上茬故,老公的妹妹穿的比我還像新娘。我一直安慰自己蚁鳖,他們只是感情好磺芭,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著醉箕,像睡著了一般钾腺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上琅攘,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天垮庐,我揣著相機與錄音松邪,去河邊找鬼坞琴。 笑死,一個胖子當著我的面吹牛逗抑,可吹牛的內容都是我干的剧辐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼邮府,長吁一口氣:“原來是場噩夢啊……” “哼荧关!你這毒婦竟也來了?” 一聲冷哼從身側響起褂傀,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤忍啤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后仙辟,有當地人在樹林里發(fā)現了一具尸體同波,經...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年叠国,在試婚紗的時候發(fā)現自己被綠了未檩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡粟焊,死狀恐怖冤狡,靈堂內的尸體忽然破棺而出孙蒙,到底是詐尸還是另有隱情,我是刑警寧澤悲雳,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布挎峦,位于F島的核電站,受9級特大地震影響合瓢,放射性物質發(fā)生泄漏浑测。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一歪玲、第九天 我趴在偏房一處隱蔽的房頂上張望迁央。 院中可真熱鬧,春花似錦滥崩、人聲如沸岖圈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜂科。三九已至,卻和暖如春短条,著一層夾襖步出監(jiān)牢的瞬間导匣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工茸时, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留贡定,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓可都,卻偏偏與公主長得像缓待,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子渠牲,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案旋炒? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,753評論 1 92
  • relative:生成相對定位的元素,通過top,bottom,left,right的位置相對于其正常位置進行定位...
    zx9426閱讀 943評論 0 2
  • 一签杈、BFC是什么瘫镇? 它是 Block Formatting Context (塊級格式化上下文) 的簡稱,接下來通...
    07120665a058閱讀 3,805評論 15 40
  • 先前在學習CSS float時答姥,有同學提到了BFC這個詞铣除,作為求知好問的好學生,哪里不懂查哪里踢涌,那么今天就來研究一...
    這名字真不對閱讀 6,560評論 3 19
  • 文章版權歸饑人谷_Lyndon以及饑人谷所有睁壁。 1. 浮動元素有什么特征背苦?對父容器互捌、其他浮動元素、普通元素行剂、文字分...
    HungerLyndon閱讀 2,381評論 4 10