浮動與定位

2022-09-10 10:57:12 字數 4106 閱讀 2280

1.浮動

(1)、標準流

這個單詞很多人翻譯為文件流,字面翻譯普通流或者標準流都可以。

(2)、浮動

浮動最早是用來控制,以便達到其他元素(特別是文字)實現「環繞」的效果。

(3)、浮動的分類

在css中,通過float屬性來定義浮動,其基本語法格式如下:

選擇器屬性值描述

left元素向左浮動

right元素向右浮動

none元素不浮動(預設值)

(4)、浮動的特徵

浮動脫離標準流,不佔位置,會影響標準流。浮動只有左右浮動。

浮動首先建立包含塊的概念。就是說,浮動的元素總是找離它最近的父級元素對齊。但

是不會超出內邊距的範圍。

1.乙個父盒子裡面的子盒子,如果其中乙個子級有浮動的,則其他子級都需要浮動。

這樣才能一行對齊顯示。

2.元素新增浮動後,元素會具有行內塊元素的特性。元素的大小完全取決於定義的大

小或者預設的內容多少浮動根據元素書寫的位置來顯示相應的浮動。

總結:1、浮動後的元素會漂浮在其他元素上邊

2、浮動後的元素是不佔原來的位置

3、浮動後的元素不能超出父元素的範圍

4、浮動後的元素在同一水平線上顯示

5、浮動後的元素會自動的轉化為行內塊元素

6、浮動後的元素不能超出父元素的內邊距和邊框

2.清除浮動

(1)、為什麼要清除浮動

由於浮動元素不再占用原文件流的位置,所以它會對後面的元素排版產生影響,為了解

決這些問題,此時就需要在該元素中清除浮動。準確地說,並不是清除浮動,而是清除浮動後造成的影響

(2)、清除浮動本質

清除浮動主要為了解決父級元素因為子級浮動引起內部高度為0的問題。

(3)、清除浮動的方法

其實本質叫做閉合浮動更好一些,記住,清除浮動就是把浮動的盒子圈到裡面,讓父盒

子閉合出口和入口不讓他們出來影響其他元素。

在css中,clear屬性用於清除浮動,其基本語法格式如下:

選擇器left不允許左側有浮動元素(清除左側浮動的影響)

right不允許右側有浮動元素(清除右側浮動的影響)

both同時清除左右兩側浮動的影響

1、額外標籤法

w3c推薦的做法是通過在浮動元素末尾新增乙個空的標籤例如

,或則其他標籤br等亦可。

優點:通俗易懂,書寫方便

缺點:新增無意義的標籤,結構化語義化較差

2、父級新增overflow屬性方法

可以給父級新增:overflow為hidden|auto|scroll都可以實現。

優點:**簡潔

缺點:內容增多時候容易造成不會自動換行導致內容被隱藏掉,無法顯示需要溢位的

元素3、偽元素清除浮動

在父元素中使用after偽元素清除浮動

:after方式為空元素的公升級版,好處是不用單獨加標籤了

3.定位

(1)、定位屬性

元素的定位屬性主要包括定位模式和邊偏移兩部分。

1、邊偏移

邊偏移屬性描述

top頂端偏移量,定義元素相對於其父元素上邊線的距離

bottom底部偏移量,定義元素相對於其父元素下邊線的距離

left左側偏移量,定義元素相對於其父元素左邊線的距離

right右側偏移量,定義元素相對於其父元素右邊線的距離

也就說,以後定位要和這邊偏移搭配使用了,比如top:100px;left:30px;等等。

2、定位模式(定位的分類)

在css中,position屬性用於定義元素的定位模式,其基本語法格式如下:

選擇器position屬性的常用值

值描述static自動定位(預設定位方式)

relative相對定位,相對於其原文件流的位置進行定位

absolut

絕對定位,相對於其上乙個已經定位的父元素進行定位

efixed固定定位,相對於瀏覽器視窗進行定位

(3)、靜態定位

靜態定位是所有元素的預設定位方式,當position屬性的取值為static時,可以將元素

定位於靜態位置。所謂靜態位置就是各個元素在html文件流中預設的位置。

上面的話翻譯成白話:就是網頁中所有元素都預設的是靜態定位哦!其實就是標準流

的特性。

在靜態定位狀態下,無法通過邊偏移屬性(top、bottom、left或right)來改變元素的

位置。(4)、相對定位

相對定位是將元素相對於它在標準流中的位置進行定位,當position屬性的取值為

relative時,可以將元素定位於相對位置。

對元素設定相對定位後,可以通過邊偏移屬性改變元素的位置,但是它在文件流中的位

置仍然保留。

注意:1.相對定位最重要的一點是,它可以通過邊偏移移動位置,但是原來的所佔的位置,

繼續占有。

