zoukankan      html  css  js  c++  java
  • css margin边界叠加问题详谈

      问题:给子元素一个margin-top值,其父元素会跟着往下走margin-top的值

        一、代码展示

          HTML

          

    <body>  
        <div class="box">  
            <div class="content" id="content"></div>  
        </div>  
    </body>  

        CSS

    div,body{  
        padding: 0;  
        margin: 0;  
    }  
    body{  
        background-color: darkgrey;  
    }  
    .box{  
        width: 400px;  
        height: 400px;  
        margin: 30px auto;  
        background-color: palegreen;  
    }  
    .content {  
        width: 50%;  
        height: 50%;   
        margin-top: 70px;  
        background-color: tomato;  
    }         

     展示图

        理想中

        实际上

     原因

        1、当一个元素包含在另一个元素中时(如果没有填充或者边框将边界隔开),他们的顶边界或者底边界会发生叠加

        详细相关知识请看 http://blog.csdn.net/weisuochengxuyuan/article/details/17379517

    这时或者有的小伙伴会问:那个父元素的30px的margin-top值呢加起来应该是100px?

     其实呢,父元素盒子元素的margin-top值是重叠了的,就是谁高谁顶着(有一种天塌下来高个儿顶着的感觉~)

     

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

      1、给父元素设置padding-top:1px;(使边界不叠加);

      2、给父元素一个边框border值;

      3、为父元素添加over-flow:hidden;

      4、使父元素或子元素浮动float:left;

      5、为父元素添加position:absolute

      6、为父元素或子元素添加display:inline-block;

    以上可灵活处理,亲测有效哦~

     

     

     

     

     

     

     

     

  • 相关阅读:
    Rotate Image,N*N矩阵顺时针旋转90度
    JumpGame,JumpGame2
    WildcardMatching和Regex,通配符匹配和正则表达式匹配
    Multiply Strings,字符串相乘
    TrappingRainWater
    300万PV的ASP.NET网站使用阿里云的配置建议
    java 学习 安卓学习
    如何学习Yii
    Lemon开源OA
    JAVA-进行Java Web项目开发需要掌握的技术
  • 原文地址:https://www.cnblogs.com/vicky-li/p/6904473.html
Copyright © 2011-2022 走看看