CSS外邊距合并(塌陷/margin越界)

原文

博客原文

大綱

1粹排、什么是外邊距合并?(折疊外邊距)
2涩澡、外邊距帶來的影響
3顽耳、折疊的結(jié)果
4、產(chǎn)生折疊的原因
5妙同、出現(xiàn)的情況

1射富、什么是外邊距合并?(折疊外邊距)

外邊距合并指的是粥帚,當(dāng)兩個垂直外邊距相遇時胰耗,它們將形成一個外邊距。合并后的外邊距的高度等于兩個發(fā)生合并的外邊距的高度中的較大者芒涡。而左右外邊距不合并柴灯。
在CSS當(dāng)中,相鄰的兩個盒子(可能是兄弟關(guān)系也可能是祖先關(guān)系)的外邊距可以結(jié)合成一個單獨的外邊距费尽。這種合并外邊距的方式被稱為折疊赠群,并且因而所結(jié)合成的外邊距稱為折疊外邊距。
注釋:只有普通文檔流中塊框的垂直外邊距才會發(fā)生外邊距合并旱幼。行內(nèi)框查描、浮動框或絕對定位之間的外邊距不會合并。

2柏卤、外邊距帶來的影響

外邊距帶來的影響有很多種說法冬三,有說是margin越界,也有說是外邊距塌陷缘缚,但其實本質(zhì)上都是外邊距合并的的表現(xiàn)勾笆。

3、折疊的結(jié)果

兩個相鄰的外邊距都是正數(shù)時忙灼,折疊結(jié)果是它們兩者之間較大的值匠襟。
兩個相鄰的外邊距都是負(fù)數(shù)時,折疊結(jié)果是兩者絕對值的較大值该园。
兩個外邊距一正一負(fù)時酸舍,折疊結(jié)果是兩者的相加的和。

4里初、產(chǎn)生折疊的原因

而根據(jù)w3c規(guī)范啃勉,兩個margin是鄰接的必須滿足以下條件
4.1、必須是處于常規(guī)文檔流(非float和絕對定位)的塊級盒子,并且處于同一個BFC當(dāng)中双妨。
4.2淮阐、沒有線盒叮阅,沒有空隙(clearance,下面會講到)泣特,沒有padding和border將他們分隔開
4.3浩姥、都屬于垂直方向上相鄰的外邊距,可以是下面任意一種情況:
a:元素的margin-top與其第一個常規(guī)文檔流的子元素的margin-top
b:元素的margin-bottom與其下一個常規(guī)文檔流的兄弟元素的margin-top
c:height為auto的元素的margin-bottom與其最后一個常規(guī)文檔流的子元素的margin-bottom
d:高度為0并且最小高度也為0状您,不包含常規(guī)文檔流的子元素勒叠,并且自身沒有建立新的BFC的元素的margin-top和margin-bottom

5、出現(xiàn)的情況
5.1膏孟、兩個不同的div的上下外邊距合并
image.png
<html>
<head>
<style type="text/css">
* {
  margin:0;
  padding:0;
  border:0;
}
#d1 {
  width:100px;
  height:100px;
  margin-top:20px;
  margin-bottom:20px;
  background-color:red;
}
#d2 {
  width:100px;
  height:100px;
  margin-top:10px;
  background-color:blue;
}
</style>
</head>
<body>
<div id="d1">
</div>

<div id="d2">
</div>

<p>請注意眯分,兩個 div 之間的外邊距是 20px,而不是 30px(20px + 10px)柒桑。</p>
</body>
</html>
5.2弊决、內(nèi)外div之間外邊距合并(子元素越界或者說margin越界)
image.png
<!--
    這種情況也叫做子元素越界或者margin越界
    margin越界(第一個子元素的margin-top和最后一個子元素的margin-bottom的越界問題)   
    以第一個子元素的margin-top 為例:
    當(dāng)父元素沒有邊框border時,設(shè)置第一個子元素的margin-top值的時候魁淳,會出現(xiàn)
margin-top值加在父元素上的現(xiàn)象
-->
<html>
<head>
<style type="text/css">
* {
  margin:0;
  padding:0;
  border:0;
}

#outer {
  width:300px;
  height:300px;
  background-color:red;
  margin-top:20px;
}

#inner {
  width:50px;
  height:50px;
  background-color:blue;
  margin-top:10px;
}

</style>
</head>

<body>

