問題:子盒子設置上外邊距,父盒子會隨着子盒子塌陷,嵌套塊元素垂直外邊距合並
<style> *{ padding: 0; margin: 0; } .father { height: 500px; width: 500px; background: rgb(184, 184, 167); } .son { width: 200px; height: 200px; background: rgb(199, 20, 20); margin-top: 100px; }
</style>
<body>
<div class="father">
<div class="son">子盒子設置上外邊距,父盒子會隨着子盒子塌陷,嵌套塊元素垂直外邊距合並</div>
</div>
</body>
如下圖所示,是希望出現的效果,然而實際情況是父盒子會隨着子盒子一起下來

三個解決辦法:
/* 解決辦法 1:為父盒子設置1像素的上邊框,顏色一樣,但是會撐大父盒子,所以父盒子高度減1*/ .father { border-top: 1px solid rgb(184, 184, 167); height: 499px; }
/* 解決方法 2:為子盒子設置1像素的上內邊距,也會撐大子盒子,所以子盒子高度減1 */ .son { padding-top: 1px; height: 199px; }
/* 解決方法 3:父盒子設置overflow:hidden ,觸發bfc ,不會撐大盒子*/ .father { overflow: hidden; }