#每日一记#用overflow消除margin-top产生的异常

每日一记 - 但并不日更

在手机端开发的时候,遇到了一个小问题,就是有些时候子元素的margin会穿透父元素暴漏出来

这是什么意思呢,就是本来希望给子元素和父元素的边界留个距离,结果发现根本没有生效。

你希望这样
结果这样
给出完整的dom和style

本来不需要给卡片(父元素)写什么样式的,段落(子元素)之间会按照相应的距离分开。结果不得不把应该写在段落的样式写到卡片上。

样式的职责也变得不清楚

最后发现只要给父元素加一个overflow: hidden就能改变父元素对边距的判断。让子元素按照期望的方式显示。

样式的职责清晰

初步猜想应该是盒模型的状态决定的,当父元素使用了float: left或者是脱离文档流position: absolute时,子元素margin并不会穿透父元素。

当然这个问题肯定不是bug,应该是符合W3C的标准,只是用overflow能更简单的实现我们想要的效果。

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • display: none; 与 visibility: hidden; 的区别 联系:它们都能让元素不可见 区别...
    纹小艾阅读 5,763评论 0 1
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 4,722评论 0 1
  • 其实很多事情,我是不想让你知道的,怕你会有太多的想法同时给你带来压力与困扰~可能这几天我病了好想有个依靠,我的心灵...
    sj黄瓜阅读 1,807评论 0 0
  • 当你在做选择之前需要仔细考察,能拖则拖,不要急于下结论,而当你必须做决定的时候就得当机立断! 这段时间我一直想逃出...
    精进的医生阅读 3,780评论 7 6