清除float常用方法

2021-07-10 14:15:50 字數 1808 閱讀 3956

很多前端都是用.clearfix:after  和 .clearit的組合 來清除浮動, 下面我來講解下這倆種的用法:

首先大家切頁面經常用到浮動 float:left; float:right; 有浮動就需要清除他們,

after偽類由於受到ie6 7的不支援所以大多數時候,一般都需要定義乙個固定的class名設定屬性clear的值both的div 兩者配合使用.

///第一種結構左側

右側 我是底部

1  此時不清除浮動 標準瀏覽器 和ie8+  p標籤會跑到 右側浮動div的旁邊 如圖:

ie6 ie7下 

我們可以看出,標準和ie8下 class名為main的div 沒被撐開,ie6 ie7下卻被浮動元素撐開了。

我們只需要解決 標準 和 ie8+的浮動 就可以;現在我們給main 追加個class名如下:

// 此處追加左側

右側 我是底部

因為我們在css中設定了 .clearfix:after所以浮動就不會繼承下去

我們發現  標準和 ie6+   的 main 都已被撐開如下圖:

ie6下

標準下:

其他瀏覽器下就不截圖了。

//第二種結構 此時需要用到  .clearit

此時浮動 元素 和 不需要浮動的元素 被包在同乙個 父親下左側

右側 最後乙個

ie6 下

元素繼承浮動跑到 浮動元素旁邊 而且 有自己的背景

ie8+ 和標準

最後乙個div沒繼承浮動 但是 元素內的 內容 被擋在浮動div後面,背景消失,鑽入浮動元素底下。

此時 給右側div加clearfix  class名;如下圖:      左側

右側 最後乙個

標準下和ie6+ 下 效果不變;左側

右側 //換種方法加上class為clearit的div

最後乙個

ie6+ 和標準下 如下圖:

此時 ie6+和標準下 顯示效果一致  浮動被清除;

這種簡單結構的時候 也可給 最後乙個div 設定 clear:both 這個屬性和值;也能得到此效果,

在結構比較複雜 清除頻繁的時候 不如 在浮動元素後面 加乙個

更方便,    當然 能用after偽類清除浮動的時候盡量用 偽類清除,這要 既減少冗餘**,用能便於以後修改和維護!!!

CSS清除float浮動的常用幾種方法

一 關於float浮動及其產生 在網頁布局排版中我們會經常用到float元素,float定義元素往哪個方向浮動,使元素脫離文件流,按照指定方向發生移動,遇到父級邊界或者相鄰的浮動元素停了下來 它有四個屬性值 none 預設值,元素不浮動,並會顯示在其在文字中出現的位置 left 元素向左浮動 rig...

清除浮動float的兩種常用方法

一 原頁面布局 1 html 2 css樣式 box left right bottom 3 頁面顯示效果 二 為了使class為bottom的div正常顯示在父級div的底部,需要新增屬性clear both 1 清除浮動的第一種方法 直接給class為bottom的div新增clear box ...

float以及清除

浮動的基礎作用 就是讓文字環繞。包裹性 設定了float之後,其寬度會自動調整為包裹住內容寬度,而不是撐滿整個父容器。display樣式是沒有變化的,還是block。破壞性 使用float的會無法與文字在同一行顯示,並且高度為0,所以會造成父元素高度的塌陷,因此就要清除浮動。浮動元素和絕對定位元素相...