美文网首页
margin塌陷问题

margin塌陷问题

作者: LC_Ansel | 来源:发表于2019-01-18 20:55 被阅读0次

今天在CSS3练习弹性盒子中想起了margin的塌陷问题。在这里回忆一下....

margin 塌陷是在父级相对于浏览器进行定位时但子级没有相对于父级定位,子级相对于父级就像塌陷了一样,父子嵌套元素垂直方向的 margin,父子元素是结合在一起的,他们两个会取其中最大的值。
1)当两个盒子垂直并列在一起时(不常见)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    *{
         margin: 0; 
         padding: 0; 
    }
    .box1{ 
         width: 200px; 
         height: 200px; 
         background: yellowgreen;
     } 
    .box2{ 
         width: 200px; 
         height: 200px; 
         background: gray; 
    }
    </style>
</head>
<body>
    <div class="box1">box1</div>
    <div class="box2">box2</div>
</div>
</body>
</html>
image.png

如果我将box1的margin-bottom设置为80px,而box2的margin-top属性设置为50px,那么box1与box2是相距130px还是什么呢?对于大多数初学者而言,一眼觉得是130px,而非80px。这就是margin的塌陷问题。

    <div class="box1">box1</div>
    <div class="box2">box2</div>
*{
         margin: 0; 
         padding: 0; 
    }
    .box1{ 
         width: 200px; 
         height: 200px; 
         background: yellowgreen;
         margin-bottom: 80px;
     } 
    .box2{ 
         width: 200px; 
         height: 200px; 
         margin-top: 50px;
         background: gray; 
    }

我们来看看效果


image.png

2)一个盒子里面嵌套另一个盒子时,在里面的盒子添加margin属性(常见)
代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
    *{
         margin: 0; 
         padding: 0; 
    }
    .box1{
        width:400px;
        height:400px;
        background: #f40;
    }
    .box2{
        width:200px;
        height:200px;
        margin-top: 20px;
        background: #0ff;
    }
    </style>
</head>
<body>
    <div class="box1">
        <div class="box2"></div>
    </div>
</body>
</html>

效果呢,看了会不会很惊讶呢......


image.png

其实吧,这明显是margin塌陷。
margin-top:20px;加到box1或者box2效果一样。那么怎么才能将margin他先解决呢??
我在全网搜了搜,一共以下三种方法:
1.在父级盒子加border属性使box2不再与box1贴合

.box1{
        width:400px;
        height:400px;
        border:1px solid black;
        background: #f40;
    }

效果呢,就变成我们一开始想象的那样。


image.png

2.为父级盒子添加overflow:hidden;position: absolute;float: left; display:inline-block;
3.为父级盒子设定padding值。
其实这三种方法的共同点都是使box2与box1不贴合。促使子级盒子相对于父级定位。
感觉学到点东西的,麻烦点个赞,关注一波也可以。如果有错,请评论或者私信我哈!!!

相关文章

  • 小技巧合集之css

    01 修改placeholder样式 02 margin合并/塌陷问题解决方法 具体详见:margin合并/塌陷问题

  • margin塌陷问题

    一:什么是margin塌陷 在标准文档流中,竖直方向的margin会出现叠加现象(水平方向不会塌陷),两个marg...

  • margin 塌陷问题

    margin 塌陷问题 在标准文档流中,块级标签之间竖直方向的margin会以大的为准,这就是margin的塌陷现...

  • margin塌陷问题

    今天在CSS3练习弹性盒子中想起了margin的塌陷问题。在这里回忆一下.... margin 塌陷是在父级相对于...

  • margin塌陷的问题

    在使用margin-top的时候,常常会发现父级元素会随着子级元素一起改变高度,这是因为在html中,当子...

  • margin-塌陷问题

    塌陷问题 当两个盒子在垂直方向上设置margin值时,会出现一个有趣的塌陷现象。 垂直并列(少见) /HTML部分...

  • margin-塌陷问题

    一、问题描述 当两个盒子在垂直方向上设置margin值时,会出现一个有趣的塌陷现象。 如图示 最初目的是垂直剧中子...

  • margin合并/塌陷问题

    外边距合并的几种情况 所谓的外边距合并就是,当两个垂直外边距相遇时,它们将形成一个外边距。合并的外边距的高度等于两...

  • 【前端基础5.0】CSS-如何解决margin塌陷问题

    文/Jack同学 margin塌陷问题在布局开发的过程中也是经常遇到,原理和解决方法都不难。那margin塌陷是什...

  • margin塌陷

    margin塌陷 margin塌陷发生在下列两种情况中 1.垂直并列 对box1我们为其设置margin-bott...

网友评论

      本文标题:margin塌陷问题

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