在手机端开发的时候,遇到了一个小问题,就是有些时候子元素的margin
会穿透父元素暴漏出来。
这是什么意思呢,就是本来希望给子元素和父元素的边界留个距离,结果发现根本没有生效。
本来不需要给卡片(父元素)写什么样式的,段落(子元素)之间会按照相应的距离分开。结果不得不把应该写在段落的样式写到卡片上。
最后发现只要给父元素加一个overflow: hidden
就能改变父元素对边距的判断。让子元素按照期望的方式显示。
初步猜想应该是盒模型的状态决定的,当父元素使用了float: left
或者是脱离文档流position: absolute
时,子元素margin
并不会穿透父元素。
当然这个问题肯定不是bug,应该是符合W3C的标准,只是用overflow
能更简单的实现我们想要的效果。