今天发现了一个奇怪的现象:在两个嵌套div中,子div设置了margin属性,竟然会影响到父div,就是会把父div撑大,但我在父div加入了overflow:hidden之后显示正常。开始查阅相关资料,找到了margin折叠问题。
margin折叠的规则
- 两个或多个毗邻的普通流中的块元素垂直方向上的margin会折叠
- 浮动元素/inline-block的元素/绝对定位元素的margin不会和垂直方向上的其他元素的margin折叠
- 创建了块级格式化内容的元素,不和它的子元素发生margin折叠
- 元素自身的margin-bottom和margin-top相邻时也会折叠