CSS 2.1 规范中关于折叠边距的第 8.3.1 节指出:
如果具有间隙的元素的上边距和下边距相邻,则其边距会与后续兄弟的相邻边距一起折叠,但生成的边距不会与父块的底部边距折叠。
这是我的,肯定是不稳定的,试图从这个陈述中做出一些事情:
该语句考虑了一个元素 X:
X 有间隙,因此“clear: left;”、“clear: right;”中的任一个。或“明确:两者;” 属性已应用于它。
由于 X 的顶部和底部边距是相邻的,因此在正常流程的情况下,我们正在考虑以下情况:
- X 上面有一个父级,下面有一个兄弟姐妹,或者
- X 上面有一个兄弟,下面有一个兄弟,或者
- X 上面有一个兄弟姐妹,下面有一个父级
然后规范说,“它的边距与后续兄弟的相邻边距一起折叠”,但正如上面所指出的,最多可以有一个后续兄弟,所以这本质上必须意味着如果后面有一个兄弟,那么边距就会折叠。
“但生成的边距不会与父块的底部边距一起折叠。” - 我不明白这一点:如果下边距与兄弟的上边距相邻,那么除非兄弟的高度为零,否则它不能与父块的下边距相邻。
我完全糊涂了。有人可以用一些说明性的例子更好地解释这个陈述吗?谢谢。