邊距合并和BFC

首先明確邊距合并是個(gè)什么問題讲弄。
舉例說明:


什么叫邊距合并

總結(jié)邊距合并的三種情況(上圖都已經(jīng)有體現(xiàn)了):

  • 當(dāng)子元素和父元素垂直之間沒有padding、沒有border也沒有內(nèi)容時(shí)就會發(fā)生外邊距合并蚓让,總體外邊距變?yōu)閮蓚€(gè)外邊距中的較大者
  • 相鄰兄弟元素的垂直上下之間也會出現(xiàn)外邊距合并鹿寻;
  • 一個(gè)元素內(nèi)部沒有內(nèi)容娱挨、沒有border、也沒有padding會發(fā)生外邊距合并醉途;

題外話:為什么發(fā)生邊距合并矾瑰?

首先要明白html最初設(shè)計(jì)目的是和一個(gè)文本文檔一樣,默認(rèn)也是大家在里面寫文章放圖片隘擎,那么自然要換行殴穴,所以這個(gè)margin就是控制行間距的。自然很多情況下要智能地邊距合并才能符合使用者的本意货葬。所以不要怪罪瀏覽器的解析方式采幌。

不感興趣的就只看這句話:邊距合并是個(gè)排版問題。

好了震桶,重點(diǎn)是怎么解決邊距合并問題休傍。
比較通用的方法是使用BFC。解釋一下BFC是啥:
BFC是塊級元素自身形成獨(dú)立的上下文排版的方式尼夺,形成BFC后外部floating尊残、clear這些排版就失效了,BFC內(nèi)部自己形成一個(gè)內(nèi)部空間
形成BFC的方式淤堵,為了防止誤解直接給出MDN上的原文:

A block formatting context is created by one of the following:

  1. the root element or something that contains it
  2. floats (elements where float is not none)
  3. absolutely positioned elements (elements where position is absolute or fixed)
  4. inline-blocks (elements with display: inline-block)
  5. table cells (elements with display: table-cell, which is the default for HTML table cells)
  6. table captions (elements with display: table-caption, which is the default for HTML table captions)
  7. elements where overflow has a value other than visible
  8. flex boxes (elements with display: flex or inline-flex)

言歸正傳,我們解決邊距合并問題不是用上面隨便一條形成bfc就可以的顷扩。比如第1條拐邪,稍微思考一下就知道和解決我們的問題沒關(guān)系“兀靠譜的是我們利用overflow設(shè)置一個(gè)屬性(當(dāng)然不能設(shè)置visiable上面已經(jīng)說了)扎阶。
要說明三個(gè)重要問題:

  • 是父元素形成BFC才起作用,BFC外部和內(nèi)部的排版時(shí)隔絕的婶芭,也就是我們要解決的排版問題
  • BFC不是專門用來解決邊距合并的东臀,自然會有副作用,還要自己思考最佳解決方案
  • 有的時(shí)候想一下到底是要margin還是padding
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末犀农,一起剝皮案震驚了整個(gè)濱河市惰赋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌呵哨,老刑警劉巖赁濒,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異孟害,居然都是意外死亡拒炎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進(jìn)店門挨务,熙熙樓的掌柜王于貴愁眉苦臉地迎上來击你,“玉大人玉组,你說我怎么就攤上這事《≈叮” “怎么了球切?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绒障。 經(jīng)常有香客問我吨凑,道長,這世上最難降的妖魔是什么户辱? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任鸵钝,我火速辦了婚禮,結(jié)果婚禮上庐镐,老公的妹妹穿的比我還像新娘恩商。我一直安慰自己,他們只是感情好必逆,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布怠堪。 她就那樣靜靜地躺著,像睡著了一般名眉。 火紅的嫁衣襯著肌膚如雪粟矿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天损拢,我揣著相機(jī)與錄音陌粹,去河邊找鬼埠通。 笑死具篇,一個(gè)胖子當(dāng)著我的面吹牛坷檩,可吹牛的內(nèi)容都是我干的醒串。 我是一名探鬼主播个盆,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼攻询,長吁一口氣:“原來是場噩夢啊……” “哼漓雅!你這毒婦竟也來了衣迷?” 一聲冷哼從身側(cè)響起胆筒,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤邮破,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后腐泻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體决乎,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年派桩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了构诚。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,926評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铆惑,死狀恐怖范嘱,靈堂內(nèi)的尸體忽然破棺而出送膳,到底是詐尸還是另有隱情,我是刑警寧澤丑蛤,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布叠聋,位于F島的核電站,受9級特大地震影響受裹,放射性物質(zhì)發(fā)生泄漏碌补。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一棉饶、第九天 我趴在偏房一處隱蔽的房頂上張望厦章。 院中可真熱鬧,春花似錦照藻、人聲如沸袜啃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽群发。三九已至,卻和暖如春发乔,著一層夾襖步出監(jiān)牢的瞬間熟妓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工列疗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滑蚯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓抵栈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親坤次。 傳聞我的和親對象是個(gè)殘疾皇子古劲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,930評論 2 361

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,762評論 1 92
  • 一缰猴,浮動元素有什么特征产艾?對父容器、其他浮動元素滑绒、普通元素闷堡、文字分別有什么影響? 浮動模型是一種可視化格式模型,浮動...
    DeeJay_Y閱讀 882評論 0 4
  • 一踱阿、在什么場景下會出現(xiàn)外邊距合并管钳?如何合并?如何不讓相鄰元素外邊距合并软舌?給個(gè)父子外邊距合并的范例 1才漆、外邊距和并的...
    鴻鵠飛天閱讀 613評論 0 0
  • 1. 浮動元素有什么特征?對父容器佛点、其他浮動元素醇滥、普通元素、文字分別有什么影響? 浮動元素特征:使元素脫離文檔流超营,...
    蕭雪圣閱讀 187評論 0 1
  • 1. 在什么場景下會出現(xiàn)外邊距合并?如何合并船响?如何不讓相鄰元素外邊距合并躬拢?給個(gè)父子外邊距合并的范例 外邊距合并:外...
    進(jìn)擊的阿群閱讀 915評論 1 2