margin-top并不是作用于父类

margin-top并不是作用于父类,而是父类产生了margin-top的效果。这个是CSS规范化的结果,在1999规范以前,所有元素都是默认有border的,或者说,即使border宽度为0,仍然可作定位使用。

现在的规范中,将对margin定义更明确化(外边距:与当前盒模型以外的最近一个盒模型的间距),如果直接的父级盒模型在当前方向上没有border,就认为父级的范围也属于子标签的边框的一部分。
那么解决此中情况的方式也很简单,只要破坏下面的一种情况就可以了:
1.父元素的上边距与子元素的上边距之间没有border。
2.父元素的上边距与子元素的上边距之间没有非空内容。
3.父元素的上边距与子元素的上边距之间没有padding。
3.父元素和子元素中没有设置定位属性(除static和relative)、overflow(除visible)和display:inline-block等。
4.父元素或者资源都没有浮动。

猜你喜欢

转载自blog.csdn.net/djjj123456789/article/details/80290258