外邊距合併問題有兩種狀況:(1)同級元素,當垂直方向上外邊距相遇,它們會發生合併,合併以後會取外邊距最大者。(簡單說:兩個相鄰div上面一個設置margin-bottom,下一個設置margin-top,這兩個div的實際距離取margin-bottom/margin-top最大值;)spa
結果:3d
解決方法:orm
(1)去掉一個margin,而後設置另一個;blog
(2)給兩個元素設置左浮動,而且清除第二個元素的左浮動(clear:left;)it
(3)給兩個元素添加絕對定位,而且設置top值(相對於它們最近的定位的父級元素/或者body),但此時它們的父元素沒有高度;io
(2)父子關係的元素:當子元素設置margin-top/或者父子元素都設置margin-top時(取最大值),而且父元素沒有border(邊框);table
此時的margin-top都會做用在父元素上(ji父子元素一塊兒移動)form
結果:方法
解決:1.給父元素加邊框;im
2.父元素觸發BFC(block format context塊級格式化上下文)知足下面任意一種便可(又會帶來元素塌陷問題)
3.給元素加相對定位,子元素加絕對定位;
4.給元素加相對定位(設置top值);