起源:
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
.clearfix { display: inline-table; }
/* Hides from IE-mac */
* html .clearfix { height: 1%; }
.clearfix { display: block; }
/* End hide from IE-mac */
說明:
由於此方法針對的瀏覽器或成為歷史(尤其是Mac下的IE5 ),或正在靠近標準的路上,這個方法就不再那麼與時俱進了。
拋掉對IE/Mac 的支援之後,新的清除浮動方法:
/* new clearfix */
.clearfix:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
* html .clearfix { zoom: 1; } /* IE6 */
*:first-child+html .clearfix { zoom: 1; } /* IE7 */
說明:
IE6 和IE7 都不支援:after 這個偽類,因此需要後面兩個來觸發IE6/7的haslayout,以清除浮動。幸運的是IE8支援:after 偽類。因此只需要針對IE6/7的hack了。