文檔流中的元素的位置由元素在(X)HTML 中的位置決定,這就是最原始的普通流,前面講到的浮動CSS學習筆記08 浮動#可以改變元素在文件流中的位置,除了這個我們還可以透過使用CSS的position 屬性,來重新決定元素在文件流中的位置。
position 屬性值
static:預設的文檔流的佈局的方式,區塊級元素產生一個矩形框,作為文檔流的一部分,行內元素則會建立一個或多個行框,置於其父元素中。 (忽略 top, bottom, left, right 或 z-index 宣告)。
relative:相對於原來的位置進行偏移,完成的過程是先按static(float)方式產生一個元素,相對於以前的位置,移動方向和幅度由left 、right、top、bottom屬性確定,它原本所佔的空間仍保留。
absolute:元素框從文件流完全刪除,元素原先在正常文件流中所佔的空間會關閉,就好像元素原來不存在一樣,根據父容器(必須是非static的定位的容器)進行位置定位。元素定位後產生一個區塊級框,而不論原來它在正常流中產生何種類型的框。
fixed: 固定在瀏覽器的某個位置,瀏覽器scroll時不會改變。
static就是預設的佈局方式,這裡不做介紹。
relative 相對定位
1 nbsp;html> 2 3 4 <meta> 5 <title>CSS相对定位</title> 6 7 <style> 8 div {height: 100px; width: 100px; border: 1px solid #000; background-color: yellow;} 9 </style>10 11 12 <div>box1</div>13 <div>box2</div>14 <div>box3</div>15 16
這時候box1與box2按照static的佈局方式在頁面上進行定位,現在對box2進行相對定位
結果如下,box2的位置進行了偏移(這個偏移是相對於box2原先的位置進行偏移的),並沒有影響到box1與box3的位置
注意,在使用相對定位時,無論是否進行移動,元素仍然佔據原來的空間。因此,移動元素會導致它覆蓋其它框。
absolute 絕對定位
#絕對定位使元素的位置與文件流無關,因此不佔據空間。這一點與相對定位不同,相對定位實際上被視為普通流定位模型的一部分,因為元素的位置相對於它在普通流中的位置。
1 nbsp;html> 2 3 4 <meta> 5 <title>CSS绝对定位</title> 6 7 <style> 8 .parent {height: 200px; width: 200px; background-color: yellow;} 9 .child {height: 100px; width: 100px; background-color: red; top: 0px; right: 0px; position: absolute;}10 </style>11 12 13 <div>14 parent15 <div>16 child17 </div>18 </div>19 20
現在給parent也加入一個定位屬性
效果如下,可以看到child的位置發生了變化
從上面的現象可以總結出一點:絕對定位的元素的位置相對於最近的已定位祖先元素,如果元素沒有已定位的祖先元素,那麼它的位置相對於最初的包含塊(這個例子中指body元素與parent)。
要使用絕對定位時,必須要有2個條件
1、必須給父元素增加定位屬性,一般建議使用position:relative
2、給子元素加絕對定位position:absolute,同時要加方向屬性(指left、right、top 、bottom屬性)
fixed 固定定位
與absolute定位類型類似,但它的相對移動的座標是視圖(螢幕內的網頁視窗)本身。由於視圖本身是固定的,它不會隨瀏覽器視窗的捲軸滾動而變化,除非你在螢幕中移動瀏覽器視窗的螢幕位置,或改變瀏覽器視窗的顯示大小,因此固定定位的元素會始終位於瀏覽器視窗內視圖的某個位置,不會受文件流影響。
1 nbsp;html> 2 3 4 <meta> 5 <title>CSS固定定位</title> 6 <style> 7 .back-top {height: 40px; width: 40px; background-color: blue; color: #fff; position: fixed; bottom: 10px;right: 10px;} 8 </style> 9 10 11 <div>回到顶部</div> 12 <p>段落1</p>13 <p>段落2</p>14 <p>段落3</p>15 ...16 <p>段落49</p>17 <p>段落50</p>18 19
效果如下,回到頂部這個div始終在同一個位置,博客頁面上的也是使用的固定定位。
總結
絕對定位根據父元素為基準點進行定位,它會脫離文件流,不佔用原來位置空間
相對定位根據自身為基準點進行定位,離開原始位置,但是還是會佔用原來位置空間
固定定位根據瀏覽器視窗為基準點進行定位,它始終在一個位置,不會移動
以上是相對定位,絕對定位與固定定位詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

htmltagsareessentialforwebdevelopmentastheyandendenhancewebpages.1)semantictagsimproveaccessibilityandseo.2)semanteLayOut,語義和互動性。 3)poseriblesibilityandseoandseo.3)poseriblesoftagscanoftagscanoftagscanoptagscanoptimizeperefeneandimizeanDenSuroceRecRoscRoss-BrowserCrowserCercerComercompatibility。

一致的HTML編碼風格很重要,因為它提高了代碼的可讀性、可維護性和效率。 1)使用小寫標籤和屬性,2)保持一致的縮進,3)選擇並堅持使用單引號或雙引號,4)避免在項目中混合使用不同風格,5)利用自動化工具如Prettier或ESLint來確保風格的一致性。

在Bootstrap4中實現多項目輪播的解決方案在Bootstrap4中實現多項目輪播並不是一件簡單的事情。雖然Bootstrap...

如何實現鼠標滾動事件穿透效果?在我們瀏覽網頁時,經常會遇到一些特別的交互設計。比如在deepseek官網上,�...

無法直接通過CSS修改HTML視頻的默認播放控件樣式。 1.使用JavaScript創建自定義控件。 2.通過CSS美化這些控件。 3.考慮兼容性、用戶體驗和性能,使用庫如Video.js或Plyr可簡化過程。

在手機上使用原生select的潛在問題在開發移動端應用時,我們常常會遇到選擇框的需求。通常情況下,開發者傾...

在手機上使用原生select的弊端是什麼?在移動設備上開發應用時,選擇合適的UI組件是非常重要的。許多開發者�...

使用Three.js和Octree優化房間內第三人稱漫遊的碰撞處理在Three.js中使用Octree實現房間內的第三人稱漫遊並添加碰�...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

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

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

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

禪工作室 13.0.1
強大的PHP整合開發環境