子div使用了绝对定位,父div没有使用定位(相对定位)

子div使用了绝对定位,父div没有使用定位(相对定位)

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    /*完善下列代码*/
    .per{
     width: 300px;
     height: 300px;
     background: red;
     margin-left:200px;
     margin-top: 200px;
   }
 
   .son{
     width: 100px;
     height: 100px;
     background: blue;
     position: absolute;
     top: 100px;
     left:100px;
   }
  </style>
</head>
<body>
  <div class="per">
    <div class="son"></div>
  </div>
</body>
</html>
老师,这里我把父div的相对定位去掉了,为什么蓝块就跑到红块外面去了?不是说,绝对定位是相对于父一级的吗?那这里,父一级没加相对定位,绝对定位怎么就没有参照父一级了?也就是说,如果父一级不加相对定位,绝对定位就不会参照父一级?可是视频里说,绝对定位是参照直接父一级的啊,怎么矛盾了?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,同学的理解有点问题,相对是相对于父div定位的,如果父div移动,那么子div也会跟着父div移动的。如果父div固定不动,子div设置相对定位,是相对于原来的位置进行定位。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

好帮手慕阿满 2019-09-26 18:15:19

同学你好,绝对定位相对于已定位的最近的祖先元素,如果没有已定位的最近的祖先元素,那么它的定位就相对于最初的包含块,如:

http://img1.sycdn.imooc.com//climg/5d8c8ee50971d60113010294.jpg

所以父div没有设置定位,子元素设置绝对定位,那么子div是相对于body定位。

如果将子div的绝对定位改为相对定位,将会相对于父div定位,出现在父div中间。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 天才少年25 #1
    相对定位是相对于自己啊!就算写在父div里,也不会是相对于父div来定位吧?应该还是相对于自己原来的位置来定位吧。
    2019-09-26 18:42:25
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师