margin重叠问题

作者: 墨马 | 来源:发表于2017-08-30 10:16 被阅读55次

一.什么是margin重叠现象

当两个垂直边界相遇时,它们将形成一个边界。这个边界的高度等于两个发生叠加的边界的高度中的较大者。不全是正值,则都取绝对值,然后用正值减去最大值;没有正值,则都取绝对值,然后用0减去最大值。

二.什么情况下会出现margin重叠

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


    2-1
  • 元素的顶边界与父元素的顶边界发生叠加border-top的边界和它的父元素相同。


    2-2
  • 元素的顶边界与底边界发生叠加

    • 假设有一个空元素,它有边界,但是没有边框或填充。在这种情况下,顶边界与底边界就碰到了一起


      2-3
  • 空元素中已经叠加的边界与另一个空元素的边界发生叠加


    2-4

三.边界叠加的意义

由几个段落组成的典型文本页面为例第一个段落上面的空间等于段落的顶边界。如果没有边界叠加,后续所有段落之间的边界将是相邻顶边界和底边界的和。这意味着段落之间的空间是页面顶部的两倍。如果发生边界叠加,段落之间的顶边界和底边界就叠加在一起,这样各处的距离就一致了。

3-1

四.解决方法
只有普通文档流中块框的垂直边界才会发生边界叠加。行内框、浮动框或绝对定位框之间的边界不会叠加。
1.外层 padding
2.透明边框 border:1px solid transparent;(transparent 透明属性)
3.绝对定位 position:absolute;
4.内层DIV float:left; display:inline;(元素会被显示为内联元素)
5.外层DIV overflow:hidden;(超出盒子部分隐藏)
6.外层DIV zoom:1;(清除margin的重叠IE特有)

五.实例

代码:
#box{  
        margin:10px;  
        background-color:#d5d5d5;  
}  
p{  
      margin:20px;  
      background-color:#6699ff;  
}
理想效果
5-1
实际效果
5-2

通过添加一个垂直边框或填充,空白边就不再叠了,而且元素的高度就是它包含的子元素的顶部和底部空白边边缘之间的距离。
代码:

#box{  
       margin:10px;  
       padding:1px;/*或者border:1pxsolidcolor;*/  
       background-color:#d5d5d5;  
}  
p{  
       margin:20px;  
       background-color:#6699ff;  
}

相关文章

  • margin重叠问题

    一.什么是margin重叠现象 当两个垂直边界相遇时,它们将形成一个边界。这个边界的高度等于两个发生叠加的边界的高...

  • margin 重叠问题

    在网页制作中我们经常用到margin属性,但我们有没有注意到在设置 margin 属性时会存在重叠问题呢?我们来看...

  • CSS中常见兼容性问题及解决方案

    一、margin问题 1. 上下margin重叠问题,即给相邻的两个div设置margin-bottom和ma...

  • margin重叠

    通常特性:1.block水平元素(不包括float和absolute元素)2.不考虑writing-mode,只发...

  • CSS理解之margin

    1.margin与百分比单位 2.margin重叠 margin重叠通常特性: 只发生在block水平元素(例如:...

  • 「css零碎」使用技巧

    1. 使用尽量使用padding代替margin因为BFC问题, margin上下有可能会重叠 2. positi...

  • BFC margin重叠

    BFC:块级格式化上下文,它是指一个独立的块级渲染区域,只有Block-level BOX参与,该区域拥有一套渲染...

  • 3.CSS布局篇之margin纵向重叠问题

    先说结论:相邻元素的margin-top和margin-bottom会发生重叠,空白内容的标签也会重叠

  • 元素的外边距margin重叠问题

    第一种 ——经典的相邻marign重叠的问题 当一个元素出现在另一个元素上面时,第一个元素的下外边距与第二个元素...

  • 13.margin垂直外边距的重叠,导致子父元素移动问题

    margin垂直外边距的重叠问题在网页中相邻的垂直方向的外边距会发生外边距的重叠所谓的外边距重叠指兄弟元素之间的相...

网友评论

    本文标题:margin重叠问题

    本文链接:https://www.haomeiwen.com/subject/ecpzdxtx.html