子元素设置margin-top后,父元素跟随下移的问题

当一个元素包含在另一个元素中时,假设没有内边距padding或边框border把外边距分隔开,它们的上和/或下外边距也会发生合并。请看下图

再说了白点就是:父元素的第一个子元素的上边距margin-top如果碰不到有效的border或者padding.就会不断一层一层的找自己“领导”(父元素,祖先元素)的麻烦。只要给领导设置个有效的 border或者padding就可以有效的管制这个目无领导的margin防止它越级,假传圣旨,把自己的margin当领导的margin执行。
对于垂直外边距合并的解决方案上面已经解释了,为父元素增加一个border-top或者padding-top即可解决这个问题。(引用https://www.hicss.net/do-not-tell-me-you-understand-margin/这篇文章的话)

 

解决方法:
如果必须设置margin的话,有以下方法解决父元素掉下来的bug

  • 给父元素设置:padding-top: 0.1px;
  • 给父元素设置:border: 1px solid transparent;
  • 给父元素设置:overflow: hidden;
  • 给父元素设置:display: inline-block;
  • 给父元素设置:float: left;
  • 给父元素设置:position: absolute;


原文链接:https://blog.csdn.net/apple_51417798/article/details/124751754

posted @ 2022-11-17 08:56  紫花地丁year  阅读(194)  评论(0编辑  收藏  举报