HTML5:子DIV设置margin-top影响父DIV位置的解决办法

在设置子DIV的margin-top时候,如果与父DIV之间无任何元素的间隔,那么就会让父DIV的位置收到影响。

代码如下:
<style>
.zb-tips{ margin-top: 30%; }
</style>
<div class="zb-container">
<div class="ui-tips ui-tips-warn zb-tips">
<i></i><span>签到失败!请下载并安装“xxx”APP扫描二维码</span>
</div>
</div>

原因是:所有毗邻的两个或更多盒元素的margin将会合并为一个margin共享之。毗邻的定义为:同级或者嵌套的盒元素,并且它们之间没有非空内容、Padding或Border分隔。这个问题的避免方法很多,只要破坏它出现的条件就行。给 Outer Div 加上 padding/border,或者给 Outer Div / Inner Div 设置为 float/position:absolute(CSS2.1规定浮动元素和绝对定位元素不参与Margin折叠)。

如何解决这个问题呢?方法有多个:

方法1:在父DIV的css加上“overflow:hidden;”。这种方法是目前来看最完美的解决办法。

方法2:在父DIV的css加上“border:1px solid transparent;”。

方法3:在父DIV的css加上float或者position:absolute。

方法4:在父DIV的css加上padding-top来代替margin实现效果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,796评论 1 92
  • FreeCodeCamp - HTML5 and CSS 发现原来在另外一台电脑学 FreeCodeCamp 的时...
    付林恒阅读 9,433评论 2 17
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    前端进阶之旅阅读 16,599评论 32 459
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 1,212评论 0 1
  • 自从6月底把公司转让了之后,告诉自己终于可以停下来休息一下了,可事实好像并非如此,在休息了一个月后,突然恐慌了起来...
    欣紫同学阅读 98评论 0 0