正確理解 clear both

2022-02-25 09:12:49 字數 1278 閱讀 4213

要注意以下幾點: 

1、 浮動元素會被自動設定成塊級元素,相當於給元素設定了display:block(塊級元素能設定寬和高,而行內元素則不可以)。 

2、 浮動元素後邊的非浮動元素顯示問題。 

3、 多個浮動方向一致的元素使用流式排列,此時要注意浮動元素的高度。 

4、子元素全為浮動元素的元素高度自適應問題。 

以下詳細分析四個問題。 

一、浮動元素自動變塊級元素

首先說說塊級元素和行內元素區別,簡單的來說,塊級元素獨佔一行,可以設定寬高以及邊距,行內元素不會獨佔一行,設定寬高行距等不會起效。常見的塊級元素有:h1~h6、p、div、ul、table,常見的行內元素有:span、a、input、select等。 

示例**: 

**如下:

border: solid 1px red; background-color: olive;">浮動元素span

background-color: olive;">浮動元素span

**如下:

margin: 10px 0 0 10px;"> 

浮動div

跟在浮動元素後邊的div

跟在浮動元素後邊的span

從圖中可以看出來,跟在浮動div後邊的div背景以及邊框被壓在了底下,內容卻沒有,span整體都在浮動div之上顯示。

不過在ie6這個效果卻很怪異,如圖:

第二種辦法,使用萬能clear: 

**如下:

.clearfix:after 

* html .clearfix 

*:first-child + html .clearfix 

**如下:

(2)無clear:both的

這樣看,應該就一目了然了:原來後邊的clear:both;其實就是利用清除浮動來把外層的div撐開,所以有時候,我們在將內部div都設定成浮動之後,就會發現,外層div的背景沒有顯示,原因就是外層的div沒有撐開,太小,所以能看到的背景僅限於一條線。 

但這種辦法就是最好了的嗎? 

我這麼說,當然答案就不是了。可以採用通過hack實現: 

複製**

**如下:

test div

**: 

正確理解 clear both

要注意以下幾點 1 浮動元素會被自動設定成塊級元素,相當於給元素設定了display block 塊級元素能設定寬和高,而行內元素則不可以 2 浮動元素後邊的非浮動元素顯示問題。3 多個浮動方向一致的元素使用流式排列,此時要注意浮動元素的高度。4 子元素全為浮動元素的元素高度自適應問題。以下詳細分析...

正確理解 clear both

原文 要注意以下幾點 1 浮動元素會被自動設定成塊級元素,相當於給元素設定了display block 塊級元素能設定寬和高,而行內元素則不可以 2 浮動元素後邊的非浮動元素顯示問題。3 多個浮動方向一致的元素使用流式排列,此時要注意浮動元素的高度。4 子元素全為浮動元素的元素高度自適應問題。以下詳...

正確理解Handle物件

上古時期的程式設計師,肯定都知道handle物件,一般中文翻譯成控制代碼.一般的handle在實現上,都是乙個整數,而這個整數可以理解為乙個指標,指標指向的位址呢,又儲存了另外乙個指標.之所以這麼搞,是因為這樣搞可以讓真實的物件可以挪動.考慮乙個乙個物件a,儲存在handle裡面,由於某種原因,我需...