詳解CSS中的position定位

2021-10-03 05:39:36 字數 2262 閱讀 4090

css使用position屬性定義物件定位顯示,語法如下:

position: static | relative | absolute | fixed | sticky

css提供了三種基本的定位機制:文件流、浮動和絕對定位。除非專門定義,否則所有物件都在文件流中定位,也就是說流動元素的位置由元素在文件中的位置決定,塊狀元素從上到下乙個接乙個地堆疊排列,內聯元素在一行中水平並列布置。

static: 預設值,物件遵循常規的文件流,此時4個定位偏移屬性無效。如果元素沒有特殊宣告,任何元素在預設狀態下都會以靜態方式來確定自己的顯示位置。所謂靜態定位就是各個元素在html文件流中的位置是固定的。每個元素在文件結構中的位置決足了它們被解析和顯示的順序。

注意點

使用float 屬性可以改變它們的堆疊樣式,實見並列顯示效果,但無法改變它們在垂直方向的先後顯示順序。

使用margin負值可以改變靜態物件在垂直方向的先後顯示順序。

absolute: 絕對定位,是一種特殊的網頁排版方式,定位物件脫離文件流,根據定位包含框來確定自己的顯示位置。此時偏移屬性參照的是離自身最近的定位祖先元素,如果沒有定位的祖先元素,則參照body元素。盒子的偏移位置不影響常規流中的任何元素,其margin不與其他任何margin重疊。絕對定位物件與文件流之間不會相互、直接干擾,實現物件在網頁中精確定位。

relative: 相對定位,物件遵循常規的文件流, 並且參照自身在文件流中的位置通過top、bottom、left、right這4個定位偏移屬性進行偏移,偏移時不會影響文件流中的任何元素。使用相對定位元素作為定位包含框能夠讓定位物件避免完全脫離文件流。

fixed:當出現滾動條時,物件不會隨著滾動。固定定位是絕對定位的一種特殊形式,可以實現固定定位,以瀏覽器視窗為參照來定位物件。絕對定位absolute不受文件流的影響,但受滾動條的影響,而固定定位既不受文件流影響,也不受滾動條的影響。

sticky:物件在常態時遵循文件流。它就像是relative和fixed的合體,當在螢幕中時按常規流排版,當捲動到螢幕外時則表現如fixed. 該屬性的表現是網頁設計常見的吸附效果。

當乙個元素設定了position 屬性值為absolute、relative或fixed,則該元素就具有定位參照功能,簡稱為定位包含框。當乙個定位物件被多層定位包含框包裹,就以最近的(內層)定位包含框作,參照進行定位。沒有包裹定位包含框,預設以body為定位包含框。

css使用top、right、bottom 和left定義定位物件的位置偏移

top: 設定物件參照定位包含框項邊向下偏移位置。

right: 設定物件參照定位包含框右邊向左偏移位置。

bottom設定物件參照定位包含框底邊向上偏移位置。

left: 設定物件參照定位包含框左邊向右偏移位置。

注意點:這裡的定位邊是指內邊距的內沿,定位物件是以邊框外邊的左上角為定位中心。

示例圖:

注意點:對於absolute定位和fixed定位來說,如果沒有明確水平偏移,即沒有顯式定義left 或right屬性值,則定位物件在水平方向繼續受文件流的影響:如果沒有明確垂直偏移,即沒有顯式定義top或bottom屬性值,則定位物件在垂直方向繼續受文件流的影響。

以上就是我對position定位的學習總結。

css中position的詳解

position 屬性規定元素的定位型別。目前所有的瀏覽器均支援position定位。預設值為static。這個屬性定義建立元素布局所用的定位機制。任何元素都可以定位,不過絕對或固定元素會生成乙個塊級框,而不論該元素本身是什麼型別。相對定位元素會相對於它在正常流中的預設位置偏移。1 absolute...

css中的position定位詳解

position可以取四個值 static relative absolute fixed。static是盒子的預設的定位方式,即標準流方式。relative 它的定位基準是該盒子的標準流定位,即相對於標準流定位再進行偏移。如果某個盒子採用這個定位了,則它不會影響其父盒子的定位 對它後面的兄弟盒子而...

css中position屬性使用詳解

css2.0的解釋 設定此屬性值為 absolute 會將物件拖離出正常的文件流絕對定位而不考慮它周圍內容的布局。假如其他具有不同 z index 屬性的物件已經佔據了給定的位置,他們之間不會相互影響,而會在同一位置層疊。此時物件不具有外補丁 margin 但仍有內補丁 padding 和邊框 bo...