zoukankan      html  css  js  c++  java
  • 为什么margin-top值不是作用域父元素

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="author" content="http://www.51texiao.cn/" />
    <title>XXX</title>
    <style type="text/css"> 
    #parent 
    { 
      200px; 
      height:200px; 
      background-color:red; 
    } 
    #children 
    { 
      60px; 
      height:60px; 
      background-color:green; 
      margin:0px auto; 
      margin-top:50px; 
    } 
    </style> 
    </head> 
    <body> 
    <div id="parent"> 
      <div id="children"></div> 
    </div> 
    </body> 
    </html>
    

      以上代码的初衷是让子元素的顶部距离父元素50px,但是事实上却并没有实现预期的效果,而是子元素顶部紧贴父元素,并且margin-top好像转移给了父元素,让父元素产生上外边距。这其实是一个典型的外边距合并问题,但是并非所有的浏览器都会产生这种情况,一般标准浏览器都会出现此现象,而IE6和IE7在此状态下不会出现外边距合并现象。

    1.父元素的上边距与子元素的上边距之间没有border。

    2.父元素的上边距与子元素的上边距之间没有非空内容。

    3.父元素的上边距与子元素的上边距之间没有padding。

    3.父元素和子元素中没有设置定位属性(除static和relative)、overflow(除visible)和display:inline-block等。

    4.父元素或者资源都没有浮动。

    注意:以上条件必须都要满足才可以。那么解决此中情况的方式也很简单,只要破坏上面的一种情况就可以了。

    解决:

    1、给父级添加overflow:hidden;

    2、添加padding

    居敬持志~ Coding
  • 相关阅读:
    题解 CF171G 【Mysterious numbers
    题解 P1157 【组合的输出】
    题解 P3955 【图书管理员】
    题解 P2036 【Perket】
    题解 CF837A 【Text Volume】
    题解 CF791A 【Bear and Big Brother】
    题解 CF747A 【Display Size】
    题解 P1332 【血色先锋队】
    题解 P2660 【zzc 种田】
    题解 P4470 【[BJWC2018]售票】
  • 原文地址:https://www.cnblogs.com/ntscshen/p/4695285.html
Copyright © 2011-2022 走看看