margin-top 外邊距合并

這是一個(gè)早以前研究過的東西肚逸,今天java開發(fā)說起了這個(gè),順帶記錄一下聘萨。

這里有一行代碼竹椒,很簡(jiǎn)單的一段代碼.

<style type="text/css">
#div1{
    background:#000;
    width:100px;
    height:100px;
    margin-top:10px;
}
#div2{
    margin-top:20px;
    background:#f00;
    width:50px;
    height:50px;
}
</style>
<div id="div1">
    <div id="div2"></div>
</div>

可是在瀏覽器中打開后,居然是這個(gè)樣子的~

黑色的區(qū)塊為div1,紅色的為div2

從效果上看div2的margin-top像是沒有生效米辐,經(jīng)測(cè)量div1的margin-top值胸完,發(fā)現(xiàn)這個(gè)div2的margin-top像是生效到div1上了书释。

就這幾行代碼寫錯(cuò)是不大可能,那這又是怎么回事赊窥?

之前遇到這個(gè)問題時(shí)爆惧,試遍了所有的瀏覽器,都是這個(gè)樣子锨能。

我就覺著這是個(gè)兼容性極佳的BUG扯再。

后來一個(gè)偶然的機(jī)會(huì)發(fā)現(xiàn)在父級(jí)上增加border或者
overflow:hidden是可以規(guī)避這個(gè)問題,且這個(gè)問題只會(huì)在常規(guī)流向中出現(xiàn)址遇,也就是說用position或者是float都不會(huì)存在這個(gè)問題熄阻。

整點(diǎn)原理規(guī)范什么的提高一下:

百度一下,你就知道倔约。秃殉。

以下來自W3C CSS2.1規(guī)范:http://www.css88.com/book/css2/box.html#margin-properties

8.3.1 邊距重合
在本規(guī)范中,表述邊距重合意味著兩個(gè)或多個(gè)框(可能相鄰也可能嵌套)的相鄰的邊距(其間沒有邊白或邊框間隔)重合在一起而形成一個(gè)單一的邊距浸剩。 CSS2中钾军,水平邊距永遠(yuǎn)不會(huì)重合。 垂直邊距可能在特定的框之間重合:1绢要、常規(guī)流向中兩個(gè)或多個(gè)塊框相鄰的垂直邊距會(huì)重合吏恭。結(jié)果的邊距寬度是相鄰邊距寬度中較大的值。如果出現(xiàn)負(fù)邊距重罪,則在最大的正邊距中減去絕對(duì)值最大的負(fù)邊距砸泛。如果沒有正邊距,則從零中減去絕對(duì)值最大的負(fù)邊距蛆封。2唇礁、在一個(gè)浮動(dòng)框和其它框之間的垂直邊距不重合。3惨篱、絕對(duì)和相對(duì)定位的框的邊距不重合盏筐。

首先了解到這并不是BUG,而是個(gè)規(guī)范砸讳,雖然看上去像是BUG,按著規(guī)范試一下,覺著還是像是個(gè)BUG琢融。

看規(guī)范是一目十行,過目就忘,還是整理一下簿寂。

外邊距合并的觸發(fā)條件:

  1. 常規(guī)流向布局漾抬,未使用定位或者是浮動(dòng)
  2. 存在垂直邊距
  3. 父級(jí)元素不存在border,overflow:hidden
  4. 在父級(jí)元素與子元素之間不存在擁有實(shí)際高度的元素(包含文本)

外邊距合并的解決方式:

  1. 父級(jí)元素增加border,overflow
  2. 使用定位或者是浮動(dòng)
  3. 使用padding-top替代margin-top,比較推薦這
    個(gè)。

@拭目以待

表格管理插件:gridmanager.lovejavascript.com && github地址
QQ交流群 (452781895):How To Make Love
《野生前端工程師》專輯中所有文章均為@拭目以待 原創(chuàng)常遂,轉(zhuǎn)載請(qǐng)注明出處纳令。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子平绩,更是在濱河造成了極大的恐慌圈匆,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捏雌,死亡現(xiàn)場(chǎng)離奇詭異跃赚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)性湿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門纬傲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肤频,你說我怎么就攤上這事叹括。” “怎么了着裹?”我有些...
    開封第一講書人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)米同。 經(jīng)常有香客問我骇扇,道長(zhǎng),這世上最難降的妖魔是什么面粮? 我笑而不...
    開封第一講書人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任少孝,我火速辦了婚禮,結(jié)果婚禮上熬苍,老公的妹妹穿的比我還像新娘稍走。我一直安慰自己,他們只是感情好柴底,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開白布婿脸。 她就那樣靜靜地躺著,像睡著了一般柄驻。 火紅的嫁衣襯著肌膚如雪狐树。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評(píng)論 1 299
  • 那天鸿脓,我揣著相機(jī)與錄音抑钟,去河邊找鬼。 笑死野哭,一個(gè)胖子當(dāng)著我的面吹牛在塔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拨黔,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蛔溃,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起城榛,我...
    開封第一講書人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤揪利,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后狠持,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疟位,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年喘垂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了甜刻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡正勒,死狀恐怖得院,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情章贞,我是刑警寧澤祥绞,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站鸭限,受9級(jí)特大地震影響蜕径,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜败京,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一兜喻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧赡麦,春花似錦朴皆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至晶姊,卻和暖如春忧便,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背帽借。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工珠增, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人砍艾。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓蒂教,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親脆荷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子凝垛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案懊悯? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,751評(píng)論 1 92
  • relative:生成相對(duì)定位的元素,通過top,bottom,left,right的位置相對(duì)于其正常位置進(jìn)行定位...
    zx9426閱讀 942評(píng)論 0 2
  • 1. 在什么場(chǎng)景下會(huì)出現(xiàn)外邊距合并捧毛?如何合并?如何不讓相鄰元素外邊距合并让网?給個(gè)父子外邊距合并的范例 外邊距合并:外...
    進(jìn)擊的阿群閱讀 908評(píng)論 1 2
  • 1.在什么場(chǎng)景下會(huì)出現(xiàn)外邊距合并?如何合并因篇?如何不讓相鄰元素外邊距合并泞辐?給個(gè)父子外邊距合并的范例 概念:在CSS當(dāng)...
    饑人谷_任磊閱讀 650評(píng)論 0 3
  • ?前端面試題匯總 一、HTML和CSS 21 你做的頁(yè)面在哪些流覽器測(cè)試過竞滓?這些瀏覽器的內(nèi)核分別是什么? ...
    Simon_s閱讀 2,220評(píng)論 0 8