浮動的設計初衷:實現文字環繞效果。
浮動的特徵:脫離標準文件流,導致父元素高度塌陷,向左或者向右浮動直到遇到其他的浮動元素。
浮動產生的原因:盒子裡的子元素使用了浮動屬性,脫離了文件流,導致父元素無法被撐開。
浮動造成的***:父級的背景無法顯示,父級的邊框無法被撐開,以及父級與子級之間的margin和padding遭到破壞。
清除浮動的方法:
方法一:在底部插入「clear:both」宣告的元素。
原理:在底層元素新增clear屬性來清除浮動,是因為clear屬性不允許被清除浮動的元素的左邊/右邊挨著浮動元素,即清除所有浮動。
方案1:html層面,在浮動元素後面使用乙個空元素,如
缺點:裸露太多的div標籤。
lang="en">
charset="utf-8">
清除浮動title>
type="text/css">
.div_first
.div_second
.div_third
.div_fourth
style>
head>
class="div_first">
class="div_second">
div>
class="div_third">
div>
class="div_fourth">
div>
div>
body>
html>
lang="en">
charset="utf-8">
清除浮動title>
type="text/css">
.div_first
.div_second
.div_third
.clearfix
:after
.clearfix
style>
head>
class="div_first clearfix">
class="div_second">
div>
class="div_third">
div>
div>
body>
html>
其中clearfix可以精簡為:
.clearfix
:after
方法二:讓父元素bfc(ie8+)或者haslayout(ie6/ie7)
bfc:塊狀格式化上下文,特徵:bfc容器是乙個隔離的容器,和其他元素互不干擾;我們可以用觸發兩個元素的bfc來解決垂直邊距摺疊問。bfc可以包含浮動,清除浮動;通常用來解決浮動父元素高度坍塌的問題。
給父元素新增以下屬性來觸發bfc:
例如給父級元素設定overflow:hidden來清除浮動
.div_first
總結:通常使用after偽元素作為清除浮動主要方式。.clearfix只應用在浮動元素的父級元素上。
浮動的注意點:脫離文件流,也就是將元素從普通的布局排版中拿走,其他盒子在定位的時候,會當做脫離文件流的元素不存在而進行定位。需要注意的是,使用float脫離文件流時,其他盒子會無視這個元素,但其他盒子內的文字依然會為這個元素讓出位置,環繞在周圍。而對於使用position:absolute脫離文件流的元素,其他盒子與其他盒子內的文字都會無視它。
CSS3 清除浮動
一 目的 通過本文,讓大家可以明白清除浮動的原理和幾種方法,最後得出一種本文認為最好用的方法。本文也會同步到我的個人 二 內容簡介1 引入,還原浮動本來的意義 2 說明,實際開發中常用浮動來做什麼 3 提問,為什麼要清除浮動 4 回答,如何清除浮動以及常用的幾種方法 5 結論,得出本文認為最好用的方...
css3 清除浮動
eg 三個div,父級div下面有兩個div分別float left和float right 1 style 2.container 3.fl 4.fr 5style 6 body 7 div class container 8 div class fl 向左浮動 div 9 div class f...
CSS清除浮動 清除float浮動
css清除浮動方法集合 一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不...