zoukankan      html  css  js  c++  java
  • “margin塌陷” 嵌套盒子外边距合并现象

    来源于官方文档对于外边距合并的解释:

    注释:只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。

    出现外边距塌陷的三种情况:

      1.相邻兄弟元素之间

        若两者都为正外边距以最大的外边距为准;

        若存在负边距, 合并后的外边距为最大正外边距减去绝对值最大的负边距;

        若无正外边距,则用0减去绝对值最大负边距。

      2.父元素与第一个/最后一个子元素之间

        如果块级元素的 margin-top/margin-bottom 与它的第一个/最后一个子元素的margin-top/margin-bottom 之间没有 border、padding、inline content 等来分隔,此时外边距会塌陷,子元素多余的外边距会被父元素的外边距截断。

      3.自身合并

        假设有一个空元素,它有外边距,但是没有边框或填充。在这种情况下,上外边距与下外边距就碰到了一起,它们会发生合并:

        

        如果这个外边距遇到另一个元素的外边距,它还会发生合并:

        

    解决margin塌陷的几种方法: 

      1.在父级加入overflow:hidden;

      2.在父级用padding-top;

      3.在父级加position:absolute;

      4.border:1px solid transparent;

      5.float:left/right

      6.display:inline-block

    参考资料:http://www.w3school.com.cn/css/css_margin_collapsing.asp;

         http://www.ayqy.net/doc/css2-1/box.html#collapsing-margins;

  • 相关阅读:
    2015总结
    iOS逆向分析app
    Unknow Unknow
    mac配置nginx
    Mac后台开发MNMP(nginx , mysql, php)标配
    15.BOM
    12.内置对象
    13.面向对象与继承
    10.变量、作用域及内存
    11.基本包装类型
  • 原文地址:https://www.cnblogs.com/z-Feng/p/7418388.html
Copyright © 2011-2022 走看看