clearfix的定義:
.clearfix:after {}{
content: “.”; /**//*內容為“.”就是一個英文的句號而已。也可以不寫。*/
display: block; /**//*加入的這個元素轉換為塊級元素。*/
clear: both; /**//*清除左右兩邊浮動。*/
visibility: hidden; /**//*可見度設為隱藏。注意它和display:none;是有區別的。visibility:hidden;仍然占據空間,只是看不到而已;*/
line-height: 0; /**//*行高為0;*/
height: 0; /**//*高度為0;*/
font-size:0; /**//*字體大小為0;*/
}
.clearfix {}{ *zoom:1;} /**//*這是針對于IE6的,因為IE6不支持:after偽類,這個神奇的zoom:1讓IE6的元素可以清除浮動來包裹內部元素。*/
.clearfix的原理:
1、在IE6, 7下zoom: 1會觸發hasLayout,從而使元素閉合內部的浮動。
2、在標準瀏覽器下,.clearfix:after這個偽類會在應用到.clearfix的元素后面插入一個clear: both的塊級元素,從而達到清除浮動的作用。
3、在需要清除浮動的時候,只要寫一個.clearfix就行了,然后在需要清浮動的元素中 添加clearfix類名就好了。
.clearfix的實例
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>清楚浮動</title>
<style>
*{padding:0px; margin:0px;}
ul{border:3px solid #F00;}
ul li{width:50px; height:50px; float:left; background-color:#00F; list-style:none; margin-right:10px;}
/*
———————————————
采用偽類:after進行后續空制的高度位零的偽類層清除
———————————————
*/
.clearfix_after{zoom:1;}
.clearfix_after:after{
content:””;
display:block;
height:0;
line-height:0;
clear:both;
visibility:hidden;
}
</style>
</head>
<body>
<ul class=”clearfix_after”>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</ html>
參考資料: css用clearfix清除浮動 http://www.survivalescaperooms.com/css/32677.html
新聞熱點
疑難解答