首页
学习
活动
专区
圈层
工具
发布

css绝对定位和相对定位

CSS 绝对定位和相对定位

基础概念

相对定位(Relative Positioning):

  • 相对定位是指元素相对于其正常位置(即静态定位)进行偏移。
  • 使用 position: relative; 来实现。
  • 元素的原始位置会被保留,只是视觉上发生了偏移。

绝对定位(Absolute Positioning):

  • 绝对定位是指元素相对于最近的非 static 定位的祖先元素进行定位。
  • 使用 position: absolute; 来实现。
  • 如果没有非 static 定位的祖先元素,则相对于初始包含块(通常是视口)进行定位。
  • 元素的原始位置会被移除,完全根据定位属性进行布局。

相关优势

相对定位的优势:

  • 不会脱离文档流,不影响其他元素的布局。
  • 可以作为绝对定位元素的参考点。

绝对定位的优势:

  • 可以精确控制元素的位置。
  • 可以将元素从文档流中移除,实现复杂的布局效果。

类型

  • 静态定位(Static Positioning):默认的定位方式,元素按照正常的文档流进行布局。
  • 相对定位(Relative Positioning):元素相对于其正常位置进行偏移。
  • 绝对定位(Absolute Positioning):元素相对于最近的非 static 定位的祖先元素进行定位。
  • 固定定位(Fixed Positioning):元素相对于视口进行定位,滚动页面时位置不变。
  • 粘性定位(Sticky Positioning):元素在滚动到某个位置时变为固定定位。

应用场景

相对定位的应用场景:

  • 微调元素位置。
  • 作为绝对定位元素的参考点。

绝对定位的应用场景:

  • 创建弹出框、工具提示等需要脱离文档流的元素。
  • 实现复杂的布局效果,如悬浮导航栏、侧边栏等。

常见问题及解决方法

问题1:绝对定位元素超出父容器范围

  • 原因:绝对定位元素脱离文档流,不受父容器宽高的限制。
  • 解决方法:
  • 解决方法:

问题2:绝对定位元素没有正确对齐

  • 原因:可能是没有找到合适的参考点,或者定位属性设置不正确。
  • 解决方法:
  • 解决方法:

问题3:相对定位元素影响其他元素布局

  • 原因:相对定位元素虽然不会脱离文档流,但偏移后的位置会影响后续元素的布局。
  • 解决方法:
  • 解决方法:

