彻底掌握 CSS 定位:深入理解 relative、absolute、fixed 与 sticky 的原理与实战

CSS样式布局的艺术:深入理解Position与Flexbox Position和Flexbox是现代CSS布局的两大支柱。Position:适用于精确控制元素位置Flexbox:适用于内容流和分布排列实际项目中,大多数布局会结合使用这两种技术。掌握它们的关系和最佳实践,你将能创建出既美观又灵活的网页设计。之前作者有点忙,没有发现有一个尘封已久的草稿(就是上一篇啦),本来是要讲盒子和定位的,后来发现将定位和弹性布局一起讲更合理,所以努力肝出这一篇博客。另外提一嘴,大物,离散和电工是啥必学的科目吗~<head> 阅读详情

一、前言:为什么要学定位?

  • 定位是 CSS 布局的核心之一。

  • 控制元素位置、层级、浮动、吸顶、悬浮、弹窗都离不开它。

  • 掌握定位 = 掌握网页布局的自由度。

二、定位的基础概念

1. 什么是定位(position)

  • 决定元素在页面中的位置计算方式。

  • 决定 top / right / bottom / left 是否生效。

  • 影响是否“脱离文档流”。

2. 文档流(normal flow)

  • 指浏览器默认的元素排列方式:从上到下、从左到右。

  • 元素一旦脱离文档流,不再影响其他元素的位置。

三、四种定位方式详解

1. relative — 相对定位《相对自身原来的位置》

  • 特点:

    • 相对于元素自身原始位置偏移;

    • 不脱离文档流;

    • 原本位置仍保留。

  • 用途:

    • 微调元素;

    • 为子元素的绝对定位提供参照。

  • 示例:

.parent { position: relative; }
.child { position: absolute; top: 0; right: 0; }

2. absolute — 绝对定位

  • 特点:

    • 脱离文档流;

    • 相对于最近的非 static 父元素定位;

    • 没有定位父时,默认相对于 body。

	默认情况下,所有元素的定位方式都是:
    	position: static;
	非static
		position: relative;
		或 position: absolute;
		或 position: fixed;
		或 position: sticky;
  • 用途:

    悬浮框、弹窗、下拉菜单、气泡提示等。

  • 示例:

.menu {
  position: absolute;
  top: 50px;
  left: 0;
}

3. fixed — 固定定位

  • 特点:

    • 脱离文档流;

    • 相对于**视口(浏览器窗口)**定位;

    • 页面滚动时不会移动。

  • 用途:

固定导航栏、返回顶部按钮、浮动客服。

  • 示例:
.button {
  position: fixed;
  bottom: 20px;
  right: 20px;
}

4. sticky — 粘性定位

  • 特点:

    • 结合 relative + fixed 特性;

    • 在滚动到设定阈值前为相对定位;

    • 超过阈值后“粘住”视口。

  • 用途:

吸顶导航栏、章节标题、滚动索引。

  • 示例:
<div class="container">
  <div class="header">固定头部</div>
  <div class="content">
    <div class="sticky">我是粘性标题</div>
    <p>内容内容内容...</p>
    <p>内容内容内容...</p>
    <p>内容内容内容...</p>
    <p>内容内容内容...</p>
    <p>内容内容内容...</p>
  </div>
</div>

.container {
  height: 300px;
  overflow: auto; /* 必须可滚动 */
  border: 2px solid gray;
}

.sticky {
  position: sticky;
  top: 0; /* 滚动到顶部时粘住 */
  background: yellow;
  padding: 10px;
}

效果:

一开始 .sticky 跟着内容一起滚;

当它的顶部到达容器顶部时,就“贴住”了;

继续往下滚,当父容器滚完,它就跟着一起离开视口。

四、四种定位的对比总结

属性是否脱离文档流相对谁定位是否随滚动移动常见用途
relative❌ 否自身原位置✅ 是微调、父参考
absolute✅ 是最近定位父元素✅ 是弹窗、提示框
fixed✅ 是浏览器窗口❌ 否悬浮按钮
sticky❌(部分)最近滚动容器部分吸顶导航
一文读懂css【css3】绝对(absolute)定位和相对(relative)定位 相对定位是相对谁定位的 绝对定位又是根据谁绝对定位的 子绝父相 包含块 我们在开发的过程中,经常会使用到相对定位和绝对定位,但我们有时对这两个定位不是很熟悉,往往会弄混,分不清什么是相对定位,什么又是绝对定位。那么,这篇文章便详细解说他们的区别。相对定位是元素相对其起始位置的定位,那么什么是起始位置呢?绝对定位是相对包含块来定位的,那么,那么什么又是包含块?我们清楚,绝对定位有子绝父相这个词,那么,它是什么意思呢?这里的所有疑问,都会在这篇文章中,讲的非常清楚... 阅读详情

