首頁 web前端 css教學 詳解CSS中position屬性的用法

詳解CSS中position屬性的用法

Apr 02, 2020 pm 06:10 PM
css position 屬性 用法

本篇文章介紹了CSS中的position屬性的用法、分類以及使用效果展示,希望對學習css的朋友有幫助!

詳解CSS中position屬性的用法

詳解CSS中position屬性的用法

一、position屬性有什麼作用?

CSS position屬性用來指定一個元素在文件中的定位方式。 top,right,bottom 和 left屬性則決定了該元素的最終位置。 (MDN定義)。

( 推薦學習:CSS教學 )

二、position有哪些分類?

1、static

正常的佈局行為,元素在文件常規流程中目前的佈局位置。此時 top, right, bottom, left 和 z-index 屬性無效。

位置不變。

2、relative

該關鍵字下,元素先放置在未新增定位時的位置,再在不改變頁面佈局的前提下調整元素位置(因此會在此元素未新增定位時所在位置留下空白)。 position:relative 對 table-*-group, table-row, table-column, table-cell, table-caption 元素無效。

相對於自身位置的偏移。

3、absolute

不為元素預留空間,透過指定元素相對於最近的非 static 定位祖先元素的偏移,來確定元素位置。絕對定位的元素可以設定外邊距(margins),且不會與其他邊距合併。

就像從來沒有這個元素一樣,會根據此元素的非static祖先元素決定元素的偏移。

4、fixed

不為元素預留空間,而是透過指定元素相對於螢幕視窗(viewport)的位置來指定元素位置。元素的位置在螢幕滾動時不會改變。列印時,元素會出現在的每頁的固定位置。 fixed 屬性會建立新的層疊上下文。當元素祖先的 transform  屬性非 none 時,容器由視窗改為祖先。

低版本ie不相容。

5、sticky 

盒位置根據正常流計算(這稱為正常流動中的位置),然後相對於該元素在流中的flow root(BFC)和containing block(最近的塊級祖先元素)定位。在所有情況下(即使被定位元素為 table 時),此元素定位均不對後續元素造成影響。當元素 B 被黏性定位時,後續元素的位置仍依照 B 未定位時的位置來決定。 position: sticky 對 table 元素的效果與 position: relative 相同。

同時sticky還有以下問題:

1、sticky 不會觸發 BFC。

2、樣式表 z-index 無效。行內 style 寫有效。

3、sticky 是容器相關的,也就說 sticky 的特性只會在他所處的容器裡生效。強調這一點是因為在實際使用中,碰到 body 設定 height:100% 的時候 sticky 元素停在某一個位置不動了。

三、測試程式碼

測試程式碼的公共程式碼如下:

<html html>
<head>
    <meta charset="utf-8">
    <title>position</title>
</head>
<style>
    .main-app{
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .app-container {
        width: 100%;
        height: 300px;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    #the-box{
        position: static;
        /* position: relative;
        top:100px;
        left:200px; */
    }
    .sub-box {
        width: 50px;
        height: 50px;
    }
</style>
 
<body>
    <div class="main-app">
        <div class="app-container">
            <div class="sub-box" style="background: gray;"></div>
            <div id="the-box" class="sub-box" style="background: green;"></div>
            <div class="sub-box" style="background: yellow;"></div>
            <div class="sub-box" style="background: red;"></div>
        </div>
    </div>
</body>
 
</html>

我選定第二個元素作為我們本次的測試對象,測試環境為chrome 75版本。

1、static

#the-box{
    position: static;
}

結果:

正常文件流程顯示

詳解CSS中position屬性的用法

2、relative

#the-box{
    position: relative;
    top:100px;
    left:200px;
}

結果:

詳解CSS中position屬性的用法

相對於自身原來的位置偏移所設定的位置,但是原來的位置被保留下來。

3、absolute

#the-box{
    position: absolute;
    top: 100px; 
    left: 200px;
}

結果:

詳解CSS中position屬性的用法

#原來固定的位置被別的元素佔用,由於父元素是非static(flex ),所以目前元素相對於父元素偏移所設定的位置。

4、sticky

須指定 top, right, bottom 或 left 四個閾值其中之一,才可使黏性定位生效。否則其行為與相對定位相同。

此特性是元素固定在視窗的位置,如果頁面沒有滾動軸,將無法展示特性,此時,我們對它的父元素稍加更改,使頁面出現滾動軸。

.app-container {
    width: 100%;
    height: 3000px;
    display: flex;
    justify-content: center;
    align-items: center;
}
#the-box{
    position: sticky;
    top: 100px;
}

結果:

詳解CSS中position屬性的用法

當我們捲動頁面當元素距離頂部超過100px時,向下捲動時當前元素位置相對於視窗不變,此特性可以用作table固定表頭。

5、fixed

對於ie7以下版本不能使用,其實就等於固定元素在瀏覽器視窗的位置。

#the-box{
    position: fixed;
    top: 100px;
    left: 200px;
}

結果:

詳解CSS中position屬性的用法

無論如何捲動捲動軸,元素位置始終不變。

6、inherit

#

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

7、initial

initial 關鍵字用於設定 CSS 屬性為它的預設值,可作用於任何 CSS 樣式。 (IE 不支援該關鍵字)

8、unset

