有没有办法完全禁用 margin-collapsing?我找到的唯一解决方案(名为“uncollapsing”)需要使用 1px 边框或 1px 填充。我觉得这是 Not Acceptable :无关的像素无缘无故地使计算复杂化。有没有更合理的方法来禁用这种边距折叠?
最佳答案
边距崩溃主要有两种类型:
- 折叠相邻元素之间的边距
- 折叠父元素和子元素之间的边距
只有在后一种情况下,使用填充或边框才能防止折叠。此外,应用于父级的 overflow
的任何不同于其默认值(visible
)的值都将防止崩溃。因此,overflow: auto
和 overflow: hidden
将具有相同的效果。使用 hidden
时的唯一区别可能是如果父级具有固定高度则隐藏内容的意外后果。
一旦应用于父级,可以帮助修复此行为的其他属性是:
float :左/右
position:absolute位置
显示:flex/grid
您可以在这里测试所有这些:http://jsfiddle.net/XB9wX/1/ .
我应该补充一点,与往常一样,Internet Explorer 是个异常(exception)。更具体地说,在 IE 7 中,当为父元素指定某种布局(例如 width
)时,边距不会折叠。
来源:Sitepoint 的文章 Collapsing Margins
关于css - 如何禁用边距折叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36665863/