一篇领会position的属性值relative/fixed/absolute的区别

position的属性值relative/fixed/absolute的区别


一、概况: web前端开发中,样式是基础中的基础,做定位时候,常常会出现相对定位理解不透彻的问题,下面,我为大家简单又清晰的解答这三个属性值的区别。


二、简要:

区别 描述
相对移动 relative是相对自己的初始位置进行left/top/right/bottom移动的;absolute是相对父元素进行移动的,父元素要有position属性;fixed是相对html文档定位的
是否占用文档流 relative没有脱离文档流,还占用位置;absolute、fixed是脱离文档流的,也就是在页面中不占用空间

三、代码演示
设置border比较好演示。下面是没有position属性的样子

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    body,
    html {
     
     
      height: 100%;
      width: 100%;
    }

    .box {
     
     
      width: 400px;
      height: 400px;
      text-align: center;
      border: 1px solid blue;
      margin: 100px auto;
    }

    .fa {
     
     
      width: 160px;
      height: 160px;
      line-height: 160px;
      border: 1px solid black;
      margin: 20px;
    }

    .son {
     
     
      width: 80px;
      height: 80px;
      line-height: 80px;
      border: 1px solid red;
      margin-left: 20px;
    }

    .grandson {
     
     
      width: 40px;
      height: 40px;
      line-height: 40px;
      border: 1px solid #aff;
    }
  </style>
</head>

<body>
  <div class="box">
    <div class="fa">
      <div class="son">
        <div class="grandson">*</div>
      </div>
    </div>
  </div>
</body>

</html>

在这里插入图片描述
这里我就不做具体的演示了,突然觉得这个是需要自己动手操作的,只有自己真的做了才会真的懂得其中的区别,但是我会给大家罗列出需要测试的内容

  • 子元素son加positin:absolute;看效果
  • 父元素fa加relative看效果
  • 父元素不加,孙子元素加position:absolute;父元素不加,孙子元素加relative
  • fa加absolute,son加position:relative;fa加absolute,son加position:absolute;fa加absolute,son加position:fixed;fa父元素加absolute,子元素son加position:relative;
  • 父元素加postion:relative;top:10px;看是否移动,怎么移动的
  • ……
    大家可以根据自己的理解尝试不同的组合,来消除自己对我的简要总结的理解误区,只有自己真的尝试了,理解的才更深刻,一劳永逸才真的有可能实现。

结语:

  自己动手,丰衣足食!!!

猜你喜欢

转载自blog.csdn.net/qq_38110274/article/details/109802127
今日推荐