Firefox和IE通用的三則網站重構實用技巧-CSS教程
使用zoom、overflow解決IE6、IE7、FF下嵌套容器清除浮動問題
我們經常碰到一個容器外面套一個邊框,邊框高度隨容器高度變化,但是當邊框內容器設置了浮動屬性後,外框就不跟隨變化,這時就需要清除浮動。給外邊框容器加上overflow:auto的屬性,可以解決IE7和FF下的清除浮動問題,但是IE6下不生效,我們需要使用IE的一個私有屬性zoom使IE5.5 的浏覽器達到外框跟隨變化的效果。
需要注重的幾個細節問題,例如我們建立一個樣式為text的容器,寬200象素,高度自適應,外面包一個樣式為content的10象素的外框。(如圖1)
圖1
代碼如下:
<style type="text/css">
.content{ border:10px solid #F00;}
.text{ width:200px; height:300px; background:#000;}
</style>
<body bgcolor="#FFFFFF">
<div class="content">
<div class="text"></div>
</div>
</body>
假如我們為text容器設置了左浮動的屬性,並將content容器定義了200象素的寬,就需要為content容器增加overflow:auto屬性,以清除text容器的浮動。否則FF下則會出現問題。(如圖2)
圖2
代碼如下:
<style type="text/css">
.content{ border:10px solid #F00; width:200px; overflow:auto;}
.text{ width:200px; height:300px; background:#000; float:left;}
</style>
<body bgcolor="#FFFFFF">
<div class="content">
<div class="text"></div>
</div>
</body>
除此之外還有一種比較非凡的情況,假如在不設定content寬度的情況下,僅僅使用overflow:auto,在IE5.5 下是無法實現清除浮動的效果的。為此我們需要使用一個IE的私有屬性zoom來使IE下達到所需效果。
代碼如下:
<style type="text/css">
.content{ border:10px solid #F00; overflow:auto; zoom:1;}
.text{ width:200px; height:300px; background:#000; float:left;}
</style>
<body bgcolor="#FFFFFF">
<div class="content">
<div class="text"></div>
</div>
</body>