CSS系列-margin的BUG

和自甴很熟 提交于 2020-04-02 23:30:55

1. 塌陷现象(子元素设置margin-top, 父元素会塌陷) 

下面例子,此时子元素其实和父元素的距离是0,离父元素的兄弟节点才是100px

   

  触发父元素的bfc, overflow: hidden, border :

解决方案1:父元素设置透明的 border:  1px solid transparent;  box-sizing: border-box;

解决方案2:父元素设置 overflow: hidden;

解决方案3:父元素设置 display: inline-block; width: 100%;

 

2.  margin 合并

a: 两个元素是兄弟关系,上面的一个元素的margin-bottom与下一个元素的margin-top取值为两者中最大值

 

下面例子one和two的距离其实是200px,不是300px;

   

  原因: 同一个bfc的两个相邻的box会发生margin重叠;

  解决: two用div包裹起来, 并且触发div的bfc(overflow: hidden), 

 

b: 两个元素是父子关系, 父子元素都有margin-top, 取最大那个

 

例子:最终margin-top 是 20px;

 

 解决方案: 和塌陷一样

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!