css - 如何禁用边距折叠?

标签 css margin

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

最佳答案

边距崩溃主要有两种类型:

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

只有在后一种情况下,使用填充或边框才能防止折叠。此外,应用于父级的 overflow 的任何不同于其默认值(visible)的值都将防止崩溃。因此,overflow: autooverflow: 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/

相关文章:

html - 将鼠标悬停在链接上时,想要在不移动边框的情况下向左移动链接

android studio margin 变化

html - 整个网页左侧不需要的边距/间隙

CSS悬停防止 child 受到影响

html - 如何在 HTML 输出的 Markdown 中设置单个列表的样式

javascript - 调整 iframe 的大小以适应另一个页面

Jquery - 加载具有随机边距/位置的 div

html - 如何将 div 与 "display: inline-block"连续放置,没有边距?

html - 如何制作固定位置的页眉?

html - 带标题的 CSS 砌体网格?