为什么css规范需要在垂直方向上有边缘折叠。但是,不是在水平方向上。
我知道这种崩溃多年了,我试图找到这种崩溃的原因。规范说的是这样的: enter link description here
在大多数情况下,折叠垂直边距后,结果在视觉上更令人愉悦,更接近设计师的期望。有关折叠边距的说明,请参阅边距,填充和边框的示例。
这是真正的原因还是有其他历史原因?
答案 0 :(得分:1)
考虑这个标记
Para 1
<p>
Para 2
<p>
Para 3
</p>
Para 4
根据Paragraph in HTML5的定义,Para [1-4]文本恰好形成四段而没有其他内容。更重要的是,整体构成了body元素的有效内容,就像在CSS发明之前一样。
所以期望它会显示为四个均匀分布的段落。确实如此。并且一直都做到了。
现在考虑第1段到第2段。因为它们之间存在1em间隙,所以第一个<p>
元素(包含“第2段”)必须具有1em的上边距。
现在考虑Para 3到Para 4.因为它们之间存在1em间隙,所以第二个<p>
元素(包含“Para 3”)必须具有1em的下边距。
所以<p>
元素必须同时具有1em的上边距和下边距。
现在考虑第2段到第3段。如果第一个<p>
元素(包含“第2段”)的下边距为1em,第二个<p>
元素(包含“第3段”) )具有1em的上边距,并且没有边缘崩溃,它们之间的差距将是2em,不符合我们的等间距段落要求。
为了使间隙正确为1em,边距必须折叠。