vue: position: relative; 和 position: absolute; 的区别与使用

主要区别在于如何定位元素和元素相对于哪个参考点进行定位。

1. position: relative;

  • 相对定位:元素保持在文档流中的原始位置,但你可以使用 toprightbottomleft 属性在原始位置的基础上进行偏移。
  • 不会影响其他元素的布局:相对于原始位置的偏移不会影响其他元素,它们仍然会把这个元素当作它原始位置上的元素来处理。
  • 参考点:元素相对于自身原始位置进行定位。

示例

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

在这个例子中,.relative-box 元素会在文档流中保留其原本的位置,但它会在原位置基础上向下移动 20px,向右移动 10px。不过,其他元素仍然会认为它在原位置,元素之间的布局不会改变。

2. position: absolute;

  • 绝对定位:元素完全脱离文档流,它不再占据原来的位置,其他元素会像它不存在一样排列。
  • 参考点:相对于最近的具有定位属性(即 position: relative;, absolute;fixed;)的父元素进行定位。如果没有找到这样的父元素,元素会相对于整个浏览器窗口(即 body)定位。
  • 不保留原始位置:一旦设置了 position: absolute;,元素的布局将与文档流无关,因此它不会在页面中为其他元素留出空间。
.absolute-box {
  position: absolute;
  top: 20px;
  left: 10px;
}

在这个例子中,.absolute-box 会相对于最近的具有定位属性的父元素,或整个浏览器窗口移动到距离参考点 20px 下方,10px 右侧的位置。因为它脱离了文档流,其他元素将不再受它的影响,并会像它不存在一样排列。

总结

属性relativeabsolute
定位参考点相对于元素自身的原始位置相对于最近的定位父元素或整个页面
是否脱离文档流否,仍然占据原位置是,脱离文档流,不再占据原位置
影响其他元素不会影响其他元素的布局会影响,因为它不占据位置,其他元素会根据文档流重新排列
应用场景当你需要在保持文档流的同时进行小范围调整时使用当你需要精确控制元素的位置,且不希望它影响其他元素布局时使用

何时使用

  • relative:用于微调元素位置,但不想让其脱离文档流(例如细微的视觉调整)。
  • absolute:用于完全自由地控制元素的位置,且不希望它影响页面的其他布局(例如弹出窗口、悬浮框等)。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值