margin塌陷(collapse)

1.当两个对象为上下关系时,而且都具备margin属性时,上面的margin-bottom与下面的margin-top会发生塌陷

  • 当margin-bottom和margin都为正数时,结果为两者之间的最大值

     <div id="a"></div>
     <div id="b"></div>
    
    #a{
        background:red;
        width:150px;
        height:150px;
        margin-bottom:50px;
     }
     #b{
        background:green;
        width:100px;
        height:100px;
        margin-top:20px;
     }
    
    
     
  • 当margin-bottom和margin-top都为负时,结果为两者绝对最较大的那个值。

     <div id="a"></div>
     <div id="b"></div>
    
    #a{
        background:red;
        width:150px;
        height:150px;
        margin-bottom:-50px;
     }
     #b{
        background:green;
        width:100px;
        height:100px;
        margin-top:-40px;
     }
    
    
     
  • 当margin-bottom和margin-top为一正一负时,结果为两者之和。

    <div id="a"></div>
    <div id="b"></div>
    
    #a{
        background:red;
        width:150px;
        height:150px;
        margin-bottom:-50px;
     }
     #b{
        background:green;
        width:100px;
        height:100px;
        margin-top:20px;
     } 
    
    

2.当两个对象为上下包含关系

  • 父元素无填充内容,且没有设置border时,子元素的margin-top不会起作用

     <div id="a">
        <div id="b"></div>
     </div>
    
    #a{
        background:red;
        width:150px;
        height:150px;
     }
     #b{
        background:green;
        width:100px;
        height:100px;
        margin-top:20px;
     }
      
  • 父元素设置border属性,子元素的margin-top起作用

    #a{
        background:red;
        width:150px;
        height:150px;
        border:1px solid #000;
     }
     #b{
        background:green;
        width:100px;
        height:100px;
        margin-top:20px;
     }
    
     <div id="a">
        <div id="b"></div>
     </div>
  • 父元素有填充内容,子元素的margin-top会起作用,当margin-top小于填充内容时,距离为填充内容的高度

    #a{
        background:red;
        width:150px;
        height:150px;
     }
     #b{
        background:green;
        width:100px;
        height:100px;
        margin-top:20px;
     }
    
     <div id="a">liuliu
        <div id="b"></div>
     </div>
  • 解决父元素塌陷的方法还有,为父元素添加overflow:hidden;,或float非none属性,也可为子元素添加float非none属性

如果有新发现将继续补充。

时间: 2024-11-13 19:39:46

margin塌陷(collapse)的相关文章

margin塌陷现象

如果两个盒子是包含关系,如果让子盒子在父盒子之内向下平移100px:(margin塌陷现象)解决方案: padding , border , overflow <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>盒子模型</title> <style>/*margin塌陷*/ .box1 { wi

11-[CSS]-margin塌陷,

1.margin塌陷 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>margin的塌陷</title> <style type="text/css"> *{ padding: 0; margin: 0; } .box1{ width: 300px; height: 200

margin塌陷与合并问题

本文转自: https://blog.csdn.net/Sunshineanl/article/details/70767277 margin塌陷问题和合并问题都只对垂直方向有效 margin塌陷问题 这个问题是一个经典的浏览器内核问题.具体表现是当两个元素嵌套到一起时,外层盒模型的margin-top取两个元素中margin-top较大的值. 因为在正常的情况下内层元素是相对于外层元素进行移动,但是这时内层元素却相对于整个文档进行移动,好像外层元素没有“棚顶”一样,因此叫margin塌陷问题.

触发bfc解决父子元素嵌套垂直方向margin塌陷问题

首先看一下问题案例 .wrapper{ width: 100px; height: 100px; background-color: aqua; margin-top: 100px; margin-left: 100px; } .inner{ width: 50px; height: 50px; margin-top: 100px; margin-left: 50px; background-color:black; } <div class="wrapper"> <

6.margin塌陷问题

当时说到了盒模型,盒模型包含着margin,为什么要在这里说margin呢?因为元素和元素在垂直方向上margin里面有坑. 我们来看一个例子: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>margin塌陷</title> <style type="text/css"> *

解决margin塌陷和margin合并

<!doctype html> <html> <head> <meta charset="UTF-8"> <title>嘿嘿嘿</title> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no,

盒子模型margin塌陷

盒子模型 margin 外边距 padding 内边距 盒子布局的稳定性: 优先使用width>padding>margin 1.上下盒子的margin塌陷 上下盒子发生margin塌陷 margin小的盒子塌陷在大的盒子,不是简单叠加.浮动后,左右margin也不会发生塌陷,如想测试,把注释代码取消注释即可. 塌陷效果图: .box1{ /*float: left;*/ width: 200px; height: 200px; background: yellowgreen; /*margi

问题与对策:CSS的margin塌陷(collapse)

1: <!DOCTYPEHTML PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN"> 2: <html> 3: <head> 4: <title></title> 5: <metaname=""content=""> 6: <style> 7: *{ 8: margin:0px; 9: padding:0px; 10: }

CSS的margin塌陷(collapse)

对于以下简单代码: 点击(此处)折叠或打开 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title></title> <meta name="" content=""> <style> *{ margin:0px; padding:0px; } #no1