相关推荐

VSCODE 安装LATEX环境,参数配置,常见问题解决

1 准备Texlive安装包 可以从以下网址下载 texlive 的镜像文件: 华为镜像 阿里镜像 官网 网址中大概文件构成 下载完后我们需要的文件构成(我是2020年下载过了,这次就不重新下载了) 将这个镜像文件进行解压 2 安装Texlive 右键install-tl-windows.bat,单击以管理员身份运行,进入安装界面. 点击左下角的“Advanced”进入高级安装来取消你不需要安装的宏包。 点击“Customize”来取消勾选不需要的宏包。 单是把非中英的语言包取消勾选可以省掉 1G

呆呆象呆呆的博客 6万+

CSS绝对定位absolute详解

之前介绍过CSS浮动float详解,本篇介绍的绝对定位absolute和浮动float有部分相似性。如果能理解浮动float,对理解绝对定位absolute会大有帮助。 先说absolute和float的相似处:包裹性 和 高度欺骗 包裹性 所谓一图胜千言(唯一的区别是:下图的div增加了absolute) <div style="border:4px solid blu...

嘿嘿 2万+

01. VBA从入门到精通——录制宏、窗口、快捷键

excel表功能区右击→常用→选择显示开发工具选项→确定Visual Basic:打开VBA窗口宏:查看要录制的宏录制宏:准备录制宏使用相对引用:录制宏的时候对单元格的引用做一个设置宏安全性:对宏的使用做安全设置,一般设置为禁用所有宏,并发出通知,此时打开带有宏代码的工作薄时会出现警告标记,如果宏可信就选择启动。

weixin_43812198的博客 1696

CSS绝对定位(absolute)、相对定位(relative)方法(详解)

元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。他们也有不同的工作方式,这取决于定位方法。

csgojingyu的博客 2万+

告别环境配置烦恼:Docker容器化一站式搭建Zephyr RTOS开发环境

本文详细介绍了如何使用Docker容器化技术一站式搭建Zephyr RTOS开发环境,彻底解决环境配置不一致、依赖冲突等难题。通过预构建镜像、数据卷挂载和实战编译示例,帮助开发者快速获得隔离、一致且可复现的嵌入式开发环境,大幅提升开发效率和团队协作体验。

n8m7b6v5c4的博客 189

最小可分辨对比度(MRC)

最小可分辨对比度的测试方法如下: 1)选择对比度测试靶板,一般有100%,50%,33.77%,15%,5%。 2)调整照度,确保能够清晰观测到图像中的靶标; 3)利用USAF1951分辨率靶观察找到能够分辨出的靶标。 1951 USAF分辨力测试图目前仍广泛地应用于测试光学成像系统(如显微镜和相机)的分辨能力。这种图案包括几组由三条短线构成组合,短线的尺寸从大到小。成像系统无法辩明的...

6272

CSS学习20:absolute(绝对定位)

绝对定位的介绍: 绝对定位是元素在移动位置的时候,是相对于它祖先元素来说的(拼爹型)。 语法: 选择器 { position: absolute; } 1、完全脱标 —— 完全不占位置; 2、父元素没有定位,则以浏览器为准定位(Document 文档)。 3、父元素要有定位 i.元素将依据最近的已经定位(绝对、固定或相对定位)的父元素(祖先)进行定位。 ii.绝对定位的特点总结:(务必记住)...

玉安_ZhangDe的博客 7138

光通量与辐射通量之间的换算

由理论和实验可知存在两种定义: 1W1W1W(瓦特)的频率为540×1012Hz540\times10^{12}Hz540×1012Hz(赫兹)的单色辐射的辐射通量等于683lm(流明)683lm(流明)683lm(流明).。 1lm1lm1lm的频率为540×1012Hz540\times10^{12}Hz540×1012Hz的单色通量等于1683=0.001464W\frac{1}{683}=0.001464W6831​=0.001464W。 从上述定义中我们可以得到什么呢?我们知道光速: c=3×

u011699626的博客 3272

