margin塌陷

margin塌陷

margin塌陷發(fā)生在下列兩種情況中

1.垂直并列

/*HTML部分*/
<body>
  <div class="box1">box1</div>
  <div class="box2">box2</div>
</body>
/*CSS部分*/
<style> 
  *{
       margin: 0; 
       padding: 0; 
  }
   .box1{ 
       width: 200px; 
       height: 200px; 
       background: yellowgreen;
   } 
  .box2{ 
       width: 200px; 
       height: 200px; background: gray; 
  }
</style>

對box1我們?yōu)槠湓O(shè)置margin-bottom:50px;對box2我們?yōu)槠湓O(shè)置margin-top: 40px;
我們肯定會很理所當(dāng)然的認(rèn)定這兩個盒子之間的距離為90px,事實上并非如此.如下圖所示:


兩盒子之間的距離僅是50px,也就是說兩盒子之間的margin出現(xiàn)了重疊部分,故而我們可以得出:垂直之間塌陷的原則是以兩盒子最大的外邊距(margin)為準(zhǔn)。

2.嵌套關(guān)系

/*CSS部分*/
<style>
.box1{
  width:400px;
  height:400px;
  background: pink;
}
.box2{
  width:200px;
  height:200px;
  background: lightblue;
}
</style>
/*HTML部分*/
<body>
  <divclass="box1">
  <divclass="box2"></div>
</div>
</body>

如圖示


當(dāng)為子盒子添加margin-top:10px;時會發(fā)生如下情況:


子盒子和父盒子之間并沒出現(xiàn)期望的10px間隙而是父盒子與子盒子一起與頁面頂端產(chǎn)生了10px間隙。

解決方法:
(1)為父盒子設(shè)置border,為外層添加border后父子盒子就不是真正意義上的貼合。
(2)為父盒子添加overflow:hidden;
(3)為父盒子設(shè)定padding值。

了解下BFC(Block Fommat Content)塊級格式上下文,就能很清楚的避開這些坑
了解BFC

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 塌陷問題 當(dāng)兩個盒子在垂直方向上設(shè)置margin值時,會出現(xiàn)一個有趣的塌陷現(xiàn)象。 垂直并列(少見) /HTML部分...
    饑人谷_米彌輪閱讀 3,116評論 1 0
  • margin 塌陷問題 在標(biāo)準(zhǔn)文檔流中,塊級標(biāo)簽之間豎直方向的margin會以大的為準(zhǔn),這就是margin的塌陷現(xiàn)...
    你期待的花開閱讀 610評論 6 10
  • 1.在什么場景下會出現(xiàn)外邊距合并?如何合并?如何不讓相鄰元素外邊距合并?給個父子外邊距合并的范例 概念:在CSS當(dāng)...
    饑人谷_任磊閱讀 865評論 0 3
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 14,204評論 1 92
  • relative:生成相對定位的元素,通過top,bottom,left,right的位置相對于其正常位置進行定位...
    zx9426閱讀 1,083評論 0 2

友情鏈接更多精彩內(nèi)容