垂直margin為什麼會重疊

飛翔的大象發表於2019-03-18

之前看到的post中有這樣的一個問題:垂直margin為什麼會重疊?我可以說出solve,但是說不出why。

在stackoverflow上找到了一個很好的解釋:margin的定義不是讓元素移動xxpx,而是這個元素的旁邊必須有xxxpx的的空白

得到了這個解釋之後,想一下“為首個子元素新增20px的上邊距,父元素竟跟著子元素下沉了”這個問題,再思考一下解決方法。給父元素新增overflow開啟一個BFC,或者給父元素增加padding、border之類,這樣的做法使元素的旁邊邊界不是上一個盒子而是父元素,必須要存在的空白的相對位置變了,這個時候,子元素不會再去“影響”父元素的位置。

相關文章