绝对定位和相对定位的区别和应用(CSS中绝对定位和相对定位的区别及作用)

绝对定位和相对定位是在前端开发中常用的两种定位方式,分别通过给 HTML 元素设置 top、bottom、left、right 属性或 position 属性来定义元素的位置。下面将从多个方面详细地介绍绝对定位和相对定位的区别和应用。

一、基础概念

相对定位是基于元素自身位置进行相对定位,元素仍然占据原文档流中的位置,但可以通过 top、left、bottom、right 属性进行微调。


.relative {
  position: relative;
  top: 10px;
  left: 20px;
}

绝对定位是将元素的位置相对于其最近的已定位祖先元素进行定位,如果没有已定位的祖先元素,则根据 body 定位。


.absolute {
  position: absolute;
  top: 10px;
  right: 20px;
}

二、区别

1、对文档流的影响

相对定位元素仍然占据原文档流的位置,不会对其他元素产生影响。而绝对定位元素不占据文档流中的位置,会对其他元素的位置产生影响,可能会使其他元素覆盖在其上方或下方。

2、定位方式

相对定位是基于元素自身进行定位,而绝对定位是基于已定位的祖先元素进行定位。

3、占据空间

相对定位元素仍然占据原文档流中的位置,宽度和高度将保持不变。而绝对定位元素不占据文档流中的位置,宽度和高度可以通过设置 width、height 属性进行定义。

三、应用场景

1、相对定位

相对定位常用于微调元素的位置,使其相对于原有位置稍微偏移一些。


.container {
  position: relative;
}
.box {
  position: relative;
  top: 10px;
  left: 20px;
}

2、绝对定位

绝对定位可以用于实现层级布局,如弹出窗口、菜单等。可以将弹出框等元素设置为绝对定位,并设置 z-index 值,使其浮在其他元素之上。


.modal {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 999;
}

此外,绝对定位还可以用于创建轮播图、搜索框等效果。

四、总结

绝对定位和相对定位都是前端开发中常用的定位方式,应用场景各不相同。相对定位基于元素自身进行定位,不会对其他元素产生影响,常用于微调元素位置;而绝对定位基于已定位的祖先元素进行定位,可以用于实现层级布局等效果。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注