在进行css样式编写时,上下两个div设置margin-top与margin-bottom时会出现两种情况。一种是margin-top与margin-bottom会合并,值为两者较大的那一个,另一种情况是两者值的叠加,那么这两者都放生在什么条件下呢,请看下面:
-
水平情况下margin不会合并。
-
两个上下渲染相邻(不一定是兄弟节点)的块状元素在正常页面流情况下会发生 margin 合并。
-
浮动元素不会和任何元素(包括子孙节点)发生 margin 合并。
-
overflow!=visible的元素不和任何元素发生margin合并。
-
绝对定位的元素不和任何元素发生margin合并。
-
inline-block 的元素不和任何元素发生margin合并。
-
设置 clear 属性的元素不和任何元素发生margin合并。
-
根元素不和任何元素发生margin合并。
-
父节点和第一个子节点发生margin-top合并。
-
如果最后一个子节点没有border以及padding,则和其父节点发生margin-bottom合并。
注意IE!特别是hasLayout对于margin合并也有影响,从而也造成了包含的绝对定位元素的位置差异。
借鉴于https://www.cnblogs.com/liu-l/articles/3887576.html