css對於float返回文本流的作法

在設計中經常會遇到這樣的問題:
當容器內部有float樣式時,容器的高度不會被撐開。css

下面介紹兩種方法解決上面的問題

第一種:在浮動元素後面加一個clear: both;比較常見的方法。html

<style type="text/css">
.left{float:left;}
.right{float:right;}
.clear{clear:both;}
</style>
<div>
<div class="left">
</div>
<div class="right">
</div>
<div class="clear">
</div>
</div>

缺點:兼容性不強,IE6下div.clear會有高度,須要height:0,overflow:hidden來解決;頁面有冗餘代碼。
第二種方法:clearfix;最完美的解決方法。spa

.clearfix:after {
	content: ".";
	display: block;
	clear: both;
	visibility: hidden;
	line-height: 0;
	height: 0;
}
 
.clearfix {
	display: inline-block;
}
 
html[xmlns] .clearfix {
	display: block;
}
 
* html .clearfix {
	height: 1%;
}

或者設計

.clearfix{
    zoom:1
}
.clearfix:before,.clearfix:after{
    content:'\0020';
    display:block;
    overflow:hidden;
    visibility:hidden;
    width:0;
    height:0
}
.clearfix:after{
    clear:both
}

用法:在浮動外的容器上加一個clearfix類。code

<div class="clearfix">
    <div class="left">
    </div>
    <div class="right">
    </div>
</div>

或者orm

<div class="panel clearfix">
    內容···
</div>
相關文章
相關標籤/搜索