我很早就注意到,当两个块元素彼此相邻时,它们的边缘相互叠加.像这样的东西:

无论<div>■找margin: 1em,但是当margin1的margin-bottom有冲突margin2的margin-top,都只是保证金堆叠在彼此.见这里:http://jsfiddle.net/39XmC/
我所期待的是这样的:

两者<div>实际上在每个边距上都给出了空格,并且没有在彼此的边缘上叠加.
我知道这可以通过浮动或溢出元素来解决.我的问题:
至于为什么会这样……
边距与元素大小无关;他们只是关于喘息的空间。(您可能会注意到,甚至box-sizing不会让您将边距视为元素大小的一部分。因为它不是。)
边距1em意味着“我需要在自己周围至少留出 1em 的空间才能看起来不拥挤。” 如果你有两个相邻的元素,都说他们想要至少 1em 的空间,那么将它们间隔 1em 可以满足这两个条件,同时浪费最少的空间。如果您牢记这一点,缩小边距的规则会更有意义。