小编典典

如何禁用边距折叠?

all

有没有办法完全禁用边距折叠?我找到的唯一解决方案(称为“展开”)需要使用 1px 边框或 1px
填充。我觉得这是不可接受的:无关的像素无缘无故地使计算复杂化。有没有更合理的方法来禁用这种边距折叠?


阅读 74

收藏
2022-05-30

共1个答案

小编典典

保证金崩盘主要有两种类型:

  • 折叠相邻元素之间的边距
  • 折叠父元素和子元素之间的边距

使用填充或边框将仅在后一种情况下防止折叠。此外,任何与应用于父级overflow的默认值 ( )
不同的值都将防止崩溃。visible因此,两者overflow: autooverflow: hidden将具有相同的效果。使用时唯一的区别可能hidden是如果父级具有固定高度,隐藏内容的意外后果。

其他属性,一旦应用于父级,可以帮助修复此行为:

  • float: left / right
  • position: absolute
  • display: inline-block / flex

您可以在这里测试所有这些:http: //jsfiddle.net/XB9wX/1/。

我应该补充一点,像往常一样,Internet Explorer 是个例外。更具体地说,在 IE 7
中,当为父元素指定某种布局时,边距不会折叠,例如width.

资料来源:Sitepoint 的文章 Collapsing
Margins

2022-05-30