CSS中相对定位与绝对定位的区别及作用

news2024/11/28 17:55:11

CSS中相对定位与绝对定位的区别及作用

  • 场景复现
  • 核心干货
    • 相对定位
    • 绝对定位
    • 子绝父相🔥🔥
    • 定位总结
    • 绝对定位与相对定位的区别

场景复现

在学习前端开发的过程中,熟练掌握页面布局和定位是非常重要的,因此近期计划出一个专栏,详细讲述如何优雅高效地实现前端页面布局和渲染。包括css中的相对定位和绝对定位,好用的flex布局grid布局,以及自适应宽高等等实用干货,文章从基础知识到项目实战,层层递进帮助学习前端技术。本期文章主要介绍的是CSS中的相对定位与绝对定位,包括相关用法和区别

核心干货

定位的作用实现某个元素可以自由地在一个盒子内移动位置,并且压住其他盒子

相对定位

相对定位可以理解为“相对于”它的起点进行移动

语法

选择器{ position:relative;}

代码示例:👇👇👇👇
html部分:

<div class="box1"></div>
<div class="box2"></div>

css部分:

    .box1 {
      width: 200px;
      height: 200px;
      background-color: aquamarine;
    }
    .box2 {
      width: 200px;
      height: 200px;
      background-color: rgb(0, 203, 254);
    }

效果图
在这里插入图片描述
此时我们为其中一个盒子添加相对定位👇👇
css部分:

    .box1 {
      /* 相对定位*/
      position: relative; 
      top: 50px;
      left: 50px;
      width: 200px;
      height: 200px;
      background-color: aquamarine;
    }

效果图
在这里插入图片描述

总结

  • 相对定位实际是元素相对自己原来的位置移动,参照物是自己
  • 另外一个元素不脱标,继续保留原来的位置

绝对定位

绝对定位可以理解为一浏览器为父节点来定位自己

语法

选择器{ position:absolute;}

代码示例:👇👇👇👇
html部分:

<div class="box4"></div>

css部分:

.box4 {
      width: 200px;
      height: 200px;
      background-color: rgb(255, 161, 60);
    }

下面我们为这个盒子添加绝对定位👇👇
css部分:

    .box4 {
      /* 绝对定位*/
      position: absolute;
      left: 0;
      bottom: 0;
      width: 200px;
      height: 200px;
      background-color: rgb(255, 161, 60);
    }

效果图
在这里插入图片描述
不难发现,橙色的盒子相对于浏览器页面绝对定位,距离底部和左侧都是0px的距离。

绝对定位的特点

  • 1、若没有父级元素或父级元素没有定位,则以浏览器为准定位;
  • 2、如果父级元素有定位,则以最近一级的有定位父级元素为参考点移动位置;
  • 3、绝对定位不占有原先位置。

子绝父相🔥🔥

  • 子级绝对定位,不会占有位置,可以放到父级盒子的任何一个地方,不会影响其他盒子;
  • ②父级盒子需要加定位限制子盒子在父级盒子内显示;
  • ③父级盒子布局时,需要占有位置,因此父级只能是相对定位

代码示例:👇👇👇👇
html部分:

<div>----------------绝对定位------------</div>
<div class="box3"><div class="box4"></div></div>

css部分:

    .box3 {
      position: relative; 
      width: 300px;
      height: 300px;
      background-color: rgb(178, 96, 255);
    }
    .box4 {
      /* 绝对定位*/
      position: absolute;
      left: 0;
      bottom: 0;
      width: 200px;
      height: 200px;
      background-color: rgb(255, 161, 60);
    }

效果图
在这里插入图片描述


如果我们将父元素里面的相对定位去掉,就会呈现下面的效果:
在这里插入图片描述


如果将子元素的绝对定位去掉,保留父元素的相对定位,就会呈现如下效果:👇👇
在这里插入图片描述

定位总结

在这里插入图片描述

绝对定位与相对定位的区别

绝对定位使元素的位置与文档流无关,因此不占据空间。可以理解为绝对定位将元素从原来位置拿走,后面的元素就会占据绝对定位元素的位置。如同排队一样,前面的人走了,后面的人就会前进占去离开的人的位置。

代码示例

    <style>
        body {
            background-color: aquamarine;
        }
        .box {
            width: 100px;
            height: 100px;
            background-color: pink;
            float: left;
            margin: 15px;
        }
        .two {
            position:absolute;
            left: 20px;
            top: 20px;
        }
    </style>
</head>
<body>
<div class="box one">1</div>
<div class="box two">2</div>
<div class="box three">3</div>
<div class="box four">4</div>
</body>

效果图
在这里插入图片描述


