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>

<工控><PLC>汇川Easy521系列PLC与汇川SV630N伺服进行EtherCat通讯的相关配置及指令编写 本系列是关于PLC相关的博文,包括PLC编程、PLC与上位机通讯、PLC与下位驱动、仪器仪表等通讯、PLC指令解析等相关内容。PLC品牌包括但不限于西门子、三菱等国外品牌,汇川、信捷等国内品牌。除了PLC为主要内容外,PLC相关元器件如触摸屏(HMI)、交换机等工控产品,如果有值得记录的内容,也会添加进来。 阅读详情

相关推荐

Twin Builder CFD 示例:构建、验证和评估静态 ROM

通过我们构建、验证和评估静态 ROM 的综合指南,释放 Twin Builder CFD 的潜力。

jkh920184196的博客 1102

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

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

weixin_44785498的博客 4827

TCN(Temporal Convolutional Networks)时序卷积网络详解及代码

TCN(Temporal Convolutional Networks)时序卷积网络详解及代码

zhulewen的博客 7883

css盒子定位

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

yuqu1028的博客 1068

在LinuxMint 22.1(Ubuntu24.04)上安装使用同花顺远航版

Linux用户成功在LinuxMint22.1系统上通过Wine9.0运行同花顺远航版,解决了长期困扰的股票行情软件问题。此前Linux原生版同花顺功能简陋且停止更新,Wine版通达信存在显示问题。作者作为自由软件支持者,通过调整Wine配置文件解决了高分屏显示异常问题,实现了远航版的正常使用。期待同花顺能重启Linux原生版开发,支持更多处理器架构,完善国产软件生态。该方案为Linux股票软件用户提供了实用参考。

5133

泛微OA与金蝶云星空深度集成实战:审批与表单双场景解析

本文深入解析泛微OA与金蝶云星空的深度集成实战,聚焦审批流程与表单对接两大核心场景。通过具体案例,详细阐述了如何实现业务数据与审批流程的自动联动,打破数据孤岛,提升企业运营效率与数据一致性,并分享了接口设计、安全策略及实战避坑指南。

4k5l6j7h8的博客 466

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

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

qq_44939011的博客 1万+

秦时明月6.2魔改版_从零到一部署指南_含安卓客户端配置与GM后台直通

本文提供《秦时明月》6.2魔改版从零开始的完整部署指南。详细讲解CentOS服务器环境准备、服务端文件部署与安装、关键端口开放及进程验证。重点涵盖安卓客户端APK的IP修改与重签名方法,并介绍了GM后台工具的访问与使用,助你快速搭建并管理专属游戏服务器。

garlic的博客 310

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

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

我不是水哥 2万+

手把手教你校准垂起固定翼(VTOL)遥控器与电调:从零到飞的完整流程

本文详细介绍了垂起固定翼(VTOL)遥控器与电调的校准流程,从基础认知到飞行前检查,涵盖遥控器通道配置、电调校准、舵机方向调整等关键步骤。通过图文并茂的指导,帮助无人机爱好者安全完成VTOL调试,确保首飞成功。特别强调多旋翼模式、过渡模式和固定翼模式的设置要点,适合新手和进阶用户参考。

jenkins8butler的博客 357

Godot4 TileMap分层绘制全攻略:解决角色、树木遮挡混乱,打造正确视觉层级

本文详细介绍了Godot4 TileMap分层绘制技术,通过图层管理和Y-Sort功能解决2D游戏中角色与物体的遮挡问题。从基础图层设置到高级优化策略,帮助开发者打造符合自然视觉规律的场景层次,提升游戏沉浸感。特别针对TileMap和TileSet的使用提供了实用技巧和代码示例。

weixin_28717411的博客 511

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

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

ggggd233的博客 2846

华为OD机试 - 音乐小说内容重复识别 - 并查集(Java 双机位C卷 200分)

华为OD机试 双机位C卷题库疯狂收录中,刷题。

学Java,找哪吒 159

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

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

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

position属性absolute与relative 详解

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

weixin_34352005的博客 2549

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

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

英俊帅比林的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

关于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、付费专栏及课程。

余额充值