【发布时间】:2012-07-26 19:01:33
【问题描述】:
我一直认为 CSS 边距背后的基本理论非常简单。一个边距为 10px 的 div 将在该元素周围创建一个 10px 的缓冲。当两个 div 并排放置时,两者都有 10px 的边距,导致 div 相距 20px;两个元素都有 10px 的边距,导致元素之间的距离为 20px。这似乎是正确的,也是我一直认为的事实。
但是,我最近发现,如果不是将两个 div 并排放置,并将一个放在另一个下方,那么两个元素之间的边距现在只有 10px。另一个 div 给出的 10px 边距发生了什么?为什么并排和垂直堆叠之间没有一致性?
边距本质上是说“不要在我的 x 像素范围内放置任何东西”。通过“任何东西”,这是否包括其他元素的边距?在并排的情况下,答案似乎是肯定的,边距说“不要在我的 x 像素内放置任何东西,包括你自己的边距”。在垂直的情况下,似乎允许后者?
请有人澄清一下,这样我就可以把它放在床上继续我的夜晚:)
【问题讨论】:
-
您能举个例子吗?我想我从未目睹过这种行为。
-
HTML 和 CSS 的代码示例会很有帮助。
-
天哪,他是对的:o dabblet.com/gist/3183884
-
啊,谢谢道格拉斯——你的链接最终把我带到了这里w3.org/TR/CSS21/box.html#collapsing-margins 它解释了可折叠边距的理论:垂直相邻的边距总是折叠,只形成一个边距。但是,水平对齐的边距不会折叠。我还没有读到确切的原因,但这对我来说肯定是新的
标签: css