首頁 web前端 前端問答 html5中清除浮動的屬性是什麼

html5中清除浮動的屬性是什麼

Dec 22, 2021 pm 03:44 PM
clear屬性 html5 清除浮動

在html5中,清除浮動的屬性是「clear」。 clear屬性規定元素的哪一側不允許其他浮動元素,當給浮動元素設定「clear:both;」樣式後,可以清除浮動,讓元素左右兩側都不允許浮動。

html5中清除浮動的屬性是什麼

本教學操作環境:windows7系統、CSS3&&HTML5版、Dell G3電腦。

在html5中,清除浮動的屬性是「clear」。

clear屬性規定元素的哪一邊不允許其他浮動元素

#下面我們來詳細了解clear屬性。

首先要知道,div是塊級元素,在頁面中獨佔一行,自上而下排列,也就是傳說中的流。如下圖:

 

可以看出,即使div1的寬度很小,頁面中一行可以容下div1和div2,div2也不會排在div1後邊,因為div元素是獨佔一行的。

       請注意,上述這些理論,是指標準流中的div。

       小菜認為,無論多麼複雜的佈局,其基本出發點都是:「如何在一行中顯示多個div元素」。

       明顯標準流已無法滿足需求,這就要使用浮動。      

       浮動可理解為讓某一div元素脫離標準流,並浮在標準流之上,且標準流不是一個層次。

       例如,假設上圖中的div2浮動,那麼它將脫離標準流,但div1、div3、div4仍在標準流當中,所以div3會自動向上移動,佔據div2的位置,重新組成一個流。如圖:

 

從圖中可以看出,由於對div2設定浮動,因此它不再屬於標準流,div3自動上移頂替div2的位置,div1、 div3、div4依序排列,成為一個新的流。又因為浮動是漂浮在標準流之上的,因此div2擋住了一部分div3,div3看起來變「矮」了。

這裡div2用的是左浮動(float:left;),可以理解為漂浮起來後靠左排列,右浮動(float:right;)當然就是靠右排列。這裡的靠左、靠右是說頁面的左、右邊緣。

如果我們把div2採用右浮動,會是以下效果:

#此時div2靠頁面右邊緣排列,不再遮擋div3,讀者可以清晰的看到上面所講的div1、div3、div4組成的流。

目前為止我們只浮動了一個div元素,多個呢?

下面我們把div2和div3都加上左浮動,效果如圖:

同理,由於div2、div3浮動,它們不再屬於標準流,因此div4會自動上移,與div1組成一個「新」標準流,而浮動是漂浮在標準流之上,因此div2又擋住了div4。

咳咳,到重點了,當同時對div2、div3設定浮動之後,div3會跟隨在div2之後,不知道讀者有沒有發現,一直到現在,div2在每個例子中都是浮動的,但並沒有跟隨到div1之後。因此,我們可以得出一個重要結論:

假如某個div元素A是浮動的,如果A元素上一個元素也是浮動的,那麼A元素會跟隨在上一個元素的後邊(如果一行放不下這兩個元素,那麼A元素會被擠到下一行);如果A元素上一個元素是標準流中的元素,那麼A的相對垂直位置不會改變,也就是說A的頂部總是和上一個元素的底部對齊。

div的順序是HTML程式碼中div的順序決定的。

靠近頁面邊緣的一端是前,遠離頁面邊緣的一端是後。

 

為了幫助讀者理解,再舉幾個例子。

假如我們把div2、div3、div4都設定成左浮動,效果如下:

根據上邊的結論,跟著小菜理解一遍:先從div4開始分析,它發現上邊的元素div3是浮動的,所以div4會跟著在div3之後;div3發現上邊的元素div2也是浮動的,所以div3會跟隨在div2之後;而di​​v2發現上邊的元素div1是標準流中的元素,因此div2的相對垂直位置不變,頂部仍然和div1元素的底部對齊。由於是左浮動,左邊靠近頁面邊緣,所以左邊是前面,因此div2在最左邊。

假如把div2、div3、div4都設定成右浮動,效果如下:

道理和左浮動基本上一樣,只不過需要注意一下前後對應關係。由於是右浮動,因此右邊靠近頁面邊緣,所以右邊是前,因此div2在最右邊。

假如我們把div2、div4左浮動,效果圖如下:

