position:fixed 總結

一、position:fixed 是什麼定位

position:fixed 是CSS中的一種定位方式,與 position:absolute 相似,但是兩者有很大的區別。position:fixed 使元素相對於瀏覽器視口固定位置,即使頁面滾動,元素也不會移動。

position:fixed 可以用於創建導航欄、懸浮提示等元素。

下面是一個例子

<style>
#fixed {
 position: fixed;
 right: 0;
 top: 0;
 width: 200px;
 height: 100px;
 background-color: red;
 color: white;
}
</style>
<div id="fixed">
FIXED POSITION
</div>

二、position 什麼意思

position 是一個CSS屬性,用於確定元素在文檔流中的位置。通常也有四種值可以取:static、relative、absolute、fixed。

三、position 屬性選取

1. position:fixed 與 z-index

fixed 元素可以運用 z-index 進行層疊順序的控制,但是請注意 z-index 在子父級元素內的層級關係。下面是一個例子:

<style>
#fixed {
 position: fixed;
 right: 0;
 top: 0;
 width: 200px;
 height: 100px;
 background-color: red;
 color: white;
 z-index: 1;
}
#normal {
 width: 100%;
 height: 1500px;
 background-color: blue;
}
</style>
<div id="fixed">
FIXED POSITION
</div>
<div id="normal"></div>

2. position:fixed 搭配 transform

如果想讓 fixed 元素既可以上下拖拽,又可左右移動,可以給元素設置 transform 屬性。下面是一個例子:

<style>
#fixed {
 position: fixed;
 right: 0;
 top: 0;
 width: 200px;
 height: 100px;
 background-color: red;
 color: white;
 transform: translate(0, 0);
}
</style>
<script type="text/javascript">
var element = document.getElementById("fixed");
var xStart, yStart, xDrag, yDrag;
element.addEventListener('mousedown', function(event) {
 xStart = element.style.getPropertyValue("transform").split(',')[4];
 yStart = element.style.getPropertyValue("transform").split(',')[5];
 xDrag = event.clientX;
 yDrag = event.clientY;
 element.addEventListener('mousemove', drag)
 element.addEventListener('mouseup', cancelDrag);
});

function drag(event){
 var newPosX = parseInt(xStart) + event.clientX - parseInt(xDrag);
 var newPosY = parseInt(yStart) + event.clientY - parseInt(yDrag);
 element.style.transform = 'translate(' + newPosX + 'px, ' + newPosY + 'px)';
}

function cancelDrag(event){
 element.removeEventListener('mousemove', drag);
 element.removeEventListener('mouseup', cancelDrag);
}
</script>
<div id="fixed">
DRAGGABLE FIXED POSITION
</div>

3. position:fixed 與跨域情況

position:fixed 在跨域情況下會有很多問題。因為 fixed 定位是相對於瀏覽器視口的,而不是相對於父級元素的。如果跨域,那麼 fixed 定位的層級可能會受到限制,導致無法固定在瀏覽器視口的某個位置上。

4. position:fixed 的兼容性問題

position:fixed 在早期的 IE 所有版本中都不支持,需要使用 JavaScript 進行模擬。而且在 Safari 手機瀏覽器中,fixed 元素在鍵盤彈出時有時會失效,需要注意。

在使用 position:fixed 時,需要注意以上幾個方面,才能更好地應用於實際開發中。

原創文章,作者:ZFHCF,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/333071.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZFHCF的頭像ZFHCF
上一篇 2025-01-27 13:34
下一篇 2025-01-27 13:34

相關推薦

  • 深入理解position屬性

    一、position初步認識 在CSS中,position屬性用來設置元素的定位方式,可選值有static、relative、absolute、fixed和sticky。 其中,s…

    編程 2025-04-13
  • MySQL Position函數的使用及優化

    一、Position函數概述 Position函數是MySQL中用來查找一個字元串在另一個字元串中的位置,並返回這個位置的函數。 Position函數常用於字元串的匹配搜索,它可以…

    編程 2025-04-12
  • 深入了解background-position

    一、基本介紹 在CSS中設置背景圖片時,我們可以通過background-position屬性來改變背景圖像的位置。其語法為:background-position: X軸位置 Y…

    編程 2025-02-01
  • CSS Position在HTML中的應用

    在HTML中,CSS Position屬性是非常常用的一個屬性,它可以控制HTML元素在頁面中的定位。本文將從多個方面對CSS Position在HTML中的應用做詳細的闡述。 一…

    編程 2025-01-13
  • 探秘CSS中的Object Position

    在開發網頁時,使用CSS定位非常常見。而其中的Object Position屬性是一個不太常用的屬性。本文將對Object Position進行全面解析,詳細介紹它的用法、作用以及…

    編程 2025-01-09
  • fixed定位的作用和用法詳解

    在進行網頁製作時,為了使得布局更加完美,我們需要使用一些定位方式。其中,fixed定位是一種非常重要的定位方式,它可以將一個元素固定在窗口的某個位置,不隨頁面滾動而滾動。下面從多個…

    編程 2025-01-02
  • 如何實現fixed居中

    一、CSS的position屬性 position屬性是CSS中常用的屬性之一,可以設定元素的定位方式。其中,fixed的定位相當於是絕對定位,但是相對於整個頁面進行定位。因此,可…

    編程 2025-01-02
  • CSS background-position詳解

    一、background-position 概述 CSS background-position 可以用來設置頁面元素(如:div、img 等)背景圖像(background-im…

    編程 2025-01-02
  • 使用relative position css實現網頁元素定位

    一、relative position 是什麼 relative position 與 static position 最大的區別是可以通過top、right、bottom、lef…

    編程 2024-12-31
  • CSS 屬性 – Position

    一、什麼是Position? Position是CSS中最基礎的布局屬性之一,它用於控制元素在頁面中的定位方式,並且可以與CSS的其他布局屬性配合使用,實現更加靈活的頁面布局。 P…

    編程 2024-12-31

發表回復

登錄後才能評論