CSS Margin塌陷(重疊)

1、什么是“ Margin塌陷(重疊) ”?

在標準文檔流中,豎直方向(是豎直方向,水平方向不會出現(xiàn)塌陷現(xiàn)象)的margin會出現(xiàn)疊加現(xiàn)象,即較大的margin會覆蓋掉較小的margin,豎直方向的兩個盒子中間只有一個較大的margin,這就是margin的塌陷現(xiàn)象。

2、Margin塌陷現(xiàn)象何時產(chǎn)生?

margin的塌陷現(xiàn)象分兩種情況:1,兄弟關(guān)系的盒子 2 ,父子關(guān)系的盒子

注:兩個盒子的垂直外邊距完全接觸才會觸發(fā)。

3、現(xiàn)象實例

(1)兄弟關(guān)系盒子垂直并列(少見)

兩個相鄰的外邊距都是正數(shù)時,折疊結(jié)果是它們兩者之間較大的值。

兩個相鄰的外邊距都是負數(shù)時,折疊結(jié)果是兩者絕對值的較大值。

兩個外邊距一正一負時,折疊結(jié)果是兩者的相加的和。

step1:首先設(shè)置兩個DIV,并為其制定寬高


step2:對box1我們?yōu)槠湓O(shè)置margin-bottom:50px;

  ?  對box2我們?yōu)槠湓O(shè)置margin-top: 20px;


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

(2)父子關(guān)系盒子(常見)

step1:首先設(shè)置兩個嵌套關(guān)系的DIV,并為其制定寬高

step2: 當為內(nèi)層盒子添加margin-top:10px時,會出現(xiàn)


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

即無論給子元素設(shè)不設(shè)置margin-top值,其都不發(fā)生作用,都會作用于父元素身上

4、解決方法

(1)為父盒子設(shè)置border,為外層添加border后父子盒子就不是真正意義上的貼合;

(2)為父盒子設(shè)定padding值,抵消掉子元素設(shè)置margin值的方式;

(3)為父盒子添加overflow:hidden;

(4)為父盒子添加position:fixed;

(5)為父盒子添加 display:table;

(6)利用偽元素給子元素的前面添加一個空元素。

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

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 14,108評論 1 92
  • 一 外部式css樣式 (也可稱為外聯(lián)式)就是把css代碼寫一個單獨的外部文件中,這個css樣式文件以“.css...
    KunMitnic閱讀 1,119評論 0 1
  • 一、標準盒模型和怪異模式盒模型 標準盒模型和怪異模式盒模型可以通過box-sizing來設(shè)置:?標準盒模型: bo...
    會有貓惹閱讀 622評論 0 1
  • margin重疊 摘自css2.1規(guī)范中文版 CSS中,兩個或者多個盒(可能但不一定是兄弟)的相鄰的margin會...
    打鐵大師閱讀 7,243評論 0 9
  • (本章節(jié)故事靈感來自于念寶寶,過年給念寶寶買了動物科普書,姐姐說念寶寶在聽到小動物瀕臨滅絕的時候眼含淚水。那時候就...
    vicky四小姐閱讀 820評論 0 1

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