position属性absolute与relative 详解 不为人知的(fixed)绝对定位(fixed相对于浏览器窗口=不动的div)

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例 通过合理运用 position 属性及其值,你可以构建出既美观又实用的页面布局。关键是理解每种定位方式的特性,并根据实际需求灵活组合使用。 阅读详情

From:http://www.cnblogs.com/wiseblog/articles/4352007.html


Top,Right,Bottom,Left(下称TRBL,TRBL可以折分使用。)
定位一直是WEB标准应用中的难点,如果理不清楚定位那么可能应实现的效果实现不了,实现了的效果可能会走样。如果理清了定位的原理,那定位会让网页实现的更加完美。
  在CSS中关于定位的内容是: position:relative | absolute | static | fixed
  static(静态) 没有特别的设定,遵循基本的定位规定,不能通过z-index进行层次分级。
  relative(相对定位) 对象不可层叠、 不脱离文档流,参考自身静态位置通过 TRBL 定位,并且 可以通过z-index进行层次分级。
   absolute(绝对定位) 脱离文档流,通过TRBL定位.  使用absolute绝对定位时,冒泡最近的带有 absolute/ relative的 父级,如没有则冒 泡至body的TRBL为止, 可z-index进行层次分级。
  fixed(固定定位) 这里所固定的参照对像是 可视窗口而并非是body或是父级元素。 可通过z-index进行层次分级。

注:CSS中定位的层叠分级: z-index: auto | number  (auto 遵从其父对象的定位;  number  无单位的整数值。可为负数)

定位的原理:

1.可以位移的元素 (相对定位)

  在本文流中,任何一个元素都被文本流所限制了自身的位置,但是通过CSS我们依然使得这些元素可以改变自己的位置,我们可以通过float来让元素浮动,也可以通过margin来让元素产生位置移动。但事实上那并非是真实的位移,因为,那只是通过加大margin值来实现的障眼法。而真正意义上的位移是通过  TRBL 针对一个相对定位的元素所产生的。我们看下面的图:

我们看图中是一个相对定位的元素
#first {
  width:200px; height: 50px;
  padding:25px; margin:25px;
  border:25px solid #333;
  position:relative; top: 50px; left: 50px;
}
而下方是一块默认定位的黑色区块
#second {
  width:400px;  height:75px;
  padding:0; margin:0;  
   border:0;
  background-color:#333;
}
    我们看到此处在文本流的区块被上面的相对定位挡住了一部分,这说明:“ 当元素被设置相对定位或是绝对定位后,将自动产生层叠,他们的层叠级别自然的高于文本流”。除非设置其z-index值为负值。并且我们发现当相对定位元素进行位移后,表现内容已经脱离了文本流,只是在文本流中还为原来的相对定位留下了原有的总宽与总高(内容的高度或是宽度加上 margin\border\padding的数值)。这说明在相对定位中,虽然表现区脱离了原来的文本流,但是在文本流中还有此相对定位的老窩。这点要特别注意,因为在实际应用中如果相对定位的位移数值过大,那么原有的区域就会形成一块空白。
    并且我们注意,定位元素的坐标点是在margin值的左上边缘点,即图中的B点。那么所有的位移的计算将以这个点为基础进行元素的推动。

2.可以在任意一个位置的元素(绝对定位)

    如上所述:相对定位只可以在文本流中进行位置的上下左右的移动,同样存在一定的局限性,虽然他的表现区脱离了文本流,但是在文本流却依然为其保留了一席之地,这就好比一个打工的人他到了外地,但是在老家依然有一个专属于他的位置,这个位置不随他的移动而改变。但是这样很明显就会空出一块空白来,如果希望文本流抛弃这个部分就需要用到绝对定位。绝对定位不光脱离了文本流,而且在文本流中也不会给这个绝对定位元素留下专属空位。这就好比是一个工厂里的职位,如果有一个工人走了自然会要有别的工人来填充这个位置。而移动出去的部分自然也就成为了自由体。绝对定位将可以通过TRBL来设置元素,使之处在任何一个位置。在父层position属性为默认值时,TRBL的坐标原点以body的坐标原点为起始。看下图:
   
上图可知,文本流中的内容会顶替绝对定位无素的位置,一点都不会客气。而绝对定位元素自然的层叠于文本流之上。而在单一的绝对定位中,定位元素将会跑到网页的左上角,因为那里是他们的被绝对定位后的坐标原点。
3.被关联的绝对定位

   上面说的是单一的绝对定位,而在实际的应用中我们常常会需要用到一种特别的形式。即希望定位元素要有绝对定位的特性,但是又希望绝对定位的坐标原点可以固定在网页中的某一个点,当这个点被移动时绝对位定元素能保证相对于这个原坐标的相对位置。也就是说需要这个绝对定位要跟着网页移动,而并且是因定在网页的某一个固定位置。通常当网页是居中形式的时候这种效果就会显得特别的重要。要实现这种效果基本方式就是为这个绝对定位的父级设置为相对定位或是绝对定位。那么绝对定位的坐标就会以父级为坐标起始点。

