css浮動 float 及清除浮動的幾種實用方法

2021-09-29 01:27:33 字數 3071 閱讀 3330

css浮動是現在網頁布局中使用最頻繁的效果之一,而浮動可以幫我們解決很多問題,那麼就讓我們一起來看一看如何使用浮動.

自窗體自上而下分成一行一行,並在每行中按從左到右的順序排放元素。

當然我們也可以讓占用文件流的元素轉換成不佔文件流,這就要用到css中屬性position、float、display來控制。預設情況下,所有元素都處在文件流中,四種情況將使得元素離開文件流:浮動float、絕對定位absolute、相對定位fixed、元素不顯示display:none,這種情況不佔文件流的空間,而普通元素的位置基於文件流。(了解)浮動float用於設定標籤的居左浮動和居右浮動,浮動後的元素不屬於html文件流,需要用清除浮動把文件拽回到文件流中。

浮動值:

left:向左浮動

right:向右浮動

特徵:塊元素可以在一行顯示

浮動特徵

1.按照乙個指定的方向移動,遇到父級的邊界或者其他的元素停下來

2.塊元素可以在一行顯示,寬由內容撐起來

3.行內元素支援設定寬高

4.脫離文件流  float不是完全脫離文件流的

塊元素 :對於塊元素,後面未浮動的元素所佔的位置是浮動元素的位置

注意:內容會把浮動元素的位置保留,

行內元素:行內元素會接著浮動元素顯示,內容會形成環繞浮動元素的樣子

5.造成父級塌陷(破壞性)

通過例子來解釋浮動

1.頁面上有兩個塊元素,每個塊元素獨佔一行

2.我們希望它能併排顯示,這時就可以使用float,我們先給紅的div加float:left,發現兩個是在一行了,但是它們重疊在了一起。

3.這是因為加了float的元素不但會消除獨佔一行的特性,而且還會「飄」在其它元素之上。

4.我們為藍色的div也加上float,這時正常了,兩個div顯示在一排。

浮動的目的是使元素變為可在一行顯示,且可設定寬和高的元素。它的作用類似於inline-block;只不過它是脫離了文件流了。

浮動的元素脫離文件流後,對塊元素而言,從上向下的文件流中找不到浮動的元素,所以在浮動元素後加塊元素,塊元素會被覆蓋掉。

浮動的元素脫離文件流後,這個浮動的塊元素雖然脫離了文件流,但對它後面的行元素而言,從左至右的位置中,是要以這個浮動元素的位置開始的。

.d1

.d2

這是個不浮動的超級鏈結

描述:清除浮動是在使用了浮動之後必不可少的,為了**布局的效果,清除浮動也變得非常麻煩。

屬性:clear

值:left、right、both

清除浮動的常用方式:

1.結尾處加空div標籤 clear:both (或在下乙個元素上加clear:both;)

2.父級div定義 偽元素:after

3.父級div定義 overflow:hidden

a.剛才的例子已經完成了併排布局,這時我需要加第三個塊元素,起名d3,這時發現,d3是被壓在了前兩個塊之下

b.剛才說過,加了float的元素會飄在其它元素之上,實際上是因為它們已經不屬於html正常的文件流了,後面再有多少個元素和它無關,它始終飄在上面

c.我們只是想讓它不獨佔一行,並沒有想讓它不屬於文件流。所以可以用clear:both把float元素拽回文件流。

clear:both清除浮動**

clear不只是both乙個屬性,它還有left和right,它們兩個的作用是分別清除float的左浮動和右浮動。

左浮動

未浮動右浮動

clear:both;的正確使用方式

1.加了clear:both的元素需要為塊元素。這樣clear:both才能清除塊「從上而下」的文件流中被浮動的元素。

2.不要加在外層的div外面,如果這個外層div沒有浮動,那這個clear:both是不起作用的。

.d1

.d2.d3

.clear

這裡加了乙個清除浮動

不起作用

.box  //overflow:auto也是可以的

.left,.right

after偽元素新增的內容預設為行內元素,所以需要設定display:block

after偽元素新增的內容預設為行內元素,所以需要設定display:block

.box::after

.left,.right

使用浮動別忘記清除浮動,記住,無論現在浮動是否對你有影響,都要楊成良好的習慣,否則等後續修改**的時候可能會影響整個布局。

更多專業前端知識,請上

【猿2048】www.mk2048.com

CSS清除浮動 清除float浮動

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

CSS清除浮動 清除float浮動

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

CSS清除浮動 清除float浮動

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