要了解您的问题,您必须了解浮动和清除的工作原理。
0。
当你浮动一个元素时,它会从流中移除。计算容器高度时,它的垂直高度不计算在内。
1.
浮点数的预期用途是将图像添加到长文本中。文字将环绕浮动图像并增加其整体高度并垂直拉伸容器,就像浸入水中的物体增加水面高度一样。
前:
后:
2.
如果浮动图像位于非常靠近文本底部的位置,它会将其底部弹出容器底部,就像一座冰山将其顶部从水中露出一样。
3.
现在假设您的文本由段落组成,并且每个段落都以标题开头。当段落底部有图像浮动时,图像会延伸到下一段,将下一段的标题推到一边。
4.
如果您不希望这种情况发生,请对段落标题应用清除:
h2 { clear: both; }
这基本上告诉标题:不要让浮动图像将您推到一边,而是让它们将您推倒。
5.
但是网页已经不仅仅是格式化的文本,而且 HTML/CSS 没有提供任何格式化布局的方法。所以我们开始使用浮动进行布局。这很丑,就像用墙纸缝衣服一样,但我们没有更好的选择(直到 Flexbox 成为一种东西,而且似乎已经成为一种东西)。
当您将所有内容浮动在容器中时会发生什么?不会留下任何流动,没有文本可以垂直拉伸容器,并且它的高度将为零(加上边框和填充):
6.
您已经知道,为了使容器恢复其高度(环绕浮动内容),我们必须对容器应用clearfix。但是 clearfix 实际上是什么?
当您将 clearfix 应用于容器时,您:after
在 CSS 中使用在容器内创建一个附加元素,毕竟它是内容。然后你对小妈fcuker申请clearing:
.container:after {
content: '';
display: block;
clear: both;
}
7.
现在回到你的问题!使用 clearfix 的替代方法是什么?
你可能已经猜到了。
如果您在浮动元素下方有内容,只需将其应用于浮动clear: both
元素下方的下一个元素!就像我们在#4中对段落标题所做的那样。
在你的情况下:
footer { clear: both; }
这是一个演示:http ://sassmeister.com/gist/df8af8a3c7f8d3df2796