CSS清除浮動的方法

2021-07-09 05:01:20 字數 2258 閱讀 5185

給元素設定了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...