CSS子元素设置margin-top作用于父容器?

CSS子元素设置margin-top作用于父容器?

原因:

In this specification, the expression  collapsing margins means that adjoining margins (no non-empty content, padding or border areas or clearance separate them) of two or more boxes (which may be next to one another or nested) combine to form a single margin. 所有毗邻的两个或更多盒元素的margin将会合并为一个margin共享之。毗邻的定义为:同级或者嵌套的盒元素,并且它们之间没有非空内容、Padding或Border分隔。

  这就是原因了。“嵌套”的盒元素也算“毗邻”,也会 Collapsing Margins。这个合并Margin其实很常见,就是文章段落元素

,并列很多个的时候,每一个都有上下1em的margin,但相邻的

之间只会显示1em的间隔而不是相加的2em。

 

解决方法:

1.给父层添加:overflow:hidden;
2.给父层添加:border除none以外的属性
3.给父层添加:padding-top代替margin-top的效果。
4.给 Outer Div / Inner Div 设置为 float/position:absolute(CSS2.1规定浮动元素和绝对定位元素不参与Margin折叠)

 

转载于:https://www.cnblogs.com/ecmasea/p/5650347.html

你可能感兴趣的:(CSS子元素设置margin-top作用于父容器?)