虽然是如此,但是这个坐标原点却并不是父级的坐标原点,这是一个很奇怪的坐标位置。我们看一下模型图示:


我们看到,这个图中父级为黑灰色区块,子级为青色区块。父级是相对定位,子级是绝对定位。子级设置了顶部位移50个像素,左倾位移50个像素。那么我们看,子级的坐标原点并不是从父级的坐标原点位移50个像素,而是从父级块的padding左上边缘点为坐标起始点(即A 点)。而父级这里如果要产生位置移动,或是浏览器窗口大小有所变动都不会影响到这个绝对定位元素与父级的相对定位元素之间的位置关系。这个子级也不用调整数值。

这是一种很特别并且也是非常实用的应用方式。如果你之前对于定位的控制并不自如的话,相信看完对这里对定位的解释一定可以把定位使用得随心所欲。

4.总在视线里的元素 (固定定位)

    position:fixed; 他的含义就是:固定定位。这个固定与绝对定位很像,唯一不同的是绝对定位是被固定在网页中的某一个位置,而固定定位则是固定在浏览器的视框位置。

则:不会随浏览器流动条的滚动而滚动,始终保持自己在浏览器在视框中的位置:

例:

<html>
  <head>
    <title></title>
  </head>
  <body style="border: 1px solid blue;height: 100%"> 
    <div style="position:absolute;top:500px;left:60px;height:2000px;background-color:yellow;">
This tall div is absolutely positioned 500 pixels from the top and 60 pixels from the left of its containing block.
    </div>
    <div style="position:fixed;top:100px;left:60px;width:180px;background-color:red;">
这个是固定的DIV
    </div>
  </body>
</html>

SAP S4 MM模块自动记账全流程解析:从评估范围到科目分组的实战配置 本文深入解析SAP S4 MM模块自动记账的全流程,从核心概念评估范围与评估控制入手,详细阐述了评估类、科目分组等关键配置的逻辑关系。通过实战配置步骤,指导如何建立从物料移动(如收货、发料)到自动生成准确财务凭证的完整体系,确保库存价值与总账实时同步,为企业构建可靠的财务业务一体化基石。 阅读详情

相关推荐

ROS2实战:从零部署Cartographer激光SLAM系统

本文详细介绍了在ROS2 Humble环境下,从零开始部署Cartographer激光SLAM系统的完整实战流程。内容涵盖环境准备、Cartographer安装(APT与源码编译两种方式对比)、工作空间与功能包创建、核心启动文件与Lua配置文件编写、系统构建与可视化启动,以及地图保存与实战调参技巧,帮助开发者快速构建稳定可靠的机器人SLAM应用。

weixin_29213655的博客 248

position:fixed 实现相对于父元素定位