相对定位与绝对定位相反,它移动后原本所占的空间仍保留。可理解为它进行定位后,之前的位置后面的元素不可占据。如同私人车库停车一样,车子离开后,别的车不可以停在那个车库。

代码示例

    <style>
        body {
            background-color: aquamarine;
        }
        .box {
            width: 100px;
            height: 100px;
            background-color: pink;
            float: left;
            margin: 15px;
        }
        .two {
            position:relative;
            left: 20px;
            top: 20px;
        }
    </style>
</head>
<body>
<div class="box one">1</div>
<div class="box two">2</div>
<div class="box three">3</div>
<div class="box four">4</div>
</body>

效果图
在这里插入图片描述


以上就是关于CSS相对定位和绝对定位相关知识的分享,相信看完这篇文章的小伙伴们一定有了一定的收获。当然,可能有不足的地方,欢迎大家在评论区留言指正!

感兴趣的小伙伴可以订阅本专栏,方便后续了解学习~
觉得这篇文章有用的小伙伴们可以点赞➕收藏➕关注哦~

在这里插入图片描述

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

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

相关文章

【问题、AI解答】mongodb中使用$lookup进行连表查询使用_id作为localField出现查询结果字段为空的情况

描述&#xff1a; db.acticles.aggregate([ {$lookup&#xff1a;{from:"acticlesMaptags",localField:"_id",foreignField:"acticleid",as:"tagid"} } ])acticlesMaptags集合中的acticleid字段存在与acticles集合中的_id相匹配的数据…

1.15 从0开始学习Unity游戏开发--游戏UI

上一章中&#xff0c;我们剩下最后一个任务&#xff0c;需要支持鼠标控制准心来进行设计&#xff0c;那么准心本质上就是一个始终呈现在屏幕上的一个图片&#xff0c;你当然可以用一个3D物体来制作&#xff0c;之前讲解渲染概念的时候也提到过&#xff0c;我们的屏幕就是相机的…

传智健康_day3

本章对检查组管理进行开发 一.新增检查组 1.修改新增弹层可见属性&#xff0c;添加重置表单功能 2.动态刷新检查组包含的检查项信息 <tr v-for"c in tableData"> 使用for循环来遍历查询出tableData中的数据 tableData是一个数组对象&#xff0c;定义在VUE…

hadoop分布式安装

文章目录1. 将安装包hadoop-3.1.3.tar.gz上次至linux中2. 进行解压操作3. 修改目录名称4. 配置环境变量5. 远程传输5.1 scp远程传输6. 免密登录7. 集群规划8. 修改自定义配置文件8.1 hadoop-env.sh8.2 core-site.xml8.3 hdfs-site.xml8.4 mapred-site.xml8.5 yarn-site.xml8.6 …

ReactNative入门

React基本用法&#xff1a; react与js不同的点在于 react使用的是虚拟DOM js是真实DOM 作用&#xff1a;当有新的数据填充 可以复用之前的&#xff0c;而js需要整体重新渲染 创建虚拟DOM还可以使用jsx语法直接声明&#xff1a; 注意要用babel标签将jsx转化为js 但是建议采用j…

UNIX环境高级编程——进程环境

7.1 引言 本章主要讲解了进程的环境。 7.2 main函数 C程序总是从main函数开始执行&#xff0c;其函数原型为&#xff1a; int main(int argc, char *argv[]);argc是命令行参数的数目&#xff0c;argv是指向参数的各个指针所构成的数组&#xff1b;当内核执行C程序时&#x…

SpringBoot集成Kafka详解

一、使用idea创建SpringBoot项目 1.1 使用Spring Initializr创建一个SpringBoot程序 点击Next。 1.2 添加依赖 依赖说明&#xff1a; Lombok简化实体类开发。 Spring Web让项目集成web开发所有依赖&#xff0c;包括Spring MVC&#xff0c;内置tomcat等。 Spring for Apache…

HNU-操作系统OS-2023期中考试复习-刷题

往年期中卷极难获得&#xff0c;这里找了几套卷子。可以看看。 因为往年都是从第一周开始上课的&#xff0c;所以进度会快一点&#xff0c;这学期是从第四周开始上课的&#xff0c;所以进程会慢些&#xff0c;讲到第九章所以只考到第九章。 同样因为太忙了&#xff0c;答案找…

图像分类卷积神经网络模型综述

图像分类卷积神经网络模型综述遇到问题 图像分类&#xff1a;核心任务是从给定的分类集合中给图像分配一个标签任务。 输入&#xff1a;图片 输出&#xff1a;类别。 数据集MNIST数据集 MNIST数据集是用来识别手写数字&#xff0c;由0~9共10类别组成。 从MNIST数据集的SD-1和…

ctfshow web入门web119-124

