问题:子元素设置 margin-top
,会超出父元素的范围,变成父元素的 margin-top
。而实际上子元素和父元素之间,依然没有margin-top
的效果不是我们想要的。
解决方法:
overflow:hidden
变成一个BFC方式的渲染区域。结果:
子元素的margin-top
受到外层父元素BFC渲染区域的阻隔,不会影响父元素以外的区域。子元素的margin-top
,才真正成为子元素与父元素上边的间距。
其他方案:
1.为父元素添加上边框,颜色设置为透明。
2.用父元素的padding-top
代替第一个子元素的margin-top
。
3.在父元素内第一个子元素之前添加一个
,用平级BFC渲染区域阻隔下方元素的margin-top
。
4. 父元素::before{content:"";display:table}
,用平级BFC渲染区域阻隔下方元素的margin-top
。