CSS- 4.2 相对定位(position: relative)

本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。

HTML系列文章 已经收录在前端专栏,有需要的宝宝们可以点击前端专栏查看!

点赞关注不迷路!您的点赞、关注和收藏是对小编最大的支持和鼓励!

系列文章目录

CSS- 1.1 css选择器

CSS- 2.1 实战之图文混排、表格、表单、学校官网一级导航栏

CSS- 3.1 盒子模型-块级元素、行内元素、行内块级元素和display属性

CSS- 4.1 浮动(Float)

CSS- 4.2 相对定位(position: relative)

CSS- 4.3 绝对定位(position: absolute)&学校官网导航栏实例

CSS- 4.4 固定定位(fixed)& 咖啡售卖官网实例

CSS- 4.5 css + div 布局 & 简易网易云音乐 官网布置实例 

CSS- 4.6 radiu、shadow、animation动画

CSS- 5.1 Transition 过渡  


目录

系列文章目录

前言

一、理论部分

1.基本概念

2.语法

3.特点详解

4.实际应用场景

(1) 微调元素位置

(2)作为绝对定位的参考点

(3)创建视觉效果而不破坏布局

5.与其他定位方式的比较

6.注意事项

7.最佳实践

二、代码实例

总结


前言

小编作为新晋码农一枚,会定期整理一些写的比较好的代码,作为自己的学习笔记,会试着做一下批注和补充,如转载或者参考他人文献会标明出处,非商用,如有侵权会删改!欢迎大家斧正和讨论!

一、理论部分