示例代码

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Positioning Example</title>
  <style>
    .container {
      position: relative;
      width: 300px;
      height: 200px;
      border: 1px solid black;
    }
    .relative {
      position: relative;
      top: 20px;
      left: 20px;
      background-color: yellow;
    }
    .absolute {
      position: absolute;
      top: 50px;
      left: 50px;
      background-color: blue;
      color: white;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="relative">Relative Positioning</div>
    <div class="absolute">Absolute Positioning</div>
  </div>
</body>
</html>

参考链接

通过以上内容,你应该对 CSS 绝对定位和相对定位有了更深入的了解,并且知道如何在实际开发中应用它们。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

实操CSS定位:绝对定位、相对定位和固定定位

在CSS中,定位是一个复杂但重要的概念。它允许我们控制元素在页面上的位置。本文将详细介绍CSS中的三种主要定位类型:绝对定位、相对定位和固定定位。...CSS定位的基本概念在CSS中,position属性用于设置元素的定位类型。它有五个值:static、relative、absolute、fixed和sticky。...本文将重点介绍relative、absolute和fixed。相对定位(Relative Positioning)相对定位元素的定位是相对于其在正常流中的原始位置。...css复制div { position: relative; top: 10px;}绝对定位(Absolute Positioning)绝对定位元素的定位是相对于最近的已定位祖先元素(而不是相对于视口...css复制div { position: absolute; top: 50px; left: 50px;}固定定位(Fixed Positioning)固定定位元素的定位是相对于视口,这意味着即使页面滚动

1.8K10

:CSS 相对定位和绝对定位有什么区别?

[猫头虎全栈面试宝典]:CSS 相对定位和绝对定位有什么区别? 适用人群:前端开发者 | CSS 爱好者 | 面试冲刺者 阅读时长:10分钟,知识点浓缩高能!...学习收益:理解 CSS 相对定位和绝对定位的本质区别,掌握实际项目中的应用技巧! 开篇猫语:为什么学这个很重要?...猫头虎碎碎念: CSS 定位是网页布局的核心能力,无论是简单的按钮微调,还是复杂的弹窗定位,都离不开相对定位和绝对定位的熟练应用。...什么是绝对定位? [进阶问题]:两者的主要区别和适用场景? [实战问题]:如何用它们解决实际开发需求? 1. 基础概念必会:定义+场景 问题 1:什么是相对定位和绝对定位?...面试官问法: 简单描述一下相对定位和绝对定位的工作原理? 它们分别适用于哪些场景?

59410
  • 【CSS】定位 ④ ( 绝对定位特点 | 相对定位不脱标示例 | 绝对定位脱标示例 )

    一、绝对定位特点 ---- 绝对定位 以 带有定位的 父级元素 为基准 , 通过 边偏移 移动位置 ; 如果 绝对定位 的元素 的 父级元素 没有定位 , 那么会 一直向上查找有定位的父级元素 , 直到浏览器...; 绝对定位 元素 不保留 原来的位置 , 是完全脱离 标准流 的 ( 脱标 ) ; 这里与相对定位进行对比 , 相对定位 是相对于 盒子在普通流模式下的位置 进行设置的 ; 相对定位 是 不脱标 的..., 原来的位置还会进行保留 ; 二、相对定位不脱标示例 ---- 相对定位 , 会保留盒子的原始位置 , 如果有其它标准流盒子在后面 , 会在 相对定位 的 盒子原始位置的 基础上进行排列 ; 代码示例...DOCTYPE html> 绝对定位示例 .father...的元素 , 红色盒子是标准流元素 , 标准流元素会在 相对定位元素原坐标的基础上进行排列 ; 三、绝对定位脱标示例 ---- 绝对定位 会 脱离标准流 , 后续的标准流元素会忽略掉绝对定位的元素 ,

    1.8K20

    CSS 定位布局 - 相对、绝对、固定三种定位

    关于定位 我们可以使用css的position属性来设置元素的定位类型,postion的设置项如下: relative 生成相对定位元素,元素所占据的文档流的位置保留,元素本身相对自身原位置进行偏移。...absolute 生成绝对定位元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于上一个设置了定位的父级元素来进行定位,如果找不到,则相对于body元素进行定位。...在上面相对定位的示例中,元素相对定位是基于文档流原来的位置进行偏移定位的。那么,绝对定位是基于什么的呢? 将刚才关于设置相对定位的代码改为绝对定位看看。 ?...好了,从浏览器的呈现来看,设置相对定位就可以让绿色div以外层div进行相对偏移。下面再来看看绝对定位。 ? 父元素div设置了绝对定位之后,的确绿色div就以外层div进行偏移了。...定位元素特性 绝对定位和固定定位的块元素和行内元素会自动转化为行内块元素。 理解练习 制作如下布局: ? 首先写两个div出来,如下 ? 将数字5的div定位到第一个div的右上角 ?

    4.6K40

    【CSS】定位 ⑤ ( 子元素绝对定位 父元素相对定位 | 代码示例 )

    一、子元素绝对定位 父元素相对定位 ---- 绝对定位 要和 带有定位 的 父容器 搭配使用 ; 子元素 使用绝对定位 , 父元素要使用 相对定位 ; 子元素使用 绝对定位 , 在布局中不会保留其位置..., 子元素完全依赖 父容器 的位置 , 此时就要求父容器必须稳定 , 如果父容器使用了 绝对布局 , 父容器就不会保留位置 , 而子元素又依赖父元素 , 这时父元素建议使用相对定位 , 这样能保证页面的稳定性...; 父级元素 需要 占位 , 必须使用 相对定位 ; 子元素 需要 任意摆放 , 必须使用绝对定位 ; 二、代码示例 ---- 父元素使用相对定位 , 子元素使用绝对定位 ; 两个子元素分别放置在 左侧和右侧...DOCTYPE html> 绝对定位示例 /* 父元素设置相对布局...: 40px; height: 40px; background-color: blue; } /* 子元素设置绝对布局 */ .son2 { /* 绝对布局 */

    3.4K20

    【CSS】定位 ② ( 静态定位 | 相对定位 )

    一、静态定位 ---- CSS 中的 静态定位 是 默认的定位方式 , 就是无定位 , 设置该定位方式 , 定位盒子不生效 ; 为盒子模型 设置 静态定位 模式 , 该 盒子模型 就会按照标准流的方式...摆放布局 , 没有任何 边偏移 的效果 ; 在 使用 定位 时 , 几乎不适用 静态定位 ; 二、相对定位 ---- 相对定位 是 盒子模型 相对于 其在 标准流中的位置 设置的 ; 如 : 盒子模型...在标准流 中 , 原来的位置是 (0 , 0) , 设置了相对定位 , 就是 相对于原来的位置 (0, 0) 进行 边偏移 后的位置 ; 下面的示例中 , 盒子模型的初始位置是 在浏览器的 左上角 (.../* 设置标准流下盒子模型大小和位置 */ width: 200px; height: 200px; background-color: pink; /* 上述盒子默认在 0,0.../* 设置标准流下盒子模型大小和位置 */ width: 200px; height: 200px; background-color: pink; /* 上述盒子默认在 0,0

    2.5K20

    微信小程序 - 相对定位和绝对定位 - 相对路径和绝对路径

    微信小程序 - 相对定位和绝对定位 相对定位relative,绝对定位absolute 相对定位:元素是相对自身进行定位,参照物是自己. 绝对定位:元素是相对离它最近的一个父级元素进行定位....相对定位:relative position:relative; /*相对定位*/ left:50rpx; /*相对于自己往右偏离50*/ top:50rpx; /*相对于自己往下偏离...50*/ 绝对定位:absolute position: absolute; left: 50rpx; top: 50rpx; 效果: ?...Attendance-early.png' style="display: {{none}};"> {{zao}} position【定位属性...:static,relative,absolute,fixed,inherit,-ms-page,initial,unset】 相对路径和绝对路径 绝对路径: 以“/”开头代表根目录 相对路径:

    2.2K20

    【CSS】CSS 总结 ⑦ ( 定位 | 静态定位 | 相对定位 | 绝对定位 | 子绝父相 | 固定定位 | 使用绝对定位设置水平垂直居中 | 堆叠顺序 | 显示模式 | 元素隐藏 ) ★

    一、CSS 定位 CSS 定位 相关博客 : 【CSS】定位 ① ( CSS 三大盒子布局方式 | CSS 定位简介 | 边偏移 | 定位模式 ) 【CSS】定位 ② ( 静态定位 | 相对定位 ) 【...CSS】定位 ③ ( 绝对定位 | 父容器有定位相对于父容器定位 | 父容器没有定位相对于浏览器进行定位 ) 【CSS】定位 ④ ( 绝对定位特点 | 相对定位不脱标示例 | 绝对定位脱标示例 ) 【CSS...】定位 ⑤ ( 子元素绝对定位 父元素相对定位 | 代码示例 ) 【CSS】定位 ⑥ ( 使用绝对定位在父容器任意位置显示子容器 | 代码示例 ) 【CSS】固定定位 ( 固定定位概念语法 | 固定定位...和 固定定位 都可以到达 将 元素转为 行内块显示模式 的效果 ; 行内盒子 , 一旦使用了 浮动 / 绝对定位 / 固定定位 就可以将该盒子看做 行内块元素 盒子 , 为该盒子设置宽高等属性 ; 浮动元素...和 绝对定位 / 固定定位 元素 , 都是脱标的 , 都不会触发 外边距塌陷 问题 , 为 盒子设置 浮动 / 定位 , 就不用考虑 外边距塌陷的问题 ; 14、使用绝对定位 / 浮动解决外边距塌陷问题

    4K10

    【CSS】定位 ③ ( 绝对定位 | 父容器有定位相对于父容器定位 | 父容器没有定位相对于浏览器进行定位 )

    一、绝对定位 ---- 绝对定位 是以 父级元素 为基准 , 设置 边偏移 ; 为 子元素 添加 绝对定位 , 如果 父容器有定位 , 则相对于父容器的坐标进行定位 ; 如果 父容器没有定位 , 则相对于浏览器左上角位置进行定位...; 再次引申 , 如果父容器没有定位 , 则查找父容器的父容器 是否有定位 , 如果有则相对于爷爷容器进行定位 ; 上述 父容器 的定位 不一定是 绝对定位 , 其它类型的定位也可以 , 在本博客的示例中..., 使用的就是 相对定位 ; 为父容器添加了相对定位 , 子容器也会相对于 父容器 进行定位 ; 二、标准流下的父容器与子元素关系 ---- 1、标准流下父容器与子容器代码 标准流 父容器 中 包含一个...---- 在上面代码的基础上 , 为 子元素 添加绝对定位 数据 , 分别设置 顶部 和 左侧 50 像素的偏移量 ; /* 绝对定位 */ position: absolute;.../* 顶部偏移量 50 像素 */ top: 50px; /* 左侧偏移量 50 像素 */ left: 50px; 为 子元素 添加 绝对定位 , 如果 父容器有定位 , 则相对于父容器的坐标进行定位

    1.9K20

    CSS 定位布局 - 绝对、固定定位设置居中悬浮div

    仅供学习,转载请注明出处 讨论的问题 在上一篇 CSS 定位布局 - 相对、绝对、固定三种定位 中,发现当使用定位布局的时候,存在一个无法使用margin居中的方法。...下面设置一下相对定位,看看会不会影响这种居中效果 ? 从上图可以看出相对定位并不会影响margin居中布局。 设置一下绝对定位,看看会不会影响这种居中效果 ?...可以从图中看出,绝对定位会影响margin的居中布局。 设置一下固定定位,看看会不会影响margin居中效果 ?...好了,从上面来看,绝对定位已经可以设置div居中了,那么固定定位是否也是如此呢? 固定定位设置div居中 ? ?...固定定位从上图来看,也是可以通过这种方式来进行居中的,基本方法如下: left: 50% margin-left: 负自身宽度的一半 因为绝对定位和固定定位相对于文档流就是悬浮的,这种效果最适合用于制作页眉部分的固定栏目了

    4.9K20

    微信小程序-元素的定位相对绝对固定

    本文链接:https://blog.csdn.net/weixin_42514606/article/details/100127856 CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局...定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。显然,这个功能非常强大,也很让人吃惊。...要知道,用户代理对 CSS2 中定位的支持远胜于对其它方面的支持,对此不应感到奇怪。...语法 position: relative; //相对定位 position: absolute; //绝对定位 position: fixed; //固定定位 // 然后上下左右来定位其距离 left...absolute 绝对绝对,就是位置是觉得,其他元素变化了,他也不动, 但是有个前提就是相对于父元素 —— 前提是父元素的位置是确定的元素框从文档流中删除,并相对于其包含块定位,包含快可能是文档中的另一个元素或者初始包含块

    4.3K31

    CSS:绝对单位、相对单位

    作者:Abudula__ 我们对单位很熟悉,比如说,千克,千米,米等,这些就是绝对单位,我们又有听到太阳的质量等于33个地球,这个就是相对单位。在CSS中,单位也可以分为这两类。...在第二个box里,300px的小框跟上面的框的300px一样长,而第二个框里面的50%跟第一个框的50%为不一样,这个就很好的解释了相对单位和绝对单位。...px px 是 pixels(像素)的缩写,是一种绝对单位,用于屏幕显示器上,传统上一个像素对应于计算机屏幕上的一个点,而对于高清屏则对应更多。...另外 CSS 将光栅图像(如照片等)的显示方式定义为默认每一个图像大小为“1px”。...rem 和 em 一样,rem 也是一种相对单位,不过不一样的是 rem 是相对于根元素 html 的 font-size 来计算的,所以其参照物是固定的。

    3K20

    【CSS】定位 ⑥ ( 使用绝对定位在父容器任意位置显示子容器 | 代码示例 )

    父容器盒子 */ .box { /* 子元素设置绝对定位 父元素需要设置相对定位 */ position: relative; /* 内容尺寸 通过测量图片获得 */ width..., 相对定位会保留元素原始位置 , 其它标准流元素无法使用该位置 ; 因此此处只能使用绝对定位 , 在设置了相对定位的父元素容器中 , 可以使用绝对定位在父容器的任意位置显示任何元素 ; /* 绝对定位元素...- 左上角 */ .top { /* 子元素设置绝对定位 父元素需要设置相对定位 */ position: absolute; /* 该盒子在父容器左上角 */ /* 上边偏移...- 右下角 */ .bottom { /* 子元素设置绝对定位 父元素需要设置相对定位 */ position: absolute; /* 该盒子在父容器右下角 */ /*...- 右下角 */ .bottom { /* 子元素设置绝对定位 父元素需要设置相对定位 */ position: absolute; /* 该盒子在父容器右下角 */ /*

    2.5K10

    css 定位

    一、相对定位 position: relative 相对默认的布局位置进行定位,也就是相对自己应该在的位置来定位。...二、绝对定位 position: absolute .box { position:absolute; top:10px;//相对定位点,从上到下偏移10px left:10px; //相对定位点,从左到右偏移...绝对定位元素也看不见绝对定位元素。所以下图2个box2发生了重叠 ? 绝对定位的定位对象是从它的父元素找是否有relative/fix/absolute。...如果父元素设置了relative/fix/absolute,那父元素就是绝对定位元素的定位点,如果父元素没有设置relative/fix/absolute,就继续往上找,直到body和html为止。...如果都找不到就是以html根节点为定位点。 所以使用absolute绝对定位的时候,最好在父元素上设置相对定位relative。 ? 设置绝对定位之后,块级元素宽度会收缩,宽度由内容决定。

    2.2K20

    CSS定位

    CSS定位在布局的时候绝对是一大主力,从css1的浮动到css2定位支持远胜对其他的支持到现在css3定位的稳定,css的定位的地位不言而喻。...CSS定位有三个:普通流(也有人叫标准流)、浮动和定位流(纯属个人理解)。 普通流:由HTML标签特性决定,块、行、行内,由标签特性由上往下布局。...定位流:有static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)四种定位。...相对定位relative:完全跟普通流一样,只不过调整距离的时候是按照自身的位置调整,不是根据附近的节点。主要用途是用来给绝对定位一个盒子。...绝对定位absolute:脱离文档流,相对于其包含块定位,在没有设置距离的时候会随着父元素移动,设置距离的时候在没有相对定位的块里面,以body为块。在设置相对定位的块里面,设置距离以这个块为准。

    1.3K20

    CSS 定位

    这是我参与「掘金日新计划 · 8 月更文挑战」的第21天,点击查看活动详情 >> CSS知识框架 定位 普通流 定义:自上而下,从左至右 浮动 脱离标准普通流的控制,移动到其父元素中指定位置的过程。...定位position 定位属性 静态定位 static 默认方式相对定位:relative 相对定位是将元素相对于它在标准流中的位置进行定位 相对定位最重要的一点是,它可以通过边偏移移动位置,但是原来的所占的位置...,继续占有 其次,每次移动的位置,是以自己的左上角为基点移动(相对于自己来移动位置)绝对定位:absolute 绝对定位最重要的一点是,它可以通过边偏移移动位置,但是它完全脱标,完全不占位置。...子绝父相 绝对定位的盒子居中:首先left 50% 父盒子的一半大小/然后走自己外边距负的一半值就可以了 margin-left。...固定定位 以浏览器窗口作为参照物来定义网页元素 固定定位的元素跟父亲没有任何关系,只认浏览器 固定定位完全脱标,不占有位置,不随着滚动条滚动。

    1.2K40

    css定位

    元素的正常定位 元素的类型分为块级元素和行级元素。 比如div、h1 或 p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。...相对定位 相对定位是对于块级元素原本应该出现的位置来说的。...然而相对定位中,其他的元素位置不变,所以相对定位会导致覆盖其他元素的内容。 绝对定位 绝对定位是将元素脱离文档流,把元素独立于其他所有的元素,定位在页面中的指定位置上。... css"> img {float:right} 在下面的段落中,我们添加了一个样式为... ---- 如果说像绝对定位脱离了文档流,那在这个例子里面,图片肯定是盖住了文字导致文字无法正常看的,但是用浮动的话,文字会围着图片,而不会导致文字被挡住的情况。

    1.4K20

    css 定位

    下 relative对fixed    限制z-index层级; 2)本身特征 定位 1、相对自身   定位移动相对于自身   2、无侵入   relative定位不影响其他元素   margin...影响其他元素布局 应用   拖拽效果 同时设置top/bottom left/right   绝对定位:拉伸   相对定位:斗争   top VS bottom   top起作用   left VS...位置跟随   原来什么位置,绝对定位后还是什么位置   (ie7 永远的inline-block水平) 配合margin的精确定位 4)绝对定位实现相对效果 位置特别重要——充分利用跟随特性 图标图片相覆盖...;   3.如果多个绝对定位交错,非常非常少见,z-index:1控制;   4.如果非弹窗类的绝对定位元素z-index>2,必定z-index冗余,请优化!...备注:动画尽量作用在 绝对定位的元素上。

    3.4K10
    领券