Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS 2.1规范:8.3.1折叠边距:无法正确解释特殊情况:寻求澄清_Css_Margin_Collapse_Margins - Fatal编程技术网

CSS 2.1规范:8.3.1折叠边距:无法正确解释特殊情况:寻求澄清

CSS 2.1规范:8.3.1折叠边距:无法正确解释特殊情况:寻求澄清,css,margin,collapse,margins,Css,Margin,Collapse,Margins,在折叠页边距时,显示: 如果有间隙的图元的上边缘和下边缘 相邻的,其边缘与相邻的 但由此产生的利润不会随着时间的推移而崩溃 父块的底边距 以下是我的尝试,当然是不稳定的,试图从这句话中得出一些东西: 该语句考虑元素X,其: X有间隙,因此“clear:left;”、“clear:right;”中的任意一个 或“clear:both;”属性已应用于它 由于X的上边缘和下边缘相邻, 在正常流量的情况下,我们考虑以下情况: X上有一个父级,下有一个兄弟级,或 X上有一个兄弟姐妹,下有一个兄弟姐妹,

在折叠页边距时,显示:

如果有间隙的图元的上边缘和下边缘 相邻的,其边缘与相邻的 但由此产生的利润不会随着时间的推移而崩溃 父块的底边距

以下是我的尝试,当然是不稳定的,试图从这句话中得出一些东西:

该语句考虑元素X,其:

  • X有间隙,因此“clear:left;”、“clear:right;”中的任意一个 或“clear:both;”属性已应用于它

  • 由于X的上边缘和下边缘相邻, 在正常流量的情况下,我们考虑以下情况:

    • X上有一个父级,下有一个兄弟级,或
    • X上有一个兄弟姐妹,下有一个兄弟姐妹,或
    • X上面有一个兄弟姐妹,下面有一个父母
  • 然后规范说,“它的边距和相邻的边距一起塌陷 但最多只能有一个跟随兄弟姐妹, 如上所述,这基本上意味着如果 兄弟姐妹随后,边缘崩溃

  • 但由此产生的利润率并没有随着底部利润率的下降而下降 我不明白这一点:如果底部边距 与同级的上边距相邻,则不能与 父块的底部边距,除非同级块的高度为零

我完全糊涂了。有人能更好地解释一下这句话吗
是这样的,也许有几个说明性的例子?谢谢。

首先,有几点需要澄清:

  • 带有间隙的元素是将
    clear
    设置为非
    none
    的元素,并且实际上正在清除浮动

  • 上下边距相邻的元素表示彼此相邻,而不是同级。我们讨论的是一个没有边框或填充的0高度元素,因此元素的上边距和下边距相互接触。当这种情况发生时,它们一起崩溃,这种情况称为崩溃

现在,让我们看一个例子:

正文{
边框:实心;
}
#容器{
利润率:20px;
背景:蓝色;
}
#漂浮{
浮动:左;
宽度:20px;
高度:20px;
背景:红色;
}
#清除{
清除:左;
边缘顶部:10px;
边缘底部:20px;
}
#跟随{
边缘顶部:30px;
}


网络上有无数关于崩溃页边距的资源。读一大堆,并尝试一些代码。喂。谢谢你的回复。我读过那篇文章,除了“清除的元素(它们不会用父块的下边距折叠它们的上边距”)之外,我什么都懂了。这里有一张图片会很有用。如果一个元素的上边距与父块的下边距重合,对我来说,这意味着子元素的高度为零。毫无意义。也许有人能解释一下,这是个好问题。试图摆弄一把小提琴来证明这条规则实际上并没有证明任何东西。因此,我向所有人提出挑战,尤其是那些试图结束这一局面的人,拿出一把小提琴,在这种情况下,它实际上没有崩溃的边缘。哦。。。我想给你们指出的是,那有一个关于奖金如何运作的页面,但是页面没有提到一些条件,那就是你至少需要75次代表才能开始一次。我会看看我是否能纠正这一点。我认为Sitepoint上的声明只是一个糟糕的措辞,我不知道它们的意思,因为正如你正确陈述的那样,除非孩子身高为零,否则就没有意义。我已经对它进行了测试,正如你所期望的那样,这是合乎逻辑的行为。我不同意整体崩溃是一个糟糕的想法——它实际上是CSS的“段落间隔”机制,在它的时代是非常有意义的。唯一的问题是,它真的应该被限制为分隔文本。但是CSS无法区分只包含IFC的两个块容器和任何其他性质的两个块级框,IMO是我们今天必须处理的疯狂的真正原因。(我知道你可以做
p+p{margin top:1em}
或其他什么,但这不是重点。)我并没有说整体崩溃是一个可怕的想法。唯一的崩溃是。用下一个
的上边距折叠一个
的下边距是一个好主意。当一个
为空时,将该
的上边距与该
的下边距折叠是错误的。