#依然是根據結論,div2、div4浮動,脫離了標準流,因此div3將會自動上移,與div1組成標準流。 div2發現上一個元素div1是標準流中的元素,因此div2相對垂直位置不變,與div1底部對齊。 div4發現上一個元素div3是標準流中的元素,因此div4的頂部和div3的底部對齊,並且總是成立的,因為從圖中可以看出,div3上移後,div4也跟著上移,div4總是保證自己的頂部和上一個元素div3(標準流中的元素)的底部對齊。

       至此,恭喜讀者已經掌握了添加浮動,但還有清除浮動,有上邊的基礎清除浮動非常容易理解。

       經過上邊的學習,可以看出:在元素浮動之前,也就是在標準流中,是垂直排列的,而浮動後可以理解為橫向排列。

       清除浮動可理解為打破橫向排列。

       清除浮動的關鍵字是clear,官方定義如下:

語法:

clear : none | left | right | both
登入後複製

取值:

       none  :  預設值。允許兩邊都可以有浮動對象

       left   :  不允許左邊有浮動物件

       right  : 

#       定義非常容易理解,但讀者實際使用時可能會發現不是這麼一回事。

       定義沒有錯,只不過它所描述的太模糊,讓我們不知所措。

根據上邊的基礎,假如頁面中只有兩個元素div1、div2,它們都是左浮動,場景如下:

此時div1、 div2都浮動,根據規則,div2會跟著div1後邊,但我們仍然希望div2能排列在div1下邊,就像div1沒有浮動,div2左浮動那樣。

     這時候就要使用到清除浮動(clear),如果單純根據官方定義,讀者可能會嘗試這樣寫:在div1的CSS樣式中添加clear:right;,理解為不允許div1的右邊有浮動元素,由於div2是浮動元素,因此會自動下移一行來滿足規則。

       其實這種理解是不正確的,這樣做也沒有任何效果。看小菜結論:

       

對於CSS的清除浮動(clear),一定要牢記:這個規則只能影響使用清除的元素本身,不能影響其他元素。

       如何理解呢?就拿上邊的例子來說,我們是想讓div2移動,但我們卻是在div1元素的CSS樣式中使用了清除浮動,試圖透過清除div1右邊的浮動元素(clear:right;)來強迫div2下移,這是不可行的,因為這個清除浮動是在div1中呼叫的,它只能影響div1,不能影響div2。

       以小菜定論,要讓div2下移,就必須在div2的CSS樣式中使用浮動。本範例中div2的左邊有浮動元素div1,因此只要在div2的CSS樣式中使用clear:left;來指定div2元素左邊不允許出現浮動元素,這樣div2就被迫下移一行。

那麼假如頁面中只有兩個元素div1、div2,它們都是右浮動呢?讀者此時應該已經能自己推測場景,如下:

此時如果要讓div2下移到div1下邊,要如何做呢?

同樣根據小菜定論,我們希望移動的是div2,就必須在div2的CSS樣式中呼叫浮動,因為浮動只能影響呼叫它的元素。

可以看出div2的右邊有一個浮動元素div1,那麼我們可以在div2的CSS樣式中使用clear:right;來指定div2的右邊不允許出現浮動元素,這樣div2就被迫下移一行,排到div1下邊。

相關推薦:《html影片教學

以上是html5中清除浮動的屬性是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

HTML 中的表格邊框 HTML 中的表格邊框 Sep 04, 2024 pm 04:49 PM

HTML 表格邊框指南。在這裡,我們以 HTML 中的表格邊框為例,討論定義表格邊框的多種方法。

HTML 中的巢狀表 HTML 中的巢狀表 Sep 04, 2024 pm 04:49 PM

這是 HTML 中巢狀表的指南。這裡我們討論如何在表中建立表格以及對應的範例。

HTML 左邊距 HTML 左邊距 Sep 04, 2024 pm 04:48 PM

HTML 左邊距指南。在這裡,我們討論 HTML margin-left 的簡要概述及其範例及其程式碼實作。

HTML 表格佈局 HTML 表格佈局 Sep 04, 2024 pm 04:54 PM

HTML 表格佈局指南。在這裡,我們詳細討論 HTML 表格佈局的值以及範例和輸出。

HTML 輸入佔位符 HTML 輸入佔位符 Sep 04, 2024 pm 04:54 PM

HTML 輸入佔位符指南。在這裡,我們討論 HTML 輸入佔位符的範例以及程式碼和輸出。

HTML 有序列表 HTML 有序列表 Sep 04, 2024 pm 04:43 PM

HTML 有序列表指南。在這裡我們也分別討論了 HTML 有序列表和類型的介紹以及它們的範例

在 HTML 中移動文字 在 HTML 中移動文字 Sep 04, 2024 pm 04:45 PM

HTML 中的文字移動指南。在這裡我們討論一下marquee標籤如何使用語法和實作範例。

HTML onclick 按鈕 HTML onclick 按鈕 Sep 04, 2024 pm 04:49 PM

HTML onclick 按鈕指南。這裡我們分別討論它們的介紹、工作原理、範例以及各個事件中的onclick事件。

See all articles