1.web119 和118题类似&#xff0c;只不过是过滤了PATH 0可以用任何字符代替&#xff0c;比如A,{A},A,{0} KaTeX parse error: Expected }, got # at position 2: {#̲SHLVL}1&#xff0c;或者{##},${#?} {PHP_VERSION:~A}2,php版本为x.x.2时 ${#IFS}3(linux下是3&#xff0c;…

IntelliJ IDEA 2023.1正式发布,Maven项目大提速支持Apache Dubbo

你好&#xff0c;我是YourBatman&#xff1a;做爱做之事❣交配交之人。 &#x1f4da;前言 一年一个大版本&#xff0c;共计3个中型版本&#xff0c;北京时间2023年3月月29日终于迎来了IntelliJ IDEA今年的首个版本2023.1。老规矩&#xff0c;吃肉之前&#xff0c;可以先把这…

顺丰科技x腾讯安全iOA联合案例获云安全联盟CSA 2022安全革新奖

近年来&#xff0c;随着云计算、大数据、物联网等技术的加速创新和应用&#xff0c;一场数字化的变革开始席卷各行各业。远程办公、业务协同、分支互联等需求涌现&#xff0c;随之而来的还有更加复杂多元的高级网络攻击。在此背景下&#xff0c;传统的基于边界的网络安全防护理…

矩阵键盘+CH559制作国产USB矩阵键盘

矩阵键盘+CH559制作国产USB矩阵键盘 文章目录 矩阵键盘+CH559制作国产USB矩阵键盘为什么选择CH559作为主控芯片?如何实现该款矩阵USB键盘?如何将矩阵键盘的信号转化为USB键盘信号?原材料: 矩阵键盘(附带行列键码定义)CH559开发板将矩阵键盘的所有排线连接到单片机的GPIO引…

基于stm32mp157 linux开发板ARM裸机开发教程5:ARM微处理器指令系统(连载中)

前言&#xff1a; 目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中&#xff0c;使其内容更加丰富&#xff0c;讲解更加细致&#xff0c;全文所使用的开发平台均为华清远见FS-MP1A开发板&#xff08;STM32MP157开发板&#xff09; 针对对FS-MP1A开发板&…

Python | Python的自我介绍(前世今生)

本文概要 本篇文章主要介绍Python这门语言的前世今生&#xff0c;适合刚入门的小白或者想了解Python历史的同学&#xff0c;文中描述很详细&#xff0c;具有一定的学习价值&#xff0c;感兴趣的小伙伴快来一起学习吧。 个人简介 ☀️大家好&#xff01;我是新人小白博主朦胧的…

【机器学习】样本不均衡(class-imbalance)——解决方案与问题思考

目录问题提出问题重述与再理解第一个问题&#xff1a;假如样本不均衡&#xff0c;哪种分类器的泛化性能较好&#xff1f;第二个问腿&#xff1a;在样本不均衡的情况下&#xff0c;如何获得更健壮的模型问题解决方法样本不均衡对机器学习模型会造成什么影响什么模型适合样本不均…

小黑今天上午着急忙慌实习公司楼下笔试,晚上准备和尚香疯狂星期四明天继续现场笔试的leetcode之旅:1091. 二进制矩阵中的最短路径

小黑代码1 class Solution:def shortestPathBinaryMatrix(self, grid: List[List[int]]) -> int:# 一定无解的情况if grid[0][0] 1 or grid[-1][-1] 1:return -1# 矩阵长度n len(grid)# 起点即终点if n 1:return 1# 访问集合seen {(0, 0)}# 初始化队列q collections.…

射频功率放大器在空气耦合超声检测系统中的应用

实验名称&#xff1a;空气耦合超声检测系统研究方向&#xff1a;超声测试设备&#xff1a;ATA-8202射频功率放大器、探头、ATA-5620前置放大器、超声波接收器、数据采集卡、计算机。实验过程&#xff1a;图&#xff1a;空气耦合超声检测锂电池系统锂电池空气耦合超声检测具体过…

TryHackMe-Year of the Dog(Linux渗透测试)

Year of the Dog 谁知道呢&#xff1f;狗咬了一口&#xff01; 端口扫描 循例nmap Web枚举 进80 用gobuster扫了一圈没有任何发现&#xff0c;图像也没有隐写 在主页的请求头的cookie有一个id 改成其他错误值会导致异常&#xff0c;看见叫id&#xff0c;习惯性加个了引号 爆…

【java】集合类

文章目录集合根接口LIST列表迭代器Queue|Deque|PriorityQueueSet集合HashSetLinkedHashSetTreeSet键盘读入MapHashMapLinkedHashMapStream流stream()ints()Collections工具类集合根接口 所有的集合类最终都是实现自集合根接口的&#xff0c;比如ArrayList类&#xff0c;它的祖先…