2.其次,每次移動的位置,是以自己的左上角為基點移動(相對於自己來移動位置)

就是說,相對定位的盒子仍在標準流中,它後面的盒子仍以標準流方式對待它。(相對

定位不脫標)

如果說浮動的主要目的是讓多個塊級元素一行顯示,那麼定位的主要價值就是移動位

置,讓盒子到我們想要的位置上去。

(5)、絕對定位

[注意]如果文件可滾動,絕對定位元素會隨著它滾動,因為元素最終會相對於正常流的

某一部分定位。

當position屬性的取值為absolute時,可以將元素的定位模式設定為絕對定位。

注意:絕對定位最重要的一點是,它可以通過邊偏移移動位置,但是它完全脫標,完

全不佔位置。

1、父級沒有定位

若所有父元素都沒有定位,以瀏覽器為準對齊(document文件)。

2、父級有定位

絕對定位是將元素依據最近的已經定位(絕對、固定或相對定位)的父元素(祖先)進行定

位。子絕父相

這個「子絕父相」太重要了,是我們學習定位的口訣,時時刻刻記住的。

這句話的意思是子級是絕對定位的話,父級要用相對定位。

首先,絕對定位是將元素依據最近的已經定位絕對、固定或相對定位)的父元素(祖先)

進行定位。

就是說,子級是絕對定位,父親只要是定位即可(不管父親是絕對定位還是相對定位,

甚至是固定定位都可以),就是說,子絕父絕,子絕父相都是正確的。

所以,我們可以得出如下結論:

因為子級是絕對定位,不會占有位置,可以放到父盒子裡面的任何乙個地方。父盒子布

局時,需要占有位置,因此父親只能是相對定位.這就是子絕父相的由來。

絕對定位的盒子水平/垂直居中,普通的盒子是左右margin改為auto就可,但是對於

絕對定位就無效了,定位的盒子也可以水平或者垂直居中,有乙個演算法:

首先left50%父盒子的一半大小

然後走自己外邊距負的一半值就可以了margin-left。

(7)、固定定位

固定定位是絕對定位的一種特殊形式,類似於正方形是乙個特殊的矩形。它以瀏覽器窗

口作為參照物來定義網頁元素。當position屬性的取值為fixed時,即可將元素的定位模式

設定為固定定位。

當對元素設定固定定位後,它將脫離標準文件流的控制,始終依據瀏覽器視窗來定義自

己的顯示位置。不管瀏覽器滾動條如何滾動也不管瀏覽器視窗的大小如何變化,該元素都會

始終顯示在瀏覽器視窗的固定位置。

固定定位有兩點:

1、固定定位的元素跟父親沒有任何關係,只認瀏覽器。

2、固定定位完全脫標,不占有位置,不隨著滾動條滾動。

記憶法:就類似於孫猴子,無父無母,好不容易找到乙個可靠的師傅(瀏覽器),就聽

的師傅的,別的都不聽。

ie6等低版本瀏覽器不支援固定定位。

疊放次序

當對多個元素同時設定定位時,定位元素之間有可能會發生重疊。

在css中,要想調整重疊定位元素的堆疊順序,可以對定位元素應用z-index層疊等級

屬性,其取值可為正整數、負整數和0。

比如:z-index:2;

注意:z-index的預設屬性值是0,取值越大,定位元素在層疊元素中越居上。

如果取值相同,則根據書寫順序,後來居上。

後面數字一定不能加單位。

只有相對定位,絕對定位,固定定位有此屬性,其餘標準流,浮動,靜態定位都無此屬

性,亦不可指定此屬性。

定位 與浮動

1 區塊浮動 絕對定位 脫離正常的文件流,相當於飄起來 向 飄起來,於是就有了float 1,div 是塊級元素,他會自動換行 2,對元素使用 float 浮動的話,他會自動的把定位方式變為 絕對定位 如果絕對定位之後,這個元素下面還有元素,會頂上去 注釋 正常情況下,按照上下的順序正常顯示,當浮動...

浮動與定位

浮動 浮動元素會以某種方式從文件的正常流中刪除,再按照屬性值移動到制定的位置,浮動元素從某種意義上來說自成一派,但是他仍會對文件布局產生影響。注意事項 a.如果要對乙個非替換元素進行浮動,那麼必須為該元素宣告乙個寬度,否則,根據css規則,元素寬度近似為0,元素布局將會出現意想不到的結果。b.元素宣...

浮動與定位

1 元素的浮動屬性float的 基本的格式 選擇器一般他的值包過3個在內 屬性值 描述 left 元素會向左浮動 right 向右 none 不浮動 2 清除浮動 clear的屬性 選擇器屬性值 描述 left 不允許左側有浮動元素 清除左側浮動的影響 right 不允許右側有浮動元素 清除右側浮動...