清除浮動哦

2021-07-27 23:02:51 字數 2420 閱讀 6583

1)清除浮動:清除對應的單詞是 clear,對應css中的屬性是 clear:left | right | both | none;

2)閉合浮動:更確切的含義是使浮動元素閉合,從而減少浮動帶來的影響

我們所說的是閉合浮動

普通流

2.浮動

浮動的框可以左右移動,直至它的外邊緣遇到包含框或者另乙個浮動框的邊緣。浮動框不屬於文件中的普通流,當乙個元素浮動之後,不會影響到塊級框的布局而只會影響內聯框(通常是文字)的排列,文件中的普通流就會表現得和浮動框不存在一樣,當浮動框高度超出包含框的時候,也就會出現包含框不會自動伸高來閉合浮動元素(「高度塌陷」現象)。顧名思義,就是漂浮於普通流之上,像浮雲一樣,但是只能左右浮動。

正是因為浮動的這種特性,導致本屬於普通流中的元素浮動之後,包含框內部由於不存在其他普通流元素了,也就表現出高度為0(高度塌陷)。在實際布局中,往往這並不是我們所希望的,所以需要閉合浮動元素,使其包含框表現出正常的高度。

絕對定位

其一,通過在浮動元素的末尾新增乙個空元素,設定 clear:both屬性,after偽元素其實也是通過 content 在元素的後面生成了內容為乙個點的塊級元素;

1)新增額外標籤

通過在浮動元素末尾新增乙個空的標籤例如 div style=」clear:both」,其他標籤br等亦可。

class="wrap"

id="float1">class="main left">.maindiv>

class="side left">.sidediv>

div>

div>

class="footer">.footerdiv>

優點:通俗易懂,容易掌握

缺點:可以想象通過此方法,會新增多少無意義的空標籤,有違結構與表現的分離,在後期維護中將是噩夢,這是堅決不能忍受的,所以你看了這篇文章之後還是建議不要用了吧。

2)使用 br標籤和其自身的 html屬性

這個方法有些小眾,br 有 clear=「all | left | right | none」 屬性

class="wrap"

id="float2">class="main left">.maindiv>

class="side left">.sidediv>

"all" />

div>

class="footer">.footerdiv>

3)父元素設定 overflow:hidden

通過設定父元素overflow值設定為hidden;在ie6中還需要觸發 haslayout ,例如 zoom:1;

class="wrap"

id="float3" style="overflow:hidden; *zoom:1;">class="main left">.maindiv>

class="side left">.sidediv>

div>

class="footer">.footerdiv>

優點:不存在結構和語義化問題,**量極少

缺點:內容增多時候容易造成不會自動換行導致內容被隱藏掉,無法顯示需要溢位的元素;

4)父元素設定 overflow:auto 屬性

同樣ie6需要觸發haslayout,演示和3差不多

優點:不存在結構和語義化問題,**量極少

缺點:多個巢狀後,firefox某些情況會造成內容全選;ie中 mouseover 造成寬度改變時會出現最外層模組有滾動條等,firefox早期版本會無故產生focus等,不要使用

6)父元素設定display:table

優雅的 demo

優點:結構語義化完全正確,**量極少

缺點:盒模型屬性已經改變,由此造成的一系列問題,得不償失,不推薦使用

7)使用:after 偽元素

需要注意的是 :after是偽元素(pseudo-element),不是偽類(某些css手冊裡面稱之為「偽物件」),很多閉合浮動大全之類的文章都稱之為偽類,不過csser要嚴謹一點,這是一種態度。

由於ie6-7不支援:after,使用 zoom:1觸發 haslayout。

該方法源自於: how to clear floats without structural markup

原文全部**如下:

content:"."

; display:block

; height:0

; visibility:hidden

; clear:both

; }.clearfix

優點:結構和語義化完全正確,**量居中

缺點:復用方式不當會造成**量增加

其二,通過設定父元素 overflow 或者display:table 屬性來閉合浮動。

原理見有道雲筆記收藏

浮動 清除浮動

在css布局中分為內聯元素 display inline 和塊狀元素 display block 塊狀元素缺省會佔據一行,可設定高度寬度以及邊距,而內斂元素不會也不能設定。常見的內斂元素有 a span input select,常見的塊狀元素有 h1 h6,p,div,ul,table。浮動元素是...

CSS清除浮動 清除float浮動

css清除浮動方法集合 一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不...

CSS清除浮動 清除float浮動

css清除浮動方法集合 一般浮動是什麼情況呢?一般是乙個盒子裡使用了css float浮動屬性,導致父級物件盒子不能被撐開,這樣css float浮動就產生了。浮動產生樣式效果截圖 本來兩個黑色物件盒子是在紅色盒子內,因為對兩個黑色盒子使用了float浮動,所以兩個黑色盒子產生了浮動,導致紅色盒子不...