CSS外边距叠加问题

最近在写CSS时发现自己对于外边距叠加问题理解的不是很清楚,在网上找好一些资料,总结于此。

边界叠加是指两个或多个盒子(可能相邻也可能嵌套)的相邻边界(期间没有任何非空内容、补白、边框)重合在一起而形成一个单一边界。

简单地说,当两个垂直边界相遇时,它们将形成一个边界。这个边界的高度等于两个发生叠加的边界的高度中的较大者。

而具体又有以下几种情况:

1.当一个元素出现在另一个元素上面时,第一个元素的底边界与第二个元素的顶边界发生叠加

2.元素的顶边界与前面元素的底边界发生叠加

3.元素的顶边界与父元素的顶边界发生叠加

4.元素的顶边界与底边界发生叠加

5.空元素中已经叠加的边界与另一个空元素的边界发生叠加

只有普通文档流中块框的垂直边界才会发生边界叠加。行内框、浮动框或绝对定位框之间的边界不会叠加。

解决方案:

边l界叠加的大多数问题可以通过添加透明边框或1px的补白来修复。

1.外层padding

2.透明边框border:1pxsolidtransparent;

3.绝对定位postion:absolute:

4.外层DIVoverflow:hidden;

5.内层DIV 加float:left;display:inline;

6.外层DIV有时会用到zoom:1;

posted @ 2017-02-11 20:31  skyrim  阅读(169)  评论(0)    收藏  举报