深入理解CSS定位:一文搞懂Static、Relative、Absolute、Fixed、Sticky的应用与区别

CSS定位是网页布局的核心技术之一,掌握各种定位方式对于前端开发者至关重要。本文将详细介绍CSS中的五种主要定位方式:静态定位、相对定位、绝对定位、固定定位和粘性定位,并通过实例展示它们的应用场景和差异。

m0_46335150的博客 1409

基于MATLAB的语音声强度和响度分析及处理

综上所述,本文介绍了如何使用MATLAB进行语音信号的声强度和响度分析,并提供了相应的源代码。通过这些工具和方法,可以更好地理解和处理语音信号的声强度和响度特性,为语音信号处理和音频应用提供支持。声强度(Intensity)和响度(Loudness)是语音信号中常用的两个重要参数,用于描述声音的强度和感知响度。响度均衡化:可以通过对语音信号施加不同的加权滤波器,调整信号的频谱分布,从而改变声音的响度。除了分析语音信号的声强度和响度,MATLAB还提供了丰富的工具和函数,用于处理语音信号的声强度和响度。

COWizard的博客 617

Authentication Assertion Tickets,SAP 系统到系统单点登录里的短命凭证

SAP 系统间的身份传递机制存在 Authentication Assertion Ticket 和 SAP Logon Ticket 两种易混淆的凭证。前者用于系统间短时身份委托(有效期2分钟,通过HTTP头传输),后者用于浏览器SSO(可配置有效期,通过Cookie传输)。Assertion Ticket依赖签发系统的数字签名和严格的时间同步,适用于ABAP/Java系统间的后台作业调用。现代SAP架构已转向OAuth 2.0等标准协议,但老系统中仍需注意两种票据的关键差异:传输方式、有效期、接收方限制

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 602

lesson53:CSS五种定位方式全解析:从基础到实战应用

CSS定位(position)属性详解:掌握五种定位方式及应用场景。static为默认文档流布局;relative基于自身位置微调且保留原空间;absolute脱离文档流,相对于最近定位父元素;fixed相对于视口固定;sticky在滚动到阈值时切换相对/固定定位。文章通过特性对比、代码示例和避坑指南,系统讲解各定位方式的核心差异与适用场景,如relative作定位容器、absolute实现弹窗、fixed创建导航栏、sticky制作吸附表头等。强调正确使用定位上下文、层级管理和性能优化,帮助开发者构建灵活

2402_82363599的博客 1465

YOLOv8【第十章:多任务扩展深度篇·第1节】YOLOv8-Seg 实例分割:Mask原型生成与系数预测原理解析!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1810

【CSS】position 属性详解:深入理解五种定位方式

position是 CSS 中用于设置元素定位方式的属性。它决定了一个元素如何在文档流中定位,是否脱离正常的文档流,是否参照其他元素进行偏移等。static:默认值,元素处于正常文档流中。relative:相对定位,元素相对于自己原本的位置进行偏移。absolute:绝对定位,元素脱离文档流,相对于最近的定位祖先进行定位。fixed:固定定位,元素脱离文档流,相对于视口进行定位。sticky:粘性定位,结合了 relative 和 fixed 的特性。

lph159的博客 2723

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

深入理解 CSS 定位与 CSS4 新特性:打造灵活现代的 Web 布局

本文深入解析CSS定位机制(static、relative、absolute、fixed、sticky)及其与文档流的关系,并结合CSS自定义变量、HTML5表单控件(如range和color)及JavaScript动态联动,展示如何构建灵活、可维护的现代Web布局。通过变量驱动样式与用户交互,实现高效开发与沉浸式体验。

zjy_bjyxszd的博客 1051

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

css常见定位、居中方案

进行定位后,top与left分别设置50%,这时元素的上边距到父元素的上边距与到子元素的下边距距离是一样的,元素的左边距到父元素的左边距与右边距距离也是一样的,这样再减去元素margin本身高度的一半与宽度的一半,这时元素就能达到垂直居中的效果。使用transformtranslate对元素进行移动,这个与第一种方式类似,第一种方法是设置margin值,而这种是定位后的位置进行移动。使用flex布局,分别设置垂直方向排列子元素的居中与水平方向子元素的居中就能达到垂直居中的效果。...

cj的博客 8299

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

为什么你的CSS布局总是不对?JS Raccoon的盒模型与定位解析终极指南

