給元素設定了float屬性後脫離了文件流,不佔據位置,所以其父級無法將其包裹,需要清除浮動。
**段:
.box
.item
style>
class="box">
class="item">
div>
div>
效果:
方法一:給父級設定高度
**段:
.box
問題解決:
缺點:擴充套件性不好,沒有解決根本問題
方法二:給父級加上float屬性:
**段:
.box
成功解決:
缺點:需要給每個父級加浮動,一直延續到html,margin左右自動失效,太麻煩
方法三:加空標籤,給空標籤清除浮動
**段:
.box
.item
.clearfix
style>
head>
class="box">
class="item">
div>
class="clearfix">
div>
div>
body>
成功解決:
缺點:增加了多餘標籤,ie6下有最小高度(解決後ie6下還有2px偏差)
方法四:新增換行標籤
**段:
.box
.item
style>
class="box">
class="item">
div>
clear="all" />
div>
body>
成功解決:
缺點:和新增空標籤一樣,引入了多餘標籤,同時不符合工作中結構、樣式、行為三者分離的要求。
方法五:給父級加上inline-block
**段:
.box
成功解決:
缺點:margin左右auto失效
方法六:使用after偽類,給浮動元素的父級加上此類:現在最常用的方法
**段:
.box
.clearfix
:after
.item
style>
class="box clearfix">
class="item">
div>
div>
成功解決:
注:在ie6下,要用zoom屬性觸發haslayout:
.clearfix
方法七:使用overflow屬性
**段:
.box
.item
style>
class="box">
class="item">
div>
div>
成功解決:
缺點:需要配合寬度或者zoom相容ie6 ie7(其實還有一些問題)
以上這七種清除浮動的方法,其中利用after偽類方法最常使用,讀者可以根據實際情況選擇最佳方法,歡迎糾錯。
css清除浮動方法
html 浮動 不想被浮動影響 css wrap float nofloat 現在雖然加了乙個空的div,但是並沒有給它清除浮動,所以目前的效果就是第三個子元素.nofloat還是收到浮動的影響。ok,現在給.clear加上清除浮動 clear ps 這種情況比較適合元素之間是垂直排列布局的,為了不...
css 清除浮動方法
1 額外標籤法 隔牆法 style clear both div 2 父級 overflow hidden style overflow hidden div 3 父級 after 偽元素 clearfix after clearfix 4 父級雙偽元素 clearfix before,clearf...
css 清除浮動的方法
不新增清除浮動的時候 這裡我沒有給最外層的div.outer 設定高度,但是我們知道如果它裡面的元素不浮動的話,那麼這個外層的高是會自動被撐開的。但是當內層元素浮動後,就出現了一下影響 1 背景不能顯示 2 邊框不能撐開 3 margin 設定值不能正確顯示 清除浮動方法1 新增新的元素,給他的cs...