前端布局之外邊距塌陷問題

塊級元素的上下外邊距有時候會合并材原,合并后的外邊距等于合并前兩個外邊距中的較大值沸久,這種現象稱為外邊距塌陷

外邊距塌陷有以下三種情況:

同級相鄰元素

同級相鄰元素之間的外邊距會塌陷余蟹,塌陷后的間距等于兩個元素外邊距的較大值(如果后者被清除浮動卷胯,不遵循此規(guī)則),例如:

h1 {
  margin: 0 0 25px 0;
  background: #cfc;
}
p {
  margin: 20px 0 0 0;
  background: #cf9;
}
同級元素外邊距塌陷

父子元素間的邊距塌陷

如果塊級父元素中威酒,不存在border, padding, 行內元素以及清除浮動這四條屬性(對于border和padding窑睁,也可以說,當上border及上padding寬度為0時)葵孤,那么這個塊級元素和其第一個子元素的上外邊距(margin-top)就可以說”挨到了一起“担钮。此時這個塊級父元素和其第一個子元素就會發(fā)生 上外邊距塌陷 現象,換句話說尤仍,此時這個父元素對外展現出來的外邊距將直接變成這個父元素和其第一個子元素的margin-top的較大者箫津。

類似地,若塊級父元素的下外邊距(margin-bottom)與它的最后一個子元素的下外邊距之間沒有父元素的border, padding, 行內元素宰啦,height, min-height, max-height分隔時苏遥,就會發(fā)生 下外邊距塌陷 現象。

下面是一個上外邊距合并的例子:

<h1>Heading Content</h1>
<div>
  <p>Paragraph content</p>
</div>
h1 {
  margin: 0;
  background: #cff;
}
div {
  margin: 40px 0 25px 0;
  background: #cfc;
}
p {
  margin: 20px 0 0 0;
  background: #cf9;
}

這段代碼的輸出結果為:

父子元素外邊距塌陷

可以看到在正文元素中赡模,父元素的上外邊距為40px田炭,子元素的上外邊距為20px,然后最終正文和標題之間的距離卻是40px而不是60px漓柑。因為父子元素間發(fā)生了外邊距塌陷教硫。為了避免邊距塌陷,只需要將父元素和子元素的外邊距“分隔開”欺缘,例如為父元素添加一個邊框:

h1 {
  margin: 0;
  background: #cff;
}
div {
  margin: 40px 0 25px 0;
  background: #cfc;
  border-top: 1px solid #000;
}
p {
  margin: 20px 0 0 0;
  background: #cf9;
}

輸出結果為:


防止父子元素邊距塌陷

空的塊級元素

當一個空的塊級元素的上邊距(margin-top)下邊距(margin-bottom)之間沒有border栋豫,padding,行內元素谚殊,height谤专,min-height分隔時发侵,上下邊距會塌陷。

小結

  • 以上幾種情況同時出現會產生更復雜的邊距塌陷問題。
  • 這些規(guī)則在邊距為0時同樣適用撩满,因此父元素中的第一個和最后一個子元素的外邊距總是會超出父元素(滿足上述幾種情況時),無論父元素的邊距是否為0担神。
  • 當使用負邊距時怕磨,塌陷后的邊距等于最大的正邊距和最大負邊距的代數和。
  • 浮動元素和絕對定位元素永遠不會塌陷置尔。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末杠步,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌幽歼,老刑警劉巖朵锣,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異甸私,居然都是意外死亡诚些,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門皇型,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诬烹,“玉大人,你說我怎么就攤上這事弃鸦〗视酰” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵寡键,是天一觀的道長掀泳。 經常有香客問我,道長西轩,這世上最難降的妖魔是什么员舵? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮藕畔,結果婚禮上马僻,老公的妹妹穿的比我還像新娘。我一直安慰自己注服,他們只是感情好韭邓,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著溶弟,像睡著了一般女淑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上辜御,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天鸭你,我揣著相機與錄音,去河邊找鬼擒权。 笑死袱巨,一個胖子當著我的面吹牛,可吹牛的內容都是我干的碳抄。 我是一名探鬼主播愉老,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼剖效!你這毒婦竟也來了嫉入?” 一聲冷哼從身側響起焰盗,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎咒林,沒想到半個月后姨谷,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡映九,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了瞎颗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片件甥。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖哼拔,靈堂內的尸體忽然破棺而出引有,到底是詐尸還是另有隱情,我是刑警寧澤倦逐,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布譬正,位于F島的核電站,受9級特大地震影響檬姥,放射性物質發(fā)生泄漏曾我。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一健民、第九天 我趴在偏房一處隱蔽的房頂上張望抒巢。 院中可真熱鬧,春花似錦秉犹、人聲如沸蛉谜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽型诚。三九已至,卻和暖如春鸳劳,著一層夾襖步出監(jiān)牢的瞬間狰贯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工棍辕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留暮现,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓楚昭,卻偏偏與公主長得像栖袋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子抚太,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內容