HTML clearfix清除浮動講解
一、浮動的概念
浮動的框可以向左或向右移動,直到它的外邊緣碰到包含框或另一個浮動框的邊框為止。
由于浮動框不在文檔的普通流中,所以文檔的普通流中的塊框表現(xiàn)得就像浮動框不存在一樣。
二、浮動的影響
1. 浮動會導(dǎo)致父元素高度坍塌
父元素中有子元素,并且父元素沒有設(shè)置高度,子元素在父元素中浮動,結(jié)果必然是父元素的高度為0,這也就導(dǎo)致了父元素高度塌陷問題。
浮動脫離文檔流,這個問題會對整個頁面布局帶來很大影響,如何解決高度坍塌問題,我們需要清除浮動。
三、浮動的清除
1. clear屬性的空標簽
在浮動元素后添加一個空標簽
<div class="clear"></div>
,并且在CSS中設(shè)置
.clear{clear:both;}
即可清理浮動。
- 原理:添加一個空標簽,利用CSS提高的clear:both清除浮動,讓父元素可以自動獲取到高度
- 優(yōu)點:簡單,代碼少,兼容所有瀏覽器
- 缺點:增加頁面的標簽,造成結(jié)構(gòu)的混亂
- 建議:不推薦使用,此方法已經(jīng)過時
2. :after偽元素
給浮動元素的容器添加一個clearfix的class,然后給這個class添加一個:after偽元素實現(xiàn)元素之后添加一個看不見的塊元素(Block element)清理浮動。
.clearfix:after{content:'\20';display:block;height:0;clear:both} .clearfix{zoom:1} .clear{clear:both;height:0;line-height:0;font-size:0;visibility:hidden;overflow:hidden}
- 原理:通過CSS偽元素在容器的內(nèi)部元素之后添加一個看不見的空格“/20”或點“.” ,并且設(shè)置clear屬性清除浮動。
- 優(yōu)點:瀏覽器支持較好
- 缺點:clearfix這個class需要添加zoom: 1(觸發(fā)haslayout),才能支持IE6和IE7瀏覽器
- 建議:推薦使用,設(shè)置公共類,減少CSS代碼
到此這篇關(guān)于HTML clearfix清除浮動講解的文章就介紹到這了,更多相關(guān)HTML clearfix清除浮動內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!