CSS相對定位和絕對定位的關係解析

2022-08-02 22:03:34
本篇文章給大家帶來了關於的相關知識,其中主要介紹了關於css的絕對定位和相對定位的相關問題,相對定位是元素在移動位置的時候,是相對於它原來的位置來說的,絕對定位是元素在移動位置的時候,是相對於它的祖先元素來說的,下面一起來看一下,希望對大家有幫助。

(學習視訊分享:、html視訊教學

position:relative 相對定位詳解

相對定位是元素在移動位置的時候,是相對於它原來的位置來說的。

相對定位的特點:

  • 它是相對於自己原來的位置來移動的(移動位置的時候參考點是自己原來的位置)

  • 原來在標準流的位置繼續佔有,後面的盒子仍然以標準流的方對待它(不脫標,繼續保留原來的位置)。因此相對定位並沒有脫標,它最典型的應用是給絕對定位當爹的。

position:absolute 絕對定位詳解

絕對定位是元素在移動位置的時候,是相對於它的祖先元素來說的(拼爹型)。

絕對定位的特點:

  • 如果沒有祖先元素或者祖先元素沒有定位,則以瀏覽器為準進行定位(Document檔案)

  • 如果祖先元素有定位(相對,絕對,固定定位),則以最近一級的有定位祖先元素為參考點移動位置。

  • 絕對定位不再佔有原有的位置(脫標)。

下面講解子絕父相的由來和具體使用:

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

  • 子級絕對定位,不會佔有位置,可以放到父盒子裡面的任何一個位置,不會影響其他的兄弟盒子。

  • 父盒子需要加定位限制子盒子在父盒子內顯示。

  • 父盒子佈局時,需要佔有位置,因此父親只能是相對定位。

總結:因為父級需要佔有位置,因此是相對定位,子盒子不需要佔有定位,則是絕對定位。

範例如下:

css標籤的相對定位和絕對定位是通過position屬性來控制的,相對定位和絕對定位不改變元素的大小形狀,只改變元素的位置。

一、position屬性的值有以下幾種:

  • static:預設值,沒有定位,元素出現在正常的流中。

  • absolute:使用絕對定位,相對於static定位以外的最近一個祖先元素進行定位。元素的位置通過left,top,right以及bottom屬性進行規定。

  • relative:使元素相對定位,相對於自己的正常位置進行定位。

  • fixed:使元素絕對定位,相對於瀏覽器視窗進行定位。元素的位置通過left,top,right以及bottom屬性進行規定。

  • inherit:規定應該從父元素繼承position屬性的值。

一個沒有使用定位的例子:

在這裡插入圖片描述
顯示結果如下:

在這裡插入圖片描述

二、相對定位

相對定位的參考點是標籤定位之前的位置,不是相對於父節點、同級節點或瀏覽器。

   相對定位的元素,通過 left、right 屬性來定義水平偏移量,top、bottom 屬性來定義垂直偏移量。left 表示相對於原本位置的左外邊界右移的距離,right 表示相對於原本位置的右外邊界左移的距離,top 表示相對於原本位置的上外邊界下移的距離,bottom 表示相對於原本位置的下外邊界上移的距離。並且,偏移量可以是正值,也可以是負值,負值表示向相反的方向移動。

   left、right、top、bottom 這 4 個屬性的值,可以是長度值(可以是絕對單位或相對單位),也可以是百分比。使用百分比時,水平偏移量根據其父元素 width 屬性的值計算得到,垂直偏移量根據其父元素 height 屬性的值計算得到。需要注意的是,在設定偏移時,如果父元素沒有顯式定義 height 屬性,就等同於 height 屬性的值為 0。

對上例進行修改,對p2使用相對定位:

在這裡插入圖片描述
效果如下:

在這裡插入圖片描述

三、絕對定位:

絕對定位相對於最近的定位的祖先元素進行定位,如果沒有祖先元素,他便使用檔案主體(body)即瀏覽器,並隨頁面捲動一起移動;如果父級有定位則看父級,如果父級沒有定位則繼續向上找父級。

絕對定位的元素是脫離檔案流的,即直接在標準流中刪除,所以元素原來的位置會被佔用。

對上例進行修改(無父節點):

在這裡插入圖片描述
效果如下:

在這裡插入圖片描述
再如(父節點有定位):

不使用絕對定位時:

在這裡插入圖片描述
效果如下:

在這裡插入圖片描述
使用絕對定位:

在這裡插入圖片描述
效果如下:

在這裡插入圖片描述

(學習視訊分享:、html視訊教學

以上就是CSS相對定位和絕對定位的關係解析的詳細內容,更多請關注TW511.COM其它相關文章!