#名如其意,unset 關鍵字我們可以簡單理解為不設定。其實,它是關鍵字 initial 和 inherit 的組合。

當我們給一個CSS 屬性設定了unset:

如果該屬性是預設繼承屬性,則該值等同於inherit

如果該屬性是非繼承屬性,則該值等同於initial

9、revert

暫時未列入規範。

以上是詳解CSS中position屬性的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

如何用PHP開發問答社區平台 PHP互動社區變現模式詳解 如何用PHP開發問答社區平台 PHP互動社區變現模式詳解 Jul 23, 2025 pm 07:21 PM

1.PHP開發問答社區首選Laravel MySQL Vue/React組合,因生態成熟、開發效率高;2.高性能需依賴緩存(Redis)、數據庫優化、CDN和異步隊列;3.安全性必須做好輸入過濾、CSRF防護、HTTPS、密碼加密及權限控制;4.變現可選廣告、會員訂閱、打賞、佣金、知識付費等模式,核心是匹配社區調性和用戶需求。

如何用PHP搭建社交分享功能 PHP分享接口集成實戰 如何用PHP搭建社交分享功能 PHP分享接口集成實戰 Jul 25, 2025 pm 08:51 PM

在PHP中搭建社交分享功能的核心方法是通過動態生成符合各平台要求的分享鏈接。 1.首先獲取當前頁面或指定的URL及文章信息;2.使用urlencode對參數進行編碼;3.根據各平台協議拼接生成分享鏈接;4.在前端展示鏈接供用戶點擊分享;5.動態生成頁面OG標籤優化分享內容展示;6.務必對用戶輸入進行轉義以防止XSS攻擊。該方法無需複雜認證,維護成本低,適用於大多數內容分享需求。

PHP打造博客評論系統變現 PHP評論審核與防刷策略 PHP打造博客評論系統變現 PHP評論審核與防刷策略 Jul 25, 2025 pm 08:27 PM

1.評論系統商業價值最大化需結合原生廣告精準投放、用戶付費增值服務(如上傳圖片、評論置頂)、基於評論質量的影響力激勵機制及合規匿名數據洞察變現;2.審核策略應採用前置審核 動態關鍵詞過濾 用戶舉報機制組合,輔以評論質量評分實現內容分級曝光;3.防刷需構建多層防禦:reCAPTCHAv3無感驗證、Honeypot蜜罐字段識別機器人、IP與時間戳頻率限制阻止灌水、內容模式識別標記可疑評論,持續迭代應對攻擊。

如何設計段落的第一字母或第一行? 如何設計段落的第一字母或第一行? Jul 19, 2025 am 02:58 AM

要美化段落開頭提升視覺吸引力,常見做法是使用CSS的偽元素或手動設置文檔樣式。網頁開發中可用p::first-letter設置首字母樣式,如放大、加粗、變色,但需注意僅適用於塊級元素;若想突出整段首行,則用p::first-line來加樣式;在Word等文檔軟件中可手動調整首字母格式或創建樣式模板,而InDesign有內置“首字下沉”功能適合出版設計;應用時需注意細節,如避免複雜樣式影響閱讀、確保兼容性和格式一致性。

Vue成品資源網站免費入口 完整Vue成品永久在線觀看 Vue成品資源網站免費入口 完整Vue成品永久在線觀看 Jul 23, 2025 pm 12:39 PM

本文為Vue開發者和學習者精選了一系列頂級的成品資源網站。通過這些平台,你可以免費在線瀏覽、學習甚至復用海量高質量的Vue完整項目,從而快速提升開發技能和項目實踐能力。

CSS' Will-Change”屬性的目的是什麼? CSS' Will-Change”屬性的目的是什麼? Jul 23, 2025 am 03:47 AM

will-change是CSS屬性,用於提前告知瀏覽器元素可能發生的變更類型以優化性能。其核心作用是讓瀏覽器預先創建圖層提升渲染效率,常見值包括transform、opacity等,也可多屬性逗號分隔;適用於非標準屬性動畫、複雜組件過渡及用戶交互觸發的動畫;但需避免濫用,否則會導致內存佔用過高或GPU負載增加;最佳實踐為在變化發生前應用並在結束後移除。

解釋不同的CSS定位方案:靜態,相對,絕對,固定,粘性 解釋不同的CSS定位方案:靜態,相對,絕對,固定,粘性 Jul 19, 2025 am 03:19 AM

CSS定位方式共有五種:static、relative、absolute、fixed和sticky。 static為默認定位,遵循文檔流且不支持偏移;relative相對自身原位置移動,仍在文檔流中;absolute脫離文檔流,相對於最近的非static定位祖先定位;fixed相對於瀏覽器窗口固定不動,常用於固定導航欄;sticky介於relative和fixed之間,滾動到特定位置後固定,適合做粘性頭部。掌握它們的行為差異是佈局關鍵。

描述CSS規則集的結構 描述CSS規則集的結構 Jul 20, 2025 am 02:49 AM

CSS規則集由選擇器和聲明塊組成,用於定義HTML元素的樣式。 1.選擇器指定目標元素,如標籤、類或ID;2.聲明塊包含屬性和值,控制元素外觀。例如:p{color:blue;font-size:16px;}表示選中段落並設置文本顏色和字體大小。掌握這兩部分即可編寫有效CSS樣式。

See all articles