搜尋
首頁web前端css教學css position屬性中:absolute與relative的區別
css position屬性中:absolute與relative的區別Jun 22, 2017 am 10:28 AM
cssposition差別屬性

如果用position來佈局頁面,父級元素的position 屬性必須為relative,而定位於父級內部某個位置的元素,最好用absolute,因為它不受父級元素的padding 的屬性影響,當然你也可以用position,不過到時候計算的時候不要忘記padding 的值。 」 

任何元素的預設position 的屬性值都是static,靜態。今天51RGB Q群186242343主要講relative(相對)以及absolute(絕對)。

【position:absolute】 
#意思是:他的意思是絕對定位,他預設參考瀏覽器的左上角,配合TOP、RIGHT、BOTTOM、LEFT(下面簡稱TRBL)進行定位,有以下屬性: 
1)如果沒有TRBL,以父級的左上角,在沒有父級的時候,他是參照瀏覽器左上角,如果在沒有父級元素的情況下,存在文本,則以它前面的最後一個文字的右上角為原點進行定位但是不斷開文字,覆蓋於上方。 
2)如果設定TRBL,且父級沒有設定position 屬性,那麼目前的absolute 則以瀏覽器左上角為原始點進行定位,位置將由TRBL 決定。 
3)如果設定TRBL,且父級設定position 屬性(無論是absolute 或relative),則以父級的左上角為原點進行定位,位置由TRBL 決定。即使父級有Padding 屬性,對其也不起作用,說簡單點就是:它只堅持一點,就以父級左上角為原點進行定位,父級的padding對其根本沒有影響。

以上三點可以總結出,若想把一個定位屬性為absolute 的元素定位於其父級元素內,只有滿足兩個條件, 
第一:設定TRBL 
第二:父級設定Position 屬性 
上面的這個總結非常重要,可以保證你在用absolue 佈局頁面的時候,不會錯位,並且隨著瀏覽器的大小或顯示器解析度的大小,而不改變。
只要有一點不滿足,元素就會以瀏覽器左上角為原點,這就是初學者容易犯錯的一點,已經定位好的板塊,當瀏覽器的大小改變,父級元素會隨之改變,但是設定Position 屬性為 

absolute 的板塊和父級元素的位置改變,錯位了,這就是因為此時元素以瀏覽器的右上角為原點的原因。
初學者很容易犯錯的是,不清楚Position 屬性為absolute 的板塊,若想定位到父級板塊中,並且當瀏覽器的大小改變或顯示器的分辨率改變,佈局不改變,是需要滿足兩個條件的,只要有一點不滿足,元素就會以瀏覽器左上角為原點,從而導致頁面佈局錯位。

【position:relative】 
#意思是相對定位,他是預設參考父級的原始點為原始點,無父級則以文字流的順序在上一個元素的底部為原始點,配合TRBL 進行定位,當父級內有padding 等CSS 屬性時,當前級的原始點則參照父級內容區的原始點進行定位,有以下屬性: 
1)如果沒有TRBL,以父級的左上角,在沒有父級的時候,他是參考瀏覽器左上角(到這裡和absolute 第一條一樣),如果在沒有父級元素的情況下,存在文本,則以文本的底部為原始點進行定位並將文字斷開(和absolut 不同)。
2)如果設定TRBL,且父級沒有設定position 屬性,仍舊以父級的左上角為原點進行定位(和absolut 不同) 
# 3)如果設定TRBL,且父級設定position 屬性(無論是absolute 或relative),則以父級的左上角為原點進行定位,位置由TRBL 決定(前半段和absolut 一樣)。如果父級有Padding 屬性,那麼就以內容區域的左上角為原點,進行定位(後半段和absolut 不同)。

以上三點可以總結出,無論父級存在不存在,無論有沒有TRBL,均是以父級的左上角進行定位,但是父級的Padding 屬性會對其影響。 
#綜合上面對relative 的敘述,我們就可以將position 屬性為relative 的p 視成可以用TRBL 進行定位的的普通p,或者說只要將我們平時佈局頁面的p 的CSS 屬性中加上position :relative 後,就不只是用float 佈局頁面了,還可以用TRBL 進行佈局頁面了,或者說加上position:relative 的p 也可以像普通的p 進行佈局頁面了,只不過還可以用TRBL進行佈局頁面。但是position 屬性為absolute 不可以用來佈局頁面,因為如果用來佈局的話,所有的p 都相對於瀏覽器的左上角定位了,所以只能用於將某個元素定位於屬性為absolute 的元素的內部某個位置,這樣我們就可以總結比較重要的結論既然屬性為absolute 的元素用來定位某元素在父級中位置,就少不了TRBL,這時候根據一開始講的absolute 的第三條,如果父級元素沒有 
position 屬性那麼absolute 元素就會脫離父級元素,但是如果是佈局頁面,父級元素position 的屬性又不能為absolute,不然就會以瀏覽器左上角為原點了,所以父級元素的position 屬性只能為relative!

