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相对定位和绝对定位相关知识的分享,相信看完这篇文章的小伙伴们一定有了一定的收获。当然,可能有不足的地方,欢迎大家在评论区留言指正!

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

在这里插入图片描述

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
相对定位绝对定位CSS两种常用的定位方式,它们有以下区别: 1. 相对定位是相对于元素自身的初始位置进行移动,而不会影响其他元素的位置。通过设置left、right、top、bottom等属性来控制元素的位置。相对定位的元素仍然占据原来的空间,不会影响其他元素的布局。\[1\] 2. 绝对定位是相对于最近的已定位祖先元素进行定位,如果没有已定位的祖先元素,则相对于文档的初始位置进行定位。通过设置left、right、top、bottom等属性来控制元素的位置。绝对定位的元素脱离了文档流,不占据空间,其他元素会填补它离开的位置。\[3\] 3. 相对定位的移动是相对于元素自身的初始位置进行的,所以移动的范围是有限的。而绝对定位的移动是相对于已定位祖先元素或文档的初始位置进行的,所以移动的范围更大。\[2\] 总结来说,相对定位是相对于元素自身进行移动,不会影响其他元素的位置,而绝对定位是相对于已定位祖先元素或文档进行移动,会影响其他元素的位置。 #### 引用[.reference_title] - *1* *2* *3* [CSS绝对定位相对定位区别作用](https://blog.csdn.net/zxh996/article/details/118365423)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Dorable_Wander

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

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

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

打赏作者

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

抵扣说明:

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

余额充值