CSS清除浮動

1、浮動產生的原因是什麼呢

浮動是什麼情況呢?一般是一個盒子裏使用了CSS float浮動屬性,浮動的元素已經脫離了文檔流,導致父級對象盒子不能被撐開,這樣子CSS 浮動就產生了。

2、浮動產生負作用

由於浮動產生,如果對父級設置了樣式(如: background、border等),而父級不能被撐開,所以導致樣式不能顯示。還有margin padding設置值不能正確顯示由於浮動導致父級子級之間設置了css padding、css margin屬性的值不能正確表達。特別是上下邊的padding和margin不能正確顯示。

<div class="father">
		<div class="left">left</div>
		<div class="right">right</div>
</div>
<pre name="code" class="css"><style type="text/css">
        .father { width: 500px;height: auto;border: 4px solid #F31E1E;padding:4px; }
        .left { float: left;width: 200px;height:150px;border: 2px solid #9DE41C;  }
        .right { float: right;width: 200px;height: 150px;border: 2px solid #EEE818;}
</style>


由於子div元素都設置了浮動屬性,導致父元素的高度不能撐開。

3、清除浮動的方法

a.給父元素設置固定高度

<style type="text/css">
        .father { width: 500px;height: auto;border: 4px solid #F31E1E;padding:4px; }
        .left { float: left;width: 200px;height:150px;border: 2px solid #9DE41C;  }
        .right { float: right;width: 200px;height: 150px;border: 2px solid #EEE818;}
</style>

b.給父元素添加overflow屬性,給父元素添加了overflow:hidden即可實現清除浮動的效果,當然overflow:auto也是可以的。
優點是比較簡單,缺點是父元素設置固定的高度或者寬度的話可能會隱藏子元素,或者出現滾動條,影響佈局.

</pre><pre name="code" class="css"><style type="text/css">
        .father{positon:relative;top:200px;left:300px;width: 500px;height: auto;border: 4px solid #F31E1E; padding: 4	px;overflow: hidden;}
        .left{float: left;width: 200px;height:150px;border: 2px solid #9DE41C;  }
        .right{float: right;width: 200px;height: 150px;border: 2px solid #EEE818;}
	</style>



c.使用僞類before和after:


<style type="text/css">
        .father{positon:relative;top:200px;left:300px;width: 500px;height: auto;border: 4px solid #F31E1E; padding: 4px;}
        .father:after{    
                content:"";    
                display:block;    
                height:0;    
                visibility:hidden;    
                clear:both;  
} 
        .left{float: left;width: 200px;height:150px;border: 2px solid #9DE41C;  }
        .right{float: right;width: 200px;height: 150px;border: 2px solid #EEE818;}
	</style>


這種辦法就比較好了,沒有添加任何額外的HTML標籤,又不會影響頁面佈局.



發佈了28 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章