你是否经常在CSS布局中遇到元素位置错乱、间距计算不准或响应式设计崩溃的问题?😅 这些常见问题的根源往往在于对盒模型和定位机制理解不够深入。JS Raccoon项目为你提供了一套完整的CSS布局解决方案,帮助你彻底掌握盒模型的核心概念和定位技巧。本文将为你解析CSS布局中最关键的盒模型原理,分享JS Raccoon社区的实用技巧,让你轻松构建稳定的网页布局! ## 🔍 理解CSS盒模型:布局

gitblog_00695的博客 705

CSS position 属性

CSS position属性是控制元素定位方式的核心工具,提供static(默认)、relative、absolute、fixed和sticky五种定位模式。static遵循文档流,relative基于自身位置偏移但不脱离文档流,absolute相对于最近定位祖先定位并脱离文档流,fixed相对于视口固定定位,sticky则结合relative和fixed特性实现粘性效果。定位元素可通过z-index控制层叠顺序,且不同定位方式会影响文档流布局。合理运用这些定位方式能实现弹窗居中、固定导航等常见布局效果

聚焦前端开发实战与成长!拆解 Vue/React/TS 高频用法,聊性能优化、工程化落地,扒一扒日常开发的踩坑瞬间,解读前沿技术趋势。不管是刚入门的新手,还是想突破瓶颈的进阶开发者,这里有可落地的技巧、真实的项目复盘,用通俗的话讲透前端逻辑 996

css定位深入理解

相对定位(relative positioning)是指,可以通过设置top、bottom、left、right等属性来改变元素的位置。相对定位的特点是,因此在页面布局时往往会使用相对定位来微调元素的位置。

weixin_46369590的博客 241

关于定位 position

定位的几种方式:static,relative,absolute,fixed,sticky,inherit absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 fixed 生成绝对定位的元素,相对于浏览器窗...

weixin_39307273的博客 246

探索CSS中的粘性定位:解锁网页布局的新可能

这篇文章详细解释了CSS中的sticky定位方式,并讲解了它的工作原理。CSS中的sticky定位有很好的浏览器支持,但许多开发者并没有使用它。原因有两方面:一是等待浏览器支持的时间太长,导致这个特性被遗忘;二是大部分开发者并不完全理解它的工作原理。我假设你们都知道CSS定位,但让我们简要回顾一下:直到3年前,有四个CSS位置:staticrelativeabsolute和fixed。static或relative与absolute或fixed之间的主要区别在于它们在DOM流中占用的空间。

欢迎来到我的前端博客!这里汇集了关于前端开发的最新技术、实用工具和经验分享。我将为你提供详细的教程、代码示例和实战案例,帮助你掌握Web开发的核心概念和技能。不论你是初学者还是有经验的开发者,这个博客都适合你。 4770

标题:深入理解CSS定位及其应用

绝对定位(absolute):通过设置top、right、bottom和left属性,相对于其最近的非static定位的父元素进行定位,若没有非static定位的父元素,则相对于文档进行定位。相对定位(relative):通过设置top、right、bottom和left属性,相对于元素在文档流中的原始位置进行微调,不会脱离文档流影响其他元素的布局。粘性定位(sticky):根据元素在文档流中的位置,在滚动过程中在达到指定位置时切换为固定定位或相对定位,可以创建吸附在页面某一位置的效果。

hunterend的博客 147

【前端基础知识】css position

【前端基础知识】css position

Dai的博客 915

css中position属性及z-index属性

position属性共有四种不同的定位方法,分别是static、fixed、relative、absolute,sticky。最后将会介绍和position属性密切相关的z-index属性。 1.position: static static定位是HTML元素的默认值,即没有定位,元素出现在正常的流中,因此,这种定位就不会收到top,bottom,left,right的影响。 2.positio...

棠樾的博客 714

html float如何定位,CSS的position定位和float浮动详解

一、position定位(一):position的属性1.absolute:生成绝对定位的元素,相对于最近一级定位不是static的父元素来进行定位;2.relative:生成相对定位的元素,相对于其所在普通的文档流位置进行定位;3.static:默认值,没有定位,元素出现在正常的文档流中;4.fixed:老IE不支持,和absolute一致,相对于窗口进行定位,当出现滚动条时,不随着滚动而滚动;...

weixin_39863918的博客 489
上一篇: Flexbox
下一篇: Flexbox 与定位结合-实现更复杂布局
黄毛火烧雪下
黄毛火烧雪下 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄14年 7714粉丝 439原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄毛火烧雪下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值