在什么場景下會出現(xiàn)外邊距合并?如何合并?如何不讓相鄰元素外邊距合并?給個父子外邊距合并的范例

合并外邊距的場景:

  • 外邊距合并的必備條件:margin必須是鄰接的

  • 兩個margin是鄰接的必需滿足以下條件:

1、必須是處于常規(guī)文檔流(非float和絕對定位)的塊級盒子,并且處于同一個BFC當中

2、沒有線盒,沒有空隙,沒有padding和border將他們分隔開

3、都屬于垂直方向上相鄰的外邊距,可以是下面任意一種情況:

<1>:元素的margin-top與其第一個常規(guī)文檔流的子元素的margin-top

<2>:元素的margin-bottom與其下一個常規(guī)文檔流的兄弟元素的margin-top

<3>:height為auto的元素的margin-bottom與其最后一個常規(guī)文檔流的子元素的margin-bottom

<4>:高度為0并且最小高度也為0,不包含常規(guī)文檔流的子元素,并且自身沒有建立斤的BFC的元素的margin-top和margin-bottom

合并規(guī)則:

  • 一個常規(guī)文檔流元素的margin-bottom與它下一個常規(guī)文檔流的兄弟元素的margin-top會合并,除非它們之間存在clearance

  • 一個常規(guī)文檔流元素的margin-top與其第一個常規(guī)文檔流的子元素的margin-top產(chǎn)生合并,條件為父元素不包含padding和border,子元素不包含clearance

  • 一個’height’為’auto’并且’min-height’為0的常規(guī)文檔流元素的margin-bottom會與其最后一個常規(guī)文檔流子元素的margin-bottom合并,條件為父元素不包含padding和border,子元素的margin-bottom不與保護clearance的margin-top合并

  • 一個不包含boder-top、border-bottom、padding-top、padding-bottom的常規(guī)文檔流元素,并且其’height’為0或’auto’,’min-height’為’0’,其里面也不包含line box,其自身的margin-top和margin-bottom會合并

  • 創(chuàng)建了新的BFC的元素(例如浮動元素或者’overflow’值為’visible’以外的元素)與它的子元素的外邊距不會合并

  • 浮動元素不與任何元素的外邊距產(chǎn)生合并(包括其父元素和子元素)

  • 絕對定位元素不與任何元素的外邊距產(chǎn)生合并

  • inline-block元素不與任何元素的外邊距產(chǎn)生合并

合并后margin計算規(guī)則

  • 兄弟元素
image.png
  • 父子元素
image.png
  • 空元素
image.png
  • 以上三種混合
image.png

父子外邊距合并范例

image
最后編輯于
?著作權(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)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽?zāi)J的外補...
    _Yfling閱讀 14,118評論 1 92
  • 1.在什么場景下會出現(xiàn)外邊距合并?如何合并?如何不讓相鄰元素外邊距合并?給個父子外邊距合并的范例 概念:在CSS當...
    饑人谷_任磊閱讀 843評論 0 3
  • 在什么場景下會出現(xiàn)外邊距合并?如何合并?如何不讓相鄰元素外邊距合并?給個父子外邊距合并的范例 在CSS當中,相鄰的...
    Nicklzy閱讀 921評論 0 49
  • 1. 在什么場景下會出現(xiàn)外邊距合并?如何合并?如何不讓相鄰元素外邊距合并?給個父子外邊距合并的范例 外邊距合并:外...
    進擊的阿群閱讀 1,096評論 1 2
  • 拆書01《羅輯思維:迷茫時代的明白人》 【原文摘要】 治療拖延癥的推薦方法: 1把創(chuàng)造性勞動變成機械性勞動 2先干...
    倍課閱讀 401評論 0 0

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