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/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

发表回复

登录后才能评论