position:absolute与position:relative的区别

absolute意思为绝对的,relative意为相对的。然而其用法与我们平常所想的有所不同。

大多数人可能会觉得absolute绝对定位是根据浏览器窗口定位,实则不是。absolute定位是相对于父元素的绝对定位,且父元素必须有position:absolute或者position:relative,若其父元素没有,则逐层网上寻找,直至浏览器窗口

relative相对定位是相对于当前位置定位,即相对于自己定位。

<html>
<head>
<style type="text/css">
h2.pos_left
{
position:relative;
left:-20px
}
h2.pos_right
{
position:relative;
left:20px
}
</style>
</head>

<body>
<h2>这是位于正常位置的标题</h2>
<h2 class="pos_left">这个标题相对于其正常位置向左移动</h2>
<h2 class="pos_right">这个标题相对于其正常位置向右移动</h2>
<p>相对定位会按照元素的原始位置对该元素进行移动。</p>
<p>样式 "left:-20px" 从元素的原始左侧位置减去 20 像素。</p>
<p>样式 "left:20px" 向元素的原始左侧位置增加 20 像素。</p>
</body>

</html>

以上代码执行结果如下:


在使用绝对定位时,除了该元素使用position:absolute之外,一般在其上一级父元素上使用position:relative,而不在最外层的元素(例如div)上应用,这是相对定位的最小化原则,避免最外层元素因位置变动而影响整个页面布局。

参考张鑫旭老师的文章,推荐如下定位:

absolute+margin(左上角元素定位,作用于当前元素)、float+relative(右上角元素定位,作用于当前元素)和relative+absolute(右下角元素定位,直接父标签+当前定位元素)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值