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

news/2024/7/8 3:44:12 标签: 前端, html5, css3

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.niftyadmin.cn/n/232709.html

相关文章

使用 Spring 进行依赖注入的最佳实践

大家好我是易安&#xff0c;本篇文章我将向你展示如何使用Lombok来实现Spring框架中的最佳实践。 Spring框架本身提供了各种不同的方法来执行依赖注入。选项的灵活性是Spring框架的优势之一。但是&#xff0c;并非所有的依赖注入选项都被认为是最佳实践。有些选项实际上非常糟糕…

基于深度学习PaddleOcr身份证识别

之前使用opencv机械学习处理图片&#xff0c;使用Testseract-OCR进行身份证和姓名识别&#xff0c;发现受背景图片的影响比较大&#xff0c;转PaddleOcr&#xff0c;识别成功率能达到使用要求。 PaddleOcr官网地址&#xff1a;飞桨PaddlePaddle-源于产业实践的开源深度学习平台…

Spring中Bean初始化和销毁的多种方式

Spring中Bean初始化和销毁的多种方式一、Bean的多种初始化方式1.PostConstruct注解2.实现InitializingBean接口3.声明init-method方法二、Bean的多种销毁方式1.PreDestroy注解2.实现DisposableBean接口3.声明destroy-method方法三、总结Spring中支持在Bean的加载时声明初始化方…

怎样找回u盘里误删的文件

相信有很多人都喜欢通过u盘来存储文件&#xff0c;方便我们在日常生活和工作中使用。通常&#xff0c;这些将是一些重要的文件&#xff0c;如照片、工作文档等等。但在使用过程中&#xff0c;不可避免的会进行文件的清理等&#xff0c;如果我们不小心误删了u盘里的文件呢&#…

hive sql和mysql区别

mssql 的正式名字是 SQL Server MS公司出的。图形操作界面好一些&#xff0c;性能还可以。在在mssql和oracle上不能互换.支持OLEDB连接.asp、mssaql只能for window mysql 就是mysql 下面是readme:免费软件。性能也可以。速度快&#xff0c;用于小规模.命令行界面.(可以装图形操…

Linux应用编程(信号基础)

一、基本概念 信号是事件发生时对进程的通知机制&#xff0c;也可以把它称为软件中断。信号与硬件中断的相似之处在于能够打断程序当前执行的正常流程&#xff0c;其实是在软件层次上对中断机制的一种模拟。大多数情况下&#xff0c;是无法预测信号达到的准确时间&#xff0c;…

AutoSAR软件组件开发的两类工作流程(Matlab/Simulink)

目录 前面 自顶向下 导入arxml文件 生成模型框架 搭建算法模型 生成代码 自下向上 前面 如何在Matlab进行AutoSAR软件组件SWC的开发&#xff1f;也就是下图红框标识出来的部分。 常规的有两种方式自顶向下与自下而上&#xff1a; 从上往下&#xff1a;从软件组件描述文…

总结824

学习目标&#xff1a; 4月&#xff08;复习完高数18讲内容&#xff0c;背诵21篇短文&#xff0c;熟词僻义300词基础词&#xff09; 学习内容&#xff1a; 英语&#xff1a;早上 读了《nasty place》&#xff0c;单词150个 高数&#xff1a;看了12讲二重积分的内容&#xff0…