赞
踩
子元素的上外边距大于父元素的上外边距,导致边距折叠,取两者之间最大值,即子元素外边距,导致父元素上外边距失效。
解决办法:在父元素样式添加overflow:hidden;或者border:1px solid black;(不推荐)
.ts1 { /* height: 300px; width: 300px; */ background-color: #ccc; overflow: hidden; /* position: absolute; top: 0px; */ /* border-top: 1px solid #000; */ margin-top: 30px; } /* 父元素 */ .ts3 { height: 300px; width: 300px; background-color: #ddd; font-size: 120px; text-align: center; /* margin: 0 auto; */ line-height: 300px; margin-bottom: 30px; margin-top: 80px; } /* 子1 */ .ts { height: 300px; width: 300px; background-color: #ab3333; margin-top: 10px; overflow: hidden; font-size: 120px; text-align: center; line-height: 300px; } /* 子2 */
父元素样式添加overflow:hidden;后
橙黄色部分高度为父元素上外边距,子1元素上外边距并未与父元素上外边距重叠
父元素样式添加overflow:hidden;前
灰色与橙黄色(父元素上外边距)的高度和是取父子元素外边距的最大值。即子1的上外边距
overflow:hidden首先会触发父元素BFC,BFC的特点:**包含内部浮动,排除外部浮动,阻止外边距重叠。**因此子元素样式的任何改变不会影响到父元素。
但是子元素在父元素内的上外边距增加,会导致子元素下移溢出父元素,而overflow:hidden会隐藏溢出的部分。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。