【发布时间】:2014-11-02 14:16:56
【问题描述】:
我对 clearfix 到底是什么感到有些困惑。一方面,我们遇到零高度 div 的情况,其中浮动元素不占用空间。解决方法是在容器上放如下 clearfix 类:
.clearfix {
overflow: auto;
}
另一方面,当您不希望下一个元素浮动时,我们有一个 clearfix 似乎用于消除放置 <div style="clear: both"></div> 的需要。这种 hack 通常更加复杂,例如 HTML5Boilerplate 中的以下内容:
.clearfix:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
display: inline-block;
}
* html .clearfix {
height: 1%;
} /* Hides from IE-mac \*/
.clearfix {
display: block;
}
为什么这些概念被称为同一个东西?我说的不是同一个问题的不同解决方案,而是完全不同的两个问题(修复零高度 div 与消除对 clear: both div 的需要)。
【问题讨论】:
-
可以有不同的实现。但无论如何,想法都是一样的。
-
我想知道
Hides from IE-mac,Mac 上的 IE? :P -
“奥迪和宝马看起来不一样,怎么都叫汽车呢?”
-
@dfsq 但是当他们解决两个完全不同的问题时,怎么会有相同的想法?