合并外邊距的場(chǎng)景:
外邊距合并的必備條件:margin必須是鄰接的
兩個(gè)margin是鄰接的必需滿足以下條件:
1笙僚、必須是處于常規(guī)文檔流(非float和絕對(duì)定位)的塊級(jí)盒子芳肌,并且處于同一個(gè)BFC當(dāng)中
2、沒有線盒肋层,沒有空隙亿笤,沒有padding和border將他們分隔開
3、都屬于垂直方向上相鄰的外邊距栋猖,可以是下面任意一種情況:
<1>:元素的margin-top與其第一個(gè)常規(guī)文檔流的子元素的margin-top
<2>:元素的margin-bottom與其下一個(gè)常規(guī)文檔流的兄弟元素的margin-top
<3>:height為auto的元素的margin-bottom與其最后一個(gè)常規(guī)文檔流的子元素的margin-bottom
<4>:高度為0并且最小高度也為0净薛,不包含常規(guī)文檔流的子元素,并且自身沒有建立斤的BFC的元素的margin-top和margin-bottom
合并規(guī)則:
一個(gè)常規(guī)文檔流元素的margin-bottom與它下一個(gè)常規(guī)文檔流的兄弟元素的margin-top會(huì)合并蒲拉,除非它們之間存在clearance
一個(gè)常規(guī)文檔流元素的margin-top與其第一個(gè)常規(guī)文檔流的子元素的margin-top產(chǎn)生合并肃拜,條件為父元素不包含padding和border,子元素不包含clearance
一個(gè)’height’為’auto’并且’min-height’為0的常規(guī)文檔流元素的margin-bottom會(huì)與其最后一個(gè)常規(guī)文檔流子元素的margin-bottom合并,條件為父元素不包含padding和border,子元素的margin-bottom不與保護(hù)clearance的margin-top合并
一個(gè)不包含boder-top雌团、border-bottom燃领、padding-top、padding-bottom的常規(guī)文檔流元素辱姨,并且其’height’為0或’auto’,’min-height’為’0’,其里面也不包含line box,其自身的margin-top和margin-bottom會(huì)合并
創(chuàng)建了新的BFC的元素(例如浮動(dòng)元素或者’overflow’值為’visible’以外的元素)與它的子元素的外邊距不會(huì)合并
浮動(dòng)元素不與任何元素的外邊距產(chǎn)生合并(包括其父元素和子元素)
絕對(duì)定位元素不與任何元素的外邊距產(chǎn)生合并
inline-block元素不與任何元素的外邊距產(chǎn)生合并
合并后margin計(jì)算規(guī)則
- 兄弟元素
- 父子元素
- 空元素
- 以上三種混合