關於清除浮動

2022-07-10 02:09:09 字數 1617 閱讀 1537

一,為什麼要清除浮動

doctype html

>

<

html

>

<

head

lang

="en"

>

<

meta

charset

="utf-8"

>

<

title

>clearfix

title

>

<

style

>

div

.div1

.div2

style

>

head

>

<

body

>

<

div

class

="div1"

>

<

div

class

="div2"

>

div>

div>

bodhtml>

由於div2設定了float:left使其脫離文件流,沒有形成div1包裹div2的效果

二 如何清除浮動

1.解決這個bug的方法有很多,比較簡單的做法如下**,

<

div

class

="div1"

>

<

div

class

="div2"

>

div>

<

div

style

="clear: both;"

>

div>

div>

插入乙個"空白"div,設定起clear:both清除浮動,clear屬性的原理是為元素新增足夠多的外邊距,使其垂直下降到 浮動框的下面。但是這中做法的缺點就是新增了無用的標籤,使html不能符合語義規範。

2.當前流行的乙個做法是利用偽類:before和:after,**如下,

.clearfix 

.clearfix:after, .clearfix:before

<

div

class

="div1 clearfix"

>

<

div

class

="div2"

>

div>

div>

新增消除浮動的類.clearfix後能正常顯示div。注,zoom:1是相容ie7。

3.還有一種方法是給外層父級div設定屬性overflow:hidden。

.div1 

.div2

三,關於clear的另乙個用途:實現垂直布局

要實現如圖所示的布局,左側的2個div浮動到父級div左側

可以利用左側第二個div的clear:left來實現,這樣,內部div和文字就是同意級別,而不用將左側的2個div包裹起來。

關於清除浮動

一 為什麼要浮動 我個人認為是為了頁面的美觀,方便布局,但是浮動是把雙刃劍,有利也有弊 二 什麼時候需要清除浮動 很多種原因。1.如果父元素沒有設定高度,而子級元素設定了浮動,這樣會導致父元素高度的坍塌。2.導致背景不能顯示,如果對父級設定了背景屬性,導致父級不能撐開,會影響到背景不能正常開啟。3....

關於浮動與清除浮動

當給乙個子元素設定浮動屬性時,這個子元素就脫離了文件流,從形式上不再屬於父元素,因此它的父元素的高度就會受到影響,內容不被撐開,為了清除子元素浮動帶來的負面影響,可以有以下方法解決 1,給直接父元素設定inline block或float屬性 不推薦 2,在浮動的子元素後面加上br標籤並設定clea...

關於浮動與清除浮動

當給乙個子元素設定浮動屬性時,這個子元素就脫離了文件流,從形式上不再屬於父元素,因此它的父元素的高度就會受到影響,內容不被撐開,為了清除子元素浮動帶來的負面影響,可以有以下方法解決 1,給直接父元素設定inline block或float屬性 不推薦 2,在浮動的子元素後面加上br標籤並設定clea...