<div id="outer">
  <div id="inner">
  </div>
</div>

<p>注釋:請注意飘诗,如果不設(shè)置 div 的內(nèi)邊距和邊框,那么內(nèi)部 div 的上外邊距將與外部 
div 的上外邊距合并(疊加)先改。</p>
</body>
</html>
5.3疚察、多個子元素外邊距合并
image.png
<!--
    只有當(dāng)前一個子級的寬高為0的時候蒸走,換句話說仇奶,前一個子級元素沒有辦法限制后一個子
級的margin的越界的時候才會出現(xiàn)這種情況(當(dāng)然首先父級也無法限制子級的margin越界才
可以)
-->
<html>
<head>
    <meta charset="UTF-8">
    <title>
        盒子模型
    </title>
    <style>
    *{
        margin:0;
        padding:0;
    }
    body{
        text-align:center;
    }
    div{
        width:200px;
        height:200px;
        margin:0 auto;
    }
    #div1{
        margin-top:10px;
        background:red;
    }
    #div11{
        margin-top:20px;
        width:0;
        height:0;
        background:yellow;
    }
    #div12{
        margin-top:30px;
        width:50px;
        height:50px;
        background:blue;
    }
    </style>
</head>
<body>
    <div id="div1">
        <div id="div11"></div>
        <div id="div12"></div>
    </div>
</body>
</html>
image.png
參考網(wǎng)站

http://www.w3school.com.cn/css/css_margin_collapsing.asp
https://www.cnblogs.com/wangjiaojiao/p/4659429.html
https://www.w3cplus.com/css/understanding-bfc-and-margin-collapse.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市比驻,隨后出現(xiàn)的幾起案子该溯,更是在濱河造成了極大的恐慌,老刑警劉巖别惦,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狈茉,死亡現(xiàn)場離奇詭異,居然都是意外死亡掸掸,警方通過查閱死者的電腦和手機氯庆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扰付,“玉大人堤撵,你說我怎么就攤上這事∮疠海” “怎么了实昨?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盐固。 經(jīng)常有香客問我荒给,道長丈挟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任志电,我火速辦了婚禮曙咽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挑辆。我一直安慰自己桐绒,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布之拨。 她就那樣靜靜地躺著茉继,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蚀乔。 梳的紋絲不亂的頭發(fā)上烁竭,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音吉挣,去河邊找鬼派撕。 笑死,一個胖子當(dāng)著我的面吹牛睬魂,可吹牛的內(nèi)容都是我干的终吼。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼氯哮,長吁一口氣:“原來是場噩夢啊……” “哼际跪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起喉钢,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤姆打,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肠虽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幔戏,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年税课,在試婚紗的時候發(fā)現(xiàn)自己被綠了闲延。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡韩玩,死狀恐怖垒玲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啸如,我是刑警寧澤侍匙,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響想暗,放射性物質(zhì)發(fā)生泄漏妇汗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一说莫、第九天 我趴在偏房一處隱蔽的房頂上張望杨箭。 院中可真熱鬧,春花似錦储狭、人聲如沸互婿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽慈参。三九已至,卻和暖如春刮萌,著一層夾襖步出監(jiān)牢的瞬間驮配,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工着茸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留壮锻,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓涮阔,卻偏偏與公主長得像猜绣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子敬特,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案掰邢? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 13,734評論 1 92
  • 一,浮動元素有什么特征擅羞?對父容器尸变、其他浮動元素义图、普通元素减俏、文字分別有什么影響? 浮動模型是一種可視化格式模型,浮動...
    DeeJay_Y閱讀 862評論 0 4
  • 1. 在什么場景下會出現(xiàn)外邊距合并历筝?如何合并?如何不讓相鄰元素外邊距合并廊谓?給個父子外邊距合并的范例 外邊距合并:外...
    進擊的阿群閱讀 902評論 1 2
  • 1. 浮動元素有什么特征梳猪?對父容器、其他浮動元素蒸痹、普通元素春弥、文字分別有什么影響? 浮動元素特征:使元素脫離文檔流呛哟,...
    蕭雪圣閱讀 179評論 0 1
  • 初冬扫责,和同事一起,來到了白洋淀逃呼,踏上孫犁筆下的這塊美麗神奇富有傳統(tǒng)的土地鳖孤,作課,聽課抡笼,反思苏揣,匯報,成長推姻。首...
    微格式生活閱讀 1,290評論 0 2