CSS中的三種基本的定位機制

2021-10-04 05:54:16 字數 2840 閱讀 3251

css 有三種基本的定位機制:普通流、浮動和絕對定位。

一、普通流

除非專門指定,否則所有框都在普通流中定位。普通流中元素框的位置由元素在(x)html中的位置決定。塊級元素從上到下依次排列,框之間的垂直距離由框的垂直margin計算得到。行內元素在一行中水平布置。

二、定位

1、相對定位

被看作普通流定位模型的一部分,定位元素的位置相對於它在普通流中的位置進行移動。使用相對定位的元素不管它是否進行移動,元素仍要佔據它原來的位置。移動元素會導致它覆蓋其他的框。

"box1">box1

"box2">box2

"box3">box3

效果如下圖所示:

2、絕對定位

相對於已定位的最近的祖先元素,如果沒有已定位的最近的祖先元素,那麼它的位置就相對於最初的包含塊(如body)。絕對定位的框可以從它的包含塊向上、右、下、左移動。

絕對定位的框脫離普通流,所以它可以覆蓋頁面上的其他元素,可以通過設定z-iindex屬性來控制這些框的堆放次序。

"div1">

"div2">

效果如下圖所示:

備註:相對於已相對定位的祖先元素對框進行絕對定位,在大多數現代瀏覽器中都可以實現的很好。

3、固定定位

相對於瀏覽器視窗,其餘的特點類似於絕對定位。

三、浮動

浮動的框可以在左右移動,直到它的外邊框邊緣碰到包含框或另乙個浮動框的邊緣。浮動的框脫離普通流。

如果包含塊太窄,無法容納水平排列的浮動元素,那麼其他浮動塊向下移動,直到有足夠多的空間。如果浮動元素的高度不同,那麼當它們向下移動時可能會被其他浮動元素卡住。

行內元素會圍繞著浮動框排列。

請看下圖,當把框 1 向右浮動時,它脫離文件流並且向右移動,直到它的右邊緣碰到包含框的右邊緣:

再請看下圖,當框 1 向左浮動時,它脫離文件流並且向左移動,直到它的左邊緣碰到包含框的左邊緣。因為它不再處於文件流中,所以它不佔據空間,實際上覆蓋住了框 2,使框 2 從檢視中消失。

如果把所有三個框都向左移動,那麼框 1 向左浮動直到碰到包含框,另外兩個框向左浮動直到碰到前乙個浮動框。

如下圖所示,如果包含框太窄,無法容納水平排列的三個浮動元素,那麼其它浮動塊向下移動,直到有足夠的空間。如果浮動元素的高度不同,那麼當它們向下移動時可能被其它浮動元素「卡住」:

清除浮動

簡單介紹下清除浮動的2中方法。

方法一:結合:after選擇器清除浮動。

"box1 clear">

"box2">

box2

lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦

方法二,在容器最後新增乙個空元素並且清理它。

"box1 clear">

"box2">

box2

lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦 lallalalalalal啦啦啦

"empty" />

效果均如下所示:

附錄:所有主流瀏覽器都支援 position 屬性。position屬性規定元素的定位型別,影響元素框生成的方式。

可能的值:

css 定位屬性允許你對元素進行定位。

屬性 及其 描述

position 把元素放置到乙個靜態的、相對的、絕對的、或固定的位置中。

top 定義了乙個定位元素的上外邊距邊界與其包含塊上邊界之間的偏移。

right 定義了定位元素右外邊距邊界與其包含塊右邊界之間的偏移。

bottom 定義了定位元素下外邊距邊界與其包含塊下邊界之間的偏移。

left 定義了定位元素左外邊距邊界與其包含塊左邊界之間的偏移。

overflow 設定當元素的內容溢位其區域時發生的事情。

clip 設定元素的形狀。元素被剪入這個形狀之中,然後顯示出來。

vertical-align 設定元素的垂直對齊方式。

z-index 設定元素的堆疊順序。

css中的三種基本定位機制

css中的三種基本定位機制 a.普通文件流 b.定位 相對定位 絕對定位 固定定位 c.浮動 1.普通流中,元素位置由文件順序和元素性質決定,塊級元素從上到下依次排列,框之間的垂直距離由框的垂直margin值計算得到,行內元素在一行中水平布置 2.相對定位看作普通流的一部分,移動後的元素仍佔據原來的...

CSS有三種基本的定位機制

css有三種基本的定位機制 普通流,浮動和絕對定位.普通流 在普通流中元素框的位置由元素在html中的位置決定,1 元素position屬性為static或繼承來的static時就會按照普通流定位 2 position屬性的relative 相對定位 值時,它將出現在他所在的位置上,然後可以通過設定...

CSS中的三種基本的定位機制(普通流 定位 浮動)

普通流中元素框的位置由元素在xhtml中的位置決定。塊級元素從上到下依次排列,框之間的垂直距離由框的垂直margin計算得到。行內元素在一行中水平布置。普通流就是html文件中的元素如塊級元素 行內元素依據他們的顯示屬性按照在文件中的先後次序依次顯示。是塊級元素就佔一行或多行,是行內元素就和其他元素...