好文推薦:浮動和它的工作原理? 清除浮動的技巧?
下面這兩種方法對於清除浮動都是不錯的選擇, 首先我們要知道清楚浮動一般都是在父元素上清楚浮動,即發生浮動的都是子元素,如何這個父元素要浮動,那我們就在這個父元素上再新增乙個父元素。
方法一:
其中.chearfix是包含浮動的父元素。
/*舉例如下所示:清理浮動
*/.clearfix:after
.clearfix
// 這個一般是用於ie的,不用做過多的了解
未清除浮動的**如下:
"enview code">class="
clearfix
">
class="
float_left
">這是在左邊浮動的div
class="
float_right
">這是在右邊浮動的div
class="
p">這是在浮動下面的文字
效果如下:
我們可以看到class為chearfix的div高度為0,並沒有被其中的兩個浮動的div撐開。且在clearfix下面的包含文字的div受影響到了最上面。
於是我們再class為chrarfix的div的樣式中新增上述清除浮動的**,**如下:
"enview code">class="
clearfix
">
class="
float_left
">這是在左邊浮動的div
class="
float_right
">這是在右邊浮動的div
class="
p">這是在浮動下面的文字
效果如下:
這時我們發現clearfix的div已經被撐開,並且此div下面的div(即包含文字的div)也正常排在了最下面。
其原理是,在「高階」瀏覽器中使用 :after 偽類在浮動塊後面加上乙個非 display:none 的不可見塊狀內容來,並給它設定 clear:both 來清理浮動。在 ie6 和 7 中給浮動塊新增 haslayout 來讓浮動塊撐高並正常影響文件流。
方法二:
其中的.clearfix同樣適用於包含浮動元素的父元素。**如下:
.clearfix:before, .clearfix:after原理還是一樣的。使用 :after 偽類來提供浮動塊後的 clear:both。不同的是,隱藏這個空白使用的是 display: table。而不是設定 visibility:hidden;height:0;font-size:0; 這樣的 hack。值得注意的是這裡中的 :before 偽類。其實他是來用處理 margin-top 邊摺疊的,跟清理浮動沒有多大的關係。但因為浮動會建立 block formatting context (bfc),這樣浮動元素上的另而一元素上如果剛好有 margin-bottom 而這個浮動元素剛好有margin-top 的話,應該讓他們不摺疊(雖然這種情況並不常見)。所以直接寫成下面的形式即可;.clearfix:after
.clearfix
.clearfix.wrap:after總結:.clearfix
"en上面的三種方法都可以, 其中我比較推薦第二種。">class="
header
">
class="
content
">
class="
left
">
class="
right
">
class="
footer
">
清除浮動的幾種方法
1.浮動元素下加空div 為了統一樣式,我們新建乙個樣式選擇器class命名為 clear 並且對應選擇器樣式為 clear both 然後我們在父級 結束前加此div引入class clear 樣式。這樣即可清除浮動。這個class 清除float產生浮動,可以不用對父級設定高度 也無需技術父級高...
清除浮動的幾種方法
當元素浮動時,他將不再處於普通文件流中,相當於浮在文件之上,不佔據空間,但是會縮短行寬,產生文字環繞的效果。浮動帶來的影響 1,父級的高度塌陷 2.背景不能顯示 3.變框不能撐開 4.margin值不能正確顯示 5.產生文字環繞的效果 6.由於脫離文件流,不佔位,而後面的元素未脫離文件流導致後面的元...
清除浮動的幾種方法
style float left 為了解決container容器高度塌陷問題,我們必須清除浮動 第一種方法 在container元素後加上乙個空的div標籤,然後給設定乙個clear both的樣式 第二種方法 給container容器新增 overflow auto hidden樣式 第三張方法 ...