屬性為relative 的元素可以用來佈局頁面,屬性為absolute 的元素用來定位某元素在父級中的位置 

總結:如果用position來佈局頁面,父級元素的position屬性必須為relative,而定位於父級內部某個位置的元素,最好用absolute,因為它不受父級元素的padding的屬性影響,當然你也可以用position,不過到時候計算的時候不要忘記padding的值。
但是定位(position)有一個缺點,不會自適應內部元素的高度,所以平常我們在佈局頁面的時候,如果某個或某些模組高度永遠不變,就可以用定位,但帆建議大家佈置頁面的時候,還是要以Float 為主,Position 為輔!這樣你才能做出高品質的頁面。 

最後,請大家記得我這句話:「佈局頁面,Float為主 ,Position為輔!」

以上是css position屬性中:absolute與relative的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
H5中position属性的灵活运用技巧H5中position属性的灵活运用技巧Dec 27, 2023 pm 01:05 PM

H5中如何灵活运用position属性在H5开发中,经常会涉及到元素的定位和布局问题。这时候,CSS的position属性就会发挥作用。position属性可以控制元素在页面中的定位方式,包括相对定位(relative)、绝对定位(absolute)、固定定位(fixed)和粘附定位(sticky)。本文将详细介绍在H5开发中如何灵活运用position属性

css怎么设置i不是斜体css怎么设置i不是斜体Apr 20, 2022 am 10:36 AM

在css中,可以利用“font-style”属性设置i元素不是斜体样式,该属性用于指定文本的字体样式,当属性值设置为“normal”时,会显示元素的标准字体样式,语法为“i元素{font-style:normal}”。

html怎样把div放在底部html怎样把div放在底部Mar 02, 2021 pm 05:44 PM

html把div放在底部的方法:1、使用position属性将div标签相对于浏览器窗口进行定位,语法“div{position:fixed;}”;2、设置到底部距离为0来把div永远放置于页面底部,语法“div{bottom:0;}”。

CSS 布局属性优化技巧:position sticky 和 flexboxCSS 布局属性优化技巧:position sticky 和 flexboxOct 20, 2023 pm 03:15 PM

CSS布局属性优化技巧:positionsticky和flexbox在网页开发中,布局是一个非常重要的方面。良好的布局结构可以提高用户体验,使页面更加美观和易于导航。而CSS布局属性则是实现这一目标的关键。在本文中,我将介绍两种常用的CSS布局属性优化技巧:positionsticky和flexbox,并提供具体的代码示例。一、positions

h5如何使用positionh5如何使用positionDec 26, 2023 pm 01:39 PM

在H5中使用position属性可以通过CSS来控制元素的定位方式:1、相对定位relative,语法为“style="position: relative;”;2、绝对定位absolute,语法为“style="position: absolute;”;3、固定定位fixed,语法为“style="position: fixed;”等等。

position有哪些属性position有哪些属性Oct 10, 2023 am 11:18 AM

position属性取值有static、relative、absolute、fixed和sticky等。详细介绍:1、static是position属性的默认值,表示元素按照正常的文档流进行布局,不进行特殊的定位,元素的位置由其在HTML文档中的先后顺序决定,无法通过top、right、bottom和left属性进行调整;2、relative是相对定位等等。

css怎么去除a标签鼠标样式css怎么去除a标签鼠标样式Apr 20, 2022 am 11:07 AM

在css中,可用cursor属性去除a标签的鼠标样式,该属性用于定义鼠标指针在一个元素边界范围内所用的鼠标样式,属性值设置为none时,会去除元素的鼠标样式,设置为default时,显示默认箭头样式,语法为“a{cursor:none}”。

CSS 层叠属性解读:z-index 和 positionCSS 层叠属性解读:z-index 和 positionOct 20, 2023 pm 07:19 PM

CSS层叠属性解读:z-index和position在CSS中,布局和样式的设计是非常重要的。而在设计中,经常需要对元素进行层叠和定位。两个重要的CSS属性,即z-index和position,可以帮助我们实现这些需求。本文将深入探讨这两个属性并提供具体的代码示例。一、z-index属性z-index属性用于定义元素在垂直方向上的堆叠顺序。元素的层叠

See all articles

熱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.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具