【问题标题】:CSS margin overlap instead of giving distance [duplicate]CSS边距重叠而不是给出距离[重复]
【发布时间】:2013-02-15 09:02:43
【问题描述】:

最近我遇到了边距问题,但我无法解决。 我的 HTML 看起来像这样:

<div class="info-box">Some text</div>
<div class="form">...</div>

CSS:

.info-box{
    border-radius: 5px;
    border: 1px solid red;
    margin-bottom: 20px;
}

.form{
    margin-top: 20px;
}

问题是边距彼此重叠,而不是在两个元素之间提供 40px 的距离。

我的问题是:为什么?我发现添加到 .info-box overflow:hidden 解决了这个问题,但也许有更好的方法?

【问题讨论】:

  • 你能多发一些吗,他们的容器其他css和html。

标签: html css


【解决方案1】:

再次 - 您必须了解边距的解释方式。边距是指另一个元素的位置不包括它的边距。您不能对边距求和。

【讨论】:

  • 是的,但是为什么当我添加溢出:隐藏到 .info-box 时它起作用了?我假设填充可以相加?
  • @user1785951 - 我用你的建议试过了,但它对我不起作用:) 是的,填充可以相加,因为它们在块元素内 - 它们指的是包含元素,而不是兄弟姐妹。但您必须记住,它们不能用作边距。
  • 好的,我知道了,非常感谢
  • W3C 规范规定,当两个元素的垂直边距接触时,只尊重边距值最大的元素的边距,而边距值较小的元素的边距将被尊重。崩溃到零。边距是指另一个元素的位置,不包括它的边距。您可以对填充求和,但不能对边距求和。
  • 迄今为止的最佳答案。甚至比标记为重复的文章更好。
猜你喜欢
  • 2019-04-03
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 2010-09-11
  • 2011-02-09
  • 1970-01-01
  • 2018-07-21
相关资源
最近更新 更多