CSS关于绝对定位absolute的理解

1.absolute 元素将会脱离正常的文档流,所以 其周围的元素将会忽略它的存在。如同 absolute 元素的 display 属性被设为了 none 一样。此时,我们可以使用 top,bottom,left,right 等属性对 absolute 元素进行绝对定位。一般情况下定义两个属性,top 或 bottom,left 或 right。这个绝对定位需要稍微理解下,因为这里容易与 relative产生混淆。例如,当对 absolute 元素添加 left:10px定位后,这个left究竟是对哪个元素而言呢?其实,此时将会 往上查找absolute元素的第一个父元素,如果该父元素的 position 值存在(且不为 static),那么这个 left:10px元素具备不为static的position值为止,如果不存在满足条件的父元素,则会根据最外层的 window 进行定位。(元素默认position属性为static)
2.当只给元素定义了position:absolute时,如果top, bottom, left, right都没有指定时,则left,top值与原文档流位置一致(当然了它是不占位的)。
3.示例

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title></title>  
<style>
.div1 span{
    position: absolute;
    top:10px;
}
.div2 span{
    position: absolute;
}
.div3 span{
    position: absolute;
    left: 400px;
}
.div4 span{
    position: absolute;
    top:50px;
}

</style>
</head>

<body>
    
     <div class="div1" style="position: relative;width: 150px;height: 100px;background-color: cadetblue;">
        第一个div块
        <span>11</span>
        <span>22</span>
        <span>33</span>
    </div>
    <div class="div2" style="width: 150px;height: 100px;background-color:chocolate;">
        第二个div块
        <span>44</span>
        <span>55</span>
        <span>66</span>
    </div>
    <div class="div3" style="position: relative;width: 150px;background-color:darkgreen;">
        第三个div块
        <span>111</span>
        <span>222</span>
        <span>333</span>
    </div>
    <div class="div4" style="width: 150px;height: 100px;background-color:chocolate;">
        第四个div块
        <span>444</span>
        <span>554</span>
        <span>666</span>
    </div>
</body>
</html>

在这里插入图片描述

(1)第一个div块中span元素找到第一个父元素定位为relative,不为static,以此定位,但是没有设置left,只设置了top,按照top为10px,并放在普通文档流之后。但是其本身已经不占据任何空间,所以每一个span都会叠在上一个span的上面。
(2)第二个div块中span元素找不到父元素不为static定位,则以window进行定位,由于没有设置top,left,则直接按照普通文档流的位置放置。
(3)第三个div块中span元素找到第一个父元素定位为relative,则以其为定位。
(4)第三个div块中span元素以window定位。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

啊啊啊~~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值