相对定位(position: relative是CSS定位属性中的一种,它允许元素相对于其正常文档流中的位置进行偏移,同时保留其在文档流中的原始空间。

1.基本概念

相对定位的元素会:

  1. 保留原始空间:元素在文档流中仍然占据原来的位置
  2. 相对于自身偏移:通过toprightbottomleft属性相对于其正常位置进行偏移
  3. 不影响其他元素:其他元素会像该元素仍在原位置一样进行布局

2.语法

css

.element {position: relative;top: 10px;    /* 向下偏移10像素 */left: 20px;   /* 向右偏移20像素 *//* 或使用其他方向 *//* right: 10px; *//* bottom: 10px; */
}

3.特点详解

  1. 空间保留
    相对定位的元素在文档流中仍然占据其原始位置,只是视觉上看起来移动了。其他元素不会填补它"离开"的空间。

  2. 偏移基准
    偏移是相对于元素在正常文档流中的位置计算的,而不是相对于父元素或其他元素。

  3. 层级提升
    相对定位的元素会创建一个新的层叠上下文(stacking context),但不会脱离文档流。

4.实际应用场景

(1) 微调元素位置

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style type="text/css">.box {width: 100px;height: 100px;background: lightblue;margin: 10px;}.relative-box {position: relative;top: 20px;left: 30px;background: lightcoral;}</style></head><body><div class="box">原始位置</div><div class="box relative-box">相对定位</div></body>
</html>

效果:第二个div会向下偏移20px,向右偏移30px,但第一个div不会移动填补这个空间。

(2)作为绝对定位的参考点

相对定位常被用作绝对定位子元素的参考容器:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><style type="text/css">.parent {position: relative;width: 300px;height: 200px;background: #eee;}.child {position: absolute;top: 10px;right: 10px;background: #ff0;}</style></head><body><div class="parent"><div class="child">绝对定位的子元素</div></div></body>
</html>

在这个例子中,子元素的绝对定位是相对于其相对定位的父元素计算的。

(3)创建视觉效果而不破坏布局

相对定位可以用于创建悬停效果、工具提示等,而不影响页面其他部分的布局。

5.与其他定位方式的比较

定位方式是否脱离文档流偏移基准是否影响其他元素
静态定位(static)
相对定位(relative)元素自身原始位置
绝对定位(absolute)最近的已定位祖先元素
固定定位(fixed)视口
粘性定位(sticky)混合视口或最近的滚动祖先否(通常)

6.注意事项

  1. 性能考虑:相对定位的元素仍然参与文档流计算,大量使用可能影响渲染性能
  2. 层叠顺序:相对定位的元素会覆盖静态定位的元素(除非设置z-index)
  3. 响应式设计:在响应式布局中,相对定位可能需要配合媒体查询调整偏移值
  4. 可访问性:过度使用定位可能影响屏幕阅读器的用户体验

7.最佳实践

  1. 用于微调元素位置而非主要布局
  2. 作为绝对定位元素的定位上下文容器
  3. 避免在需要精确控制的响应式布局中过度使用
  4. 结合transform属性(如translate())可能比使用top/left更高效

相对定位是CSS定位系统中一个灵活而强大的工具,特别适合需要微调元素位置而不破坏整体布局的场景。

二、代码实例

代码实例如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>定位-相对定位relative</title><style type="text/css">.div1 {width: 100px;height: 100px;background-color: red;}.div2 {width: 100px;height: 100px;background-color: blue;position: relative;/* 以原来的位置为基准发生偏移 */left: 100px;top: -50px;}.div3 {width: 100px;height: 100px;background-color: green;}#btn {position: relative;top: 2px;}</style></head><body><div class="father"><div class="div1"></div><div class="div2"></div><div class="div3"></div><input type="" name="" id="btn" value="" /></div><a href="../个人主题网站/index.html"><h3 align="center">返回首页</h3></a></body>
</html>

代码运行:


总结

以上就是今天要讲的内容,本文简单记录了CSS之相对定位,仅作为一份简单的笔记使用,大家根据注释理解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/83989.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用Antv X6使用拖拽布局?

拖拽效果图 拖拽后 布局预览 官方&#xff1a; X6 图编辑引擎 | AntV 安装依赖 # npm npm install antv/x6 --save npm install antv/x6-plugin-dnd --save npm install antv/x6-plugin-export --save需要引入的代码 import { Graph, Shape } from antv/x6; import { Dnd } …

数据库健康监测器(BHM)实战:如何通过 HTML 报告识别潜在问题

在数据库运维中,健康监测是保障系统稳定性与性能的关键环节。通过 HTML 报告,开发者可以直观查看数据库的运行状态、资源使用情况与潜在风险。 本文将围绕 数据库健康监测器(Database Health Monitor, BHM) 的核心功能展开分析,结合 Prometheus + Grafana + MySQL Export…

PCB设计实践(二十四)PCB设计时如何避免EMI

PCB设计中避免电磁干扰&#xff08;EMI&#xff09;是一项涉及电路架构、布局布线、材料选择及制造工艺的系统工程。本文从设计原理到工程实践&#xff0c;系统阐述EMI产生机制及综合抑制策略&#xff0c;覆盖高频信号控制、接地优化、屏蔽技术等核心维度&#xff0c;为高密度、…

嵌入式硬件篇---陀螺仪|PID

文章目录 前言1. 硬件准备主控芯片陀螺仪模块电机驱动电源其他2. 硬件连接3. 软件实现步骤(1) MPU6050初始化与数据读取(2) 姿态解算(互补滤波或DMP)(3) PID控制器设计(4) 麦克纳姆轮协同控制4. 主程序逻辑5. 关键优化与调试技巧(1) 传感器校准(2) PID参数整定先调P再调D最后…

【Linux基础I/O】文件调用接口、文件描述符、重定向和缓冲区

【Linux基础I/O一】文件描述符和重定向 1.C语言的文件调用接口2.操作系统的文件调用接口2.1open接口2.2close接口2.3write接口2.4read接口 3.文件描述符fd的本质4.标准输入、输出、错误5.重定向5.1什么是重定向5.2输入重定向和输出重定向5.3系统调用的重定向dup2 6.缓冲区 1.C语…

鸿蒙HarmonyOS 【ArkTS组件】通用属性-背景设置

&#x1f4d1;往期推文全新看点&#xff08;附带最新鸿蒙全栈学习笔记&#xff09; 嵌入式开发适不适合做鸿蒙南向开发&#xff1f;看完这篇你就了解了~ 鸿蒙岗位需求突增&#xff01;移动端、PC端、IoT到底该怎么选&#xff1f; 分享一场鸿蒙开发面试经验记录&#xff08;三面…

【76. 最小覆盖子串】

Leetcode算法练习 笔记记录 76. 最小覆盖子串 76. 最小覆盖子串 滑动窗口的hard题目&#xff0c;思路先找到第一个覆盖的窗口&#xff0c;不断缩小左边界&#xff0c;找到更小的窗口并记录。 思路很简单&#xff0c;写起来就不是一会事了&#xff0c;看题解看了几个h&#xff0…

Spring事务简单操作

什么是事务&#xff1f; 事务是一组操作的集合&#xff0c;是一个不可分割的操作 事务会把所有的操作作为⼀个整体, ⼀起向数据库提交或者是撤销操作请求. 所以这组操作要么同时 成功, 要么同时失败. 事务的操作 分为三步&#xff1a; 1. 开启事start transaction/ begin …

Rust 学习笔记:关于错误处理的练习题

Rust 学习笔记&#xff1a;关于错误处理的练习题 Rust 学习笔记&#xff1a;关于错误处理的练习题想看到回溯&#xff0c;需要把哪个环境变量设置为 1&#xff1f;以下哪一项不是使用 panic 的好理由&#xff1f;以下哪一项最能描述为什么 File::open 返回的是 Result 而不是 O…

MCP 协议传输机制大变身:抛弃 SSE,投入 Streamable HTTP 的怀抱

在技术的江湖里&#xff0c;变革的浪潮总是一波接着一波。最近&#xff0c;模型上下文协议&#xff08;MCP&#xff09;的传输机制就搞出了大动静&#xff0c;决定和传统的服务器发送事件&#xff08;SSE&#xff09;说拜拜&#xff0c;转身拥抱 Streamable HTTP&#xff0c;这…

138. Copy List with Random Pointer

目录 题目描述 方法一、使用哈希表 方法二、不使用哈希表 题目描述 问题的关键是&#xff0c;random指针指向的是原链表的结点&#xff0c;这个原链表的结点对应哪一个新链表的结点呢&#xff1f;有两种办法。一是用哈希表。另一种是复制原链表的每一个结点&#xff0c;并将…

如何评估开源商城小程序源码的基础防护能力?

在电商行业快速发展的背景下&#xff0c;开源商城已经为更多企业或者开发者的首选方案&#xff0c;不过并不是所有的开源商城源码都能让人放心使用&#xff0c;今天就带大家一起了解下如何评估开源商城小程序源码的基础防护能力&#xff0c;帮助大家更好地筛选安全性高的商城源…

[Vue]跨组件传值

父子组件传值 详情可以看文章 跨组件传值 Vue 的核⼼是单向数据流。所以在父子组件间传值的时候&#xff0c;数据通常是通过属性从⽗组件向⼦组件&#xff0c;⽽⼦组件通过事件将数据传递回⽗组件。多层嵌套场景⼀般使⽤链式传递的⽅式实现provideinject的⽅式适⽤于需要跨层级…

悠易科技智能体矩阵撬动AI全域营销新时代

大数据产业创新服务媒体 ——聚焦数据 改变商业 在数字化浪潮与AI技术的双重驱动下&#xff0c;数据营销正经历前所未有的变革&#xff0c;从传统的全域智能营销&#xff0c;迈向更具颠覆性的AI全域营销时代。 麦肯锡的报告显示&#xff0c;采用AI驱动营销的企业&#xff0c;客…

Xilinx XCAU10P-2FFVB676I 赛灵思 Artix UltraScale+ FPGA

XCAU10P-2FFVB676I 是 AMD Xilinx 推出的 Artix UltraScale™ FPGA 器件&#xff0c;内部集成了约 96,250 逻辑单元&#xff0c;满足中等规模高性能应用的需求。该芯片采用 16 nm FinFET 制程工艺&#xff0c;核心电压典型值约 0.85 V&#xff0c;能够在较低功耗下提供高达 775…

Java SpringBoot 项目中 Redis 存储 Session 具体实现步骤

目录 一、添加依赖二、配置 Redis三、配置 RedisTemplate四、创建控制器演示 Session 使用五、启动应用并测试六、总结 Java 在 Spring Boot 项目中使用 Redis 来存储 Session&#xff0c;能够实现 Session 的共享和高可用&#xff0c;特别适用于分布式系统环境。以下是具体的实…

分布式电源的配电网无功优化

分布式电源(Distributed Generation, DG)的大规模接入配电网,改变了传统单向潮流模式,导致电压波动、功率因数降低、网损增加等问题,无功优化成为保障配电网安全、经济、高效运行的关键技术。 1. 核心目标 电压稳定性:抑制DG并网点(PCC)及敏感节点的电压越限(如超过5%…

JS手写代码篇---手写Promise

4、手写promise Promise 是一个内置对象&#xff0c;用于处理异步操作。Promise 对象表示一个尚未完成但预期将来会完成的操作。 Promise 的基本结构 一个 Promise 对象通常有以下状态&#xff1a; pending&#xff08;进行中&#xff09;&#xff1a;初始状态&#xff0c;…

我喜欢的vscode几个插件和主题

主题 Monokaione Monokai Python 语义高光支持 自定义颜色为 self 将 class , def 颜色更改为红色 为装饰器修复奇怪的颜色 适用于魔法功能的椂光 Python One Dark 这个主题只在python中效果最好。 我为我个人使用做了这个主题,但任何人都可以使用它。 插件 1.Pylance Pylanc…

【深度学习新浪潮】大模型时代,我们还需要学习传统机器学习么?

在大模型时代,AI 工程师仍需掌握传统机器学习知识,这不仅是技术互补的需求,更是应对复杂场景和职业发展的关键。以下从必要性和学习路径两方面展开分析: 一、传统机器学习在大模型时代的必要性 技术互补性 大模型(如GPT、BERT)擅长处理复杂语义和生成任务,但在数据量少…