詳細分析css float 屬性以及position:absolute 的區別_基礎教程
1.float 屬性定義元素在哪個方向浮動。以往這個屬性總應用於圖像,使文字圍繞在圖像周圍,不過在 CSS 中,任何元素都可以浮動。浮動元素會產生一個區塊級框,而不論它本身是何種元素。 div一個典型的區塊級元素,會單獨佔據一行。
先看看最基本的區塊級元素如何排列的。 html程式碼,以下樣式都是基於此。
框1
框3
gtphpcn
css代碼:
.boxBg{
margin: 0 auto;
width:500px;
height:200px;
border:2px solid #ccc
}
background-color:red
}
.box2{
width:100px;
height:50px;
background-color:blue
width:100px;
height:50px;
background-color:green
}
執行結果:
由於div是區塊級元素,所以框會以縱向形式排列。在實際操作中往往需要將框橫向排列。有兩種方式可以實現。第一種將display:inlin-block;
.boxBg{
margin: 0 auto;
width:500px;
heightorder:200pxg
}
.box1{
width:100px;
height:50px;
background {
width:100px;
height:50px;
background-color:blue;
display:inline-block
box. BR> height:50px;
background-color:green;
display:inline-block
}
執行結果:
至於中間的縫隙,追溯到本質原因是元素之間的空白符引起的,所以在父元素設定fone-size的大小,可以調節空白縫隙的大小。
.boxBg{
margin: 0 auto;
width:500px;
height:200px;
border:2px solid #ccc;
font-size:34px;
>ccc;
font-size:34px;
>
將font-size:34px之後,那麼縫隙就會變寬。
執行結果:
同理,要去掉縫隙,那就需要將font-size:0;
.boxBg{
margin: 0 auto;
width:500px;
height:200px;
border:2px solid #ccc;
font-size:0
}
執行結果:
如此便實現了想要的佈局,框裡邊的文字也跟著消失了,同樣也證明文字的大小影響縫隙。只需要在子元素裡重新設定就可以了。當然今天的重點不是這個。同樣的效果float:left;也可以輕鬆實現。
執行結果:
如果使用inline-block,結果會是怎麼樣呢?
.box3{
width:100px; height:50px;
background-color:green;
}
執行結果:
為何框3的文字會出現在下邊而不是被框1覆蓋?接著看程式碼,看圖
.box3{
height:50px; background-color:green;
}
執行結果:
看出不一樣了沒?是的。 box3沒有定義width;去掉了width,不定義寬度的情況下預設寬度就是父元素的寬度,也就是說此時width:500px;浮動元素覆蓋非浮動元素,也就是框3前邊200px的寬度被浮動元素覆蓋了,之所以文字沒有被覆蓋而且文字被浮動元素擠在200px之後的位置,原因呢?
浮動元素不會佔據區塊的空間,所以框三就是100%的父容器寬度 500px,但是浮動元素會佔據另外的空間,也就是行框空間,通俗的講就是文本所佔的空間。
這也是圖片float之後,文字會自動環繞圖片的原因。浮動元素不佔據塊級空間,但會影響塊級元素之內的文字以及內聯元素。
如此的話如果想要三個框寬度一樣,那麼只需要將框三width:300px;
.box3{
width:300px; height:50px;
background-color:green;
}
執行結果:
到這裡基本的浮動說完了,那就要說說問題了,浮動雖然好用,但是也會在實際中出現很多問題。例如:
執行結果:
很常見的問題,正常情況下。應該灰色的背景會跟框一樣高,可事實總是不會盡如人意 :)
這種情況產生的原因,都知道是因為浮動造成的,是的,是浮動,很多地方有說浮動元素會脫離普通流,所以普通元素可以當浮動元素不存在,所以這裡就不會撐開背景了,但是認真看的同學,一定會記得上邊有提到浮動元素不會影響塊框,但是會影響行框,也就是文字或內聯元素,不管是塊級元素還是內聯元素都屬於普通流,如果浮動元素脫離普通流又為何會影響行框?其實我覺得不必要糾結於這些概念性的東西。依照我的理解浮動元素就是跟塊級元素不在一個水平空間,跟文字內聯元素在一個空間,所以這裡邊框就相當於在背景之上,所以不會影響背景元素,平常所說的清除浮動,並不是說把浮動元素的float屬性去掉,而是清除其周圍的浮動元素,使其自身周圍沒有浮動元素,所以如果想讓框三到第二行,不能在框2裡邊用clear:right;而是需要在框3裡邊使用clear:left;
.box3{
float:left; width:100px;
height:50px;
background-color:green;
clear:left
}
執行結果:
ok!理解了這個,下來再說說如何使背景和框等高,第一種:最直接的辦法就是直接設置背景高度和框相等就Ok了,當然這個不是重點,下面來說說清除浮動。首先先來看看例子:
phpcnlt
/div>

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

float最大值:1、在C語言中,float最大值是3.40282347e+38,根據IEEE 754標準,float類型的最大指數為127,尾數的位數為23,透過這種方式,最大浮點數為3.40282347 e+38;2、在Java語言中,float最大值是3.4028235E+38;3、在Python語言中,float最大值是1.7976931348623157e+308。

float精度能到6到9位小數。根據IEEE754標準,float類型可以表示的有效數字位數為大約6到9位數。需要注意的是,這只是理論上的最大精度,實際使用中由於浮點數的捨入誤差,float類型的精度往往會更低。在計算機中進行浮點數運算時,由於浮點數的精確度限制,可能會出現精度損失的情況。為了提高浮點數的精度,可以使用更高精度的資料類型,例如double或long double。

C語言中的float是一種資料型,用來表示單精確度浮點數,浮點數是一種用科學計數法表示的實數,可以表示非常大或非常小的數值。 float類型的變數可以儲存小數點後6位有效數字的數值,在C語言中,使用float類型可以進行浮點數的運算和存儲,其變數可以用於表示小數、分數、科學計數法等需要精確表示的實數,與整數型不同,浮點數可以表示小數點後的數字,並且可以進行小數的四則運算。

常見的資料庫float長度有:1、MySQL中的float類型長度,可以是4個位元組或8個位元組;2、Oracle中的float類型長度,可以是4個位元組或8個位元組;3 、SQL Server中的float類型長度,固定為8個位元組;4、PostgreSQL中的float類型長度,可以是4個位元組或8個位元組等等。

float32位元組包括符號位、指數位和尾數位,用來表示32位浮點數。詳細介紹:1、符號位(1位),用來表示數字的正負,0表示正數,1表示負數;2、指數位(8位),用來表示浮點數的指數部分,透過指數位,可以調整浮點數的大小範圍;3、尾數位(23位),用來表示浮點數的尾數部分,尾數位儲存了浮點數的小數部分。符號位決定了浮點數的正負,指數位和尾數位共同決定了浮點數的大小和精確度。

float屬性取值有left、right、none、inherit、clearinline-start、inline-end。詳細介紹:1、left,元素向左浮動,即元素會盡可能地靠近容器的左邊,其他元素會圍繞在其右側;2、right,元素向右浮動,即元素會盡可能地靠近容器的右邊,其他元素會圍繞在其左側;3、none預設值,元素不浮動,會按照正常的文件流程排列等等。

float佈局會造成有清除浮動問題、元素重疊問題、文字環繞問題和響應式佈局問題等。詳細介紹:1、清除浮動問題,當使用float佈局時,浮動元素會脫離文檔流,這可能導致父容器無法正確地包裹浮動元素,這種情況下,父容器的高度會塌陷,導致佈局混亂; 2.元素重疊問題,當多個元素使用float佈局時,它們可能會發生重疊的情況,這是因為浮動元素不再佔據正常的文檔流位置等等。

float和double區別主要在於精度、儲存和計算速度、範圍以及在程式語言中的使用。詳細介紹:1、精度不同,Float是單精度浮點數,佔用4個位元組(32位元),而double是雙精度浮點數,佔用8個位元組(64位元);2、儲存和運算速度不同,double佔用的空間更大,需要更多的儲存空間來儲存數值,在需要高效能和速度的應用程式中,使用float類型可能會更有效率;3、範圍不同等等。
