首頁 web前端 css教學 詳細分析css float 屬性以及position:absolute 的區別_基礎教程

詳細分析css float 屬性以及position:absolute 的區別_基礎教程

May 16, 2016 pm 12:03 PM
float

1.float 屬性定義元素在哪個方向浮動。以往這個屬性總應用於圖像,使文字圍繞在圖像周圍,不過在 CSS 中,任何元素都可以浮動。浮動元素會產生一個區塊級框,而不論它本身是何種元素。 div一個典型的區塊級元素,會單獨佔據一行。

先看看最基本的區塊級元素如何排列的。 html程式碼,以下樣式都是基於此。

複製程式碼 程式碼如下:

        phpcnltphp class="box1">
        框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
    }

執行結果:

詳細分析css float 屬性以及position:absolute 的區別_基礎教程

由於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
    }

執行結果:

詳細分析css float 屬性以及position:absolute 的區別_基礎教程

至於中間的縫隙,追溯到本質原因是元素之間的空白符引起的,所以在父元素設定fone-size的大小,可以調節空白縫隙的大小。

複製程式碼 程式碼如下:

.boxBg{
    margin: 0 auto;
    width:500px;
    height:200px;
    border:2px solid #ccc;
    font-size:34px;
>ccc;
    font-size:34px;
>
P>P>P}>

將font-size:34px之後,那麼縫隙就會變寬。

執行結果:

詳細分析css float 屬性以及position:absolute 的區別_基礎教程

同理,要去掉縫隙,那就需要將font-size:0;

複製程式碼 程式碼如下:

.boxBg{
    margin: 0 auto;
    width:500px;
    height:200px;
    border:2px solid #ccc;
    font-size:0
}

執行結果:

詳細分析css float 屬性以及position:absolute 的區別_基礎教程

如此便實現了想要的佈局,框裡邊的文字也跟著消失了,同樣也證明文字的大小影響縫隙。只需要在子元素裡重新設定就可以了。當然今天的重點不是這個。同樣的效果float:left;也可以輕鬆實現。

複製程式碼 程式碼如下:



執行結果:

詳細分析css float 屬性以及position:absolute 的區別_基礎教程

如果使用inline-block,結果會是怎麼樣呢?

複製程式碼 程式碼如下:


.box3{
    width:100px;    height:50px;
    background-color:green;
}

執行結果:

詳細分析css float 屬性以及position:absolute 的區別_基礎教程

為何框3的文字會出現在下邊而不是被框1覆蓋?接著看程式碼,看圖

複製程式碼 程式碼如下:

.box3{
    height:50px;    background-color:green;
}

執行結果:

詳細分析css float 屬性以及position:absolute 的區別_基礎教程

看出不一樣了沒?是的。 box3沒有定義width;去掉了width,不定義寬度的情況下預設寬度就是父元素的寬度,也就是說此時width:500px;浮動元素覆蓋非浮動元素,也就是框3前邊200px的寬度被浮動元素覆蓋了,之所以文字沒有被覆蓋而且文字被浮動元素擠在200px之後的位置,原因呢?

  浮動元素不會佔據區塊的空間,所以框三就是100%的父容器寬度 500px,但是浮動元素會佔據另外的空間,也就是行框空間,通俗的講就是文本所佔的空間。

這也是圖片float之後,文字會自動環繞圖片的原因。浮動元素不佔據塊級空間,但會影響塊級元素之內的文字以及內聯元素。

如此的話如果想要三個框寬度一樣,那麼只需要將框三width:300px;

複製程式碼 程式碼如下:

.box3{
    width:300px;    height:50px;
    background-color:green;
}

執行結果:

詳細分析css float 屬性以及position:absolute 的區別_基礎教程

到這裡基本的浮動說完了,那就要說說問題了,浮動雖然好用,但是也會在實際中出現很多問題。例如:

執行結果:

詳細分析css float 屬性以及position:absolute 的區別_基礎教程

很常見的問題,正常情況下。應該灰色的背景會跟框一樣高,可事實總是不會盡如人意 :)

這種情況產生的原因,都知道是因為浮動造成的,是的,是浮動,很多地方有說浮動元素會脫離普通流,所以普通元素可以當浮動元素不存在,所以這裡就不會撐開背景了,但是認真看的同學,一定會記得上邊有提到浮動元素不會影響塊框,但是會影響行框,也就是文字或內聯元素,不管是塊級元素還是內聯元素都屬於普通流,如果浮動元素脫離普通流又為何會影響行框?其實我覺得不必要糾結於這些概念性的東西。依照我的理解浮動元素就是跟塊級元素不在一個水平空間,跟文字內聯元素在一個空間,所以這裡邊框就相當於在背景之上,所以不會影響背景元素,平常所說的清除浮動,並不是說把浮動元素的float屬性去掉,而是清除其周圍的浮動元素,使其自身周圍沒有浮動元素,所以如果想讓框三到第二行,不能在框2裡邊用clear:right;而是需要在框3裡邊使用clear:left;

複製程式碼 程式碼如下:

.box3{
    float:left;    width:100px;
    height:50px;
    background-color:green;
    clear:left
    }

執行結果:

詳細分析css float 屬性以及position:absolute 的區別_基礎教程

ok!理解了這個,下來再說說如何使背景和框等高,第一種:最直接的辦法就是直接設置背景高度和框相等就Ok了,當然這個不是重點,下面來說說清除浮動。首先先來看看例子:

複製程式碼 程式碼如下:



phpcnlt

     

     /div>

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

float最大值為多少 float最大值為多少 Oct 11, 2023 pm 05:54 PM

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精度能到多少 float精度能到多少 Oct 17, 2023 pm 03:13 PM

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

c語言中float什麼意思 c語言中float什麼意思 Oct 12, 2023 pm 02:30 PM

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

資料庫float長度有哪些 資料庫float長度有哪些 Oct 10, 2023 pm 03:57 PM

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

float32位元組包括哪些 float32位元組包括哪些 Oct 10, 2023 pm 04:07 PM

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

float屬性取值有哪些 float屬性取值有哪些 Oct 10, 2023 pm 02:03 PM

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

float佈局會造成哪些問題 float佈局會造成哪些問題 Oct 10, 2023 pm 03:31 PM

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

float和double有什麼差別 float和double有什麼差別 Oct 11, 2023 pm 05:38 PM

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

See all articles