position:fixed 实现相对于父元素定位 比如:中间内容区域的大小固定为1000px,对应不同的浏览器宽度,要使得某一个资源子固定在相对于内容区域的某一个位置,就不能使用 left:xxx,right:xxx这样写 position:fixed 是对于浏览器窗口定位的,要实现相当于父元素定位,可以这样: <style> .fa { width: 500px; height: 5000px; background-color: red; margin:

weixin_44785498的博客 4827

FFTW多核优化避坑指南:从交叉编译到ELF2板载OpenMP部署全流程

本文详细介绍了在ELF2开发板(RK3588平台)上为FFTW库配置OpenMP多核并行的完整流程与避坑指南。内容涵盖从交叉编译、库依赖处理到板载部署的实战步骤,并深入分析了RK3588的big.LITTLE架构对线程调优的影响,帮助开发者在嵌入式环境中高效利用多核性能。

2a4s6d8f0g的博客 271

css盒子定位

先说相对定位relative:相对定位是指盒子的位置相对于该盒子当前位置的偏移量,相对定位移动之后的盒子仍然属于标准流,但之前在标准流当中的位置仍然占有绝对定位absolute:当没有祖先元素时,则会以页面左上角为基准偏移以祖先元素为基准,多用于嵌套的div盒子定位祖先元素若有定位则参照祖先元素的位置进行偏移,祖先元素无定位时会以最近一个有定位的祖先元素为基准偏移(上级元素没有定位,若上上级有则参照上上级元素)...

yuqu1028的博客 1068

RK3568笔记九十四:基于QT的YOLOV5目标检测

基于RK3568平台的实时目标检测应用,使用YOLOv5模型和RKNN推理引擎实现摄像头实时目标检测,并通过Qt界面显示检测结果。主要功能实时摄像头目标检测:从摄像头获取视频流,使用YOLOv5模型进行目标检测RKNN推理加速:利用RK3568内置的NPU进行模型推理加速图形界面显示:使用Qt框架构建用户界面,实时显示检测结果RGA图像处理:使用Rockchip Graphic Accelerator进行图像缩放处理。

522

Unity 面试篇|(三)设计模式篇 【全面总结 | 持续更新 | 建议收藏】

设计模式是一套被反复使用、多数人知晓、经过分类编目、代码设计经验的总结。设计模式与方法或库的使用方式不同, 你很难直接在自己的程序中套用某个设计模式。模式并不是一段特定的代码, 而是解决特定问题的一般性概念。你可以根据模式来实现符合自己程序实际所需的解决方案。常常会混淆模式和算法, 因为两者在概念上都是已知特定问题的典型解决方案。但算法总是明确定义达成特定目标所需的一系列步骤, 而模式则是对解决方案的更高层次描述。同一模式在两个不同程序中的实现代码可能会不一样。单例模式。

游戏开发小Y的博客 12万+

static(静态定位),fixed(固定定位),relative(相对定位),absolute(绝对定位)

static(静态定位),fixed(固定定位),relative(相对定位),absolute(绝对定位) Position的取值: static(静态定位) : 表示块保留在原本应该在的位置,不会重新定位。 fixed(固定定位):元素就被固定不会随着滚动条的拖动而改变位置。 relative(相对定位) :相对定位是通过将元素从原来的位置向上、向下、向左或者向右移动来定位的。 absolute(绝对定位):绝对定位,是相对于最近的且不是static定位的父元素来定位。 1.static(静

qq_44939011的博客 1万+

SAP_PP模块定额工艺路线简介

在 SAP PP(生产计划)模块中,定额工艺路线(Routing) 是生产制造流程中的核心主数据之一,用于定义制造一个产品所需的标准操作步骤。工艺路线详细描述了生产过程中的各个工序、使用的工作中心、标准作业时间、资源分配等信息,是进行生产计划、成本核算、排产控制、车间执行等功能的基础。

我小时候很黑的博客 765

CSS进阶(13)—— position:absolute如此高深,我当真不懂(中)

在上文中,我们探讨了绝对定位的包含块以及“无依赖绝对定位”的特性,本章我们来聊聊absolute的流体特性以及那些和absolute关系甚好的CSS属性。 1.absolute的流体特性 在前面一文中,我们测试了很多“无依赖绝对定位”的特殊表现,事实上在平时开发的时候我们使用absolute都用的都是他的“绝对定位”特性,这也是absolute被设计出来的本职工作。为了做好自己的本职工...

我不是水哥 2万+

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇

eIQ™机器学习(ML)软件开发环境支持在恩智浦EdgeVerse™微控制器和微处理器(包括i.MX RT跨界MCU和i.MX系列应用处理器)上使用ML算法。eIQ ML软件包括称为eIQ Toolkit的ML工作流工具以及推理引擎、神经网络编译器和优化库。............

HowieXue 薛永浩的博客 1万+

js逆向第24例:FastMoss数据分析网站Fm-Sign加密字段破解

破解:FastMoss数据分析网站Fm-Sign加密字段。FastMoss主要是TikTok为主的大数据分析服务的一个网站

花臂不花Home 2153

关于div相对于父级盒子实现绝对定位position:fixed的效果

style中加入:position: sticky; 添加top、bottom、left、right任意一个属性即可生效

ggggd233的博客 2846

08 RK3568 MAC TO MAC直连 RTL8367S mdio

本文:采用rk3568 gamc0 通过rgmii直连 交换芯片的mac口 通信方法为mdio。

qq_39451352的博客 3475

定位 position:absolute和position:relative的区别

区别:定位为relative的元素脱离正常的文本流中,但其在文本流中的位置依然存在,而定位为absolute的层脱离正常文本流,但与relative的区别是其在正常流中的位置不在存在。 position各个属性值的定义: 1、static:默认值。没有定位,元素出现在正常的流中(忽略top,bottom,left,right或者z-index声明)。 2、relative:生成相对定位的元素...

在安静的地方安静地生活 2万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

position属性absolute与relative 详解

最近一直在研究javascript脚本,熟悉DOM中CSS样式的各种定位属性,以前对这个属性不太了解,从网上找到两篇文章感觉讲得很透彻,收藏下来,唯恐忘记。一.解读absolute与relative http://www.blueidea.com/tech/web/2006/4249.asp很多朋友问过我absolute与relative怎么区分,怎么用?我们都知道absolute是绝对定位,r...

weixin_34352005的博客 2549

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

关于position:relative absolute fixed定位和布局的踩坑心得

position属性介绍 absolute 顾名思义,这是绝对定位的意思,我们在使用时通常都是给元素声明了position:absolute属性,然后再用top,left,right,bottom属性去改变元素的位置,语法示例如下: position:absolute; top:10px; 该语句设置了定位方式为absolute,并且向下偏移了10px relative relative是相对定...

英俊帅比林的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

关于HTML的position 属性以及relative、absolute、fixed的区别

在页面的编写过程中我们通常会用到html的position属性来合理安排我们标签的位置,来达到视觉的美观,所以我们需要加深对position这个属性的了解。 一、Position的属性值 position有四个值:static,relative,absolute,fixed; div{position:×××;left:×××;right:×××;top:×××;bottom:×××;} 二、s...

不定期更新的博客 2407

CSS中的position中的static、absolute、relative、fixed、sticky

static的取值有static、absolute、relative、fixed、sticky html中元素的默认position的值为static, static(html默认的定位方式) 会随着html的排版(flow)移动。static元素对top、left、right、bottom设定值不会生效 absolute(绝对定位) absolute元素不会随着html排版的流程移动,但是会随着滚动条移动。 absolute元素会根据外部的元素进行定位 top、left、right、bottom设定值作为

诗水人间 16万+

css中position:absolute与position:relative的使用问题

问题描述: “如果用position来布局页面,父级元素的position属性必须为relative” 这一段经常在网上看到,一开始以为是官方标配,后面在学习的过程中有些疑问,故特意拿出来研究学习了下,发现并非如此,先说结论: 绝对定位的父级节点只要是relative、fixed、absolute其中一个即可实现容器内相对布局,以下是找到的资料印证的。(特别说明,两个position:abs...

3864

position中的absolute与relative的区别

Position(位置)属性值需要注意的地方 position的属性有: Absolute:绝对定位,是相对于最近的且不是static定位的父元素来定位 Fixed:绝对定位,是相对于浏览器窗口来定位的,是固定的,不会跟屏幕一起滚动 Relative:相对定位,是相对于其原本的位置来定位的 Static:默认值,没有定位 Inherit:继承父元素的position值。 absolute和relative的区别 relative设置的div宽度和父类的div宽度相同,所以给

weixin_43417682的博客 1786

CSS中position属性( absolute | relative | static | fixed )详解

我们先来看看CSS3 Api中对position属性的相关定义: static:无特殊定位,对象遵循正常文档流。top,right,bottom,left等属性不会被应用。 relative:对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。 absolute:对象脱离正常文档流,使用top,right,b

雾里看花 9万+

细谈position属性:static、fixed、relative与absolute

更新时间:2019-07-24 09:21:38   学习WEB有些时日了,对DOM中的定位概念有些模糊,特地花了一个下午的时间搜资料、整理写下这篇随笔。   首先,我们要清楚一个概念:文档流。   简单的讲,就是窗体自上而下分成一行一行,并在每行中按照从左到右来布局。   而脱离文档流,就是说,将元素从普通的布局排版中拿走。其他盒子在定位的时候,无视这个元素的存在而进行定位。 ...

ggboy6555的博客 2351

html5定位属性的3个属性值,CSS - 定位属性position使用详解(static、relative、fixed、absolute)...

一、position 属性介绍(1)position属性自 CSS2起就有了,该属性规定元素的定位类型。所有主流浏览器都支持 position属性。(2)position的可选值有四个:static、relative、absolute、fixed。下面分别进行介绍。(其实还有个 inherit,不过这个是 IE 特有的,这里就不做讨论)二、position: static(默认值)1,基本介绍(1...

weixin_32658257的博客 1412

详述position样式属性(static relative fixed absolute)

文章目录一、static二、relative三、fixed四、absolute 文档流又称正常流,是默认情况下HTML元素排版布局过程中元素会自动按照自上而下或从左往右进行流式排放的一种顺序。而position样式属性是用于定义建立元素布局所用的定位类型,该属性有多个属性值,主要有四个:static、relative、fixed、absolute。 一、static 默认值。没有定位,元素出现在正...

IT_Helianthus的博客 1002

CSS中position属性(relative,absolute,fixed)和display中的inline-block

前言 平时很少写CSS,用的多也就是Bootstrap来堆样式,写起来快一点,但是有时候需要自己写,很久没写容易忘记,这里记录下这两个常用属性position和display 这里贴一条优快云设置图片宽度的方式,太坑了,先拖出来拿到src,然后如下 <img src="https://img-blog.youkuaiyun.com/20170120190855355?watermark/2/text/...

Deft_MKJing的博客 3705
上一篇: JS中关于clientWidth offsetWidth scrollWidth 等的含义
下一篇: Backbone.js
天意pt
博客等级 码龄14年 10粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值