如何使用css中position的相对定位和绝对定位?

2025-11-03 00:05:31

position属性可以设置元素的定位方式,默认是static, 常用属性relative、absolute、fixed。在实际项目开发中,这三个属性值是非常常用的。html中,元素从上到下依次排列,如果需要让一个元素堆叠在另一个元素上,那么就需要position这个属性了。

属性值relative

它让元素变成相对定位,它相对的是元素自身位置来定位的,而且使用了relative定位后,原来的位置会一直占用,也就是说它下面的元素是不会移上来的。

例子:

html部分

<div class="parent">

        <div class="a">

            元素A

        </div>

        <div class="b">

            元素B

        </div>

</div>

css部分

 .a {

            width: 200px;

            height: 200px;

            background-color: green;

  }

 .b {

            width: 50px;

            height: 50px;

            background-color: yellow;

  }

效果如下图

如何使用css中position的相对定位和绝对定位?

现在我们给元素A设置position:relative,  并调整一下位置,向右移20px

.a {

            position: relative;

            left: 20px;

            width: 200px;

            height: 200px;

            background-color: green;

 }

如下图可以看到,元素A移动了20px,下面的元素B并没有移上来

如何使用css中position的相对定位和绝对定位?

属性值absolute

它让元素变成绝对定位,且相对于除static定位以外的一个有定位的(relative,absolute,fixed等)父元素定位,如果没有这样的一个父元素,那就找祖先元素,一直往上找。它会让元素脱离文档流,且不会保留原来的位置,也就意味着下面的元素会移上来。

例子:

css部分

  .a {

            width: 200px;

            height: 200px;

            background-color: green;

        }

 .b {

            width: 50px;

            height: 50px;

            background-color: yellow;

  }

 .parent {

            margin-top: 50px;

            border:1px solid red;

  }

html部分

 <div class="parent">

        <div class="a">

            元素A

        </div>

        <div class="b">

            元素B

        </div>

 </div>

初始效果如下,可以看到元素A离顶部是有一段距离的,是因为我们给他的父元素设置了距离顶部50px

如何使用css中position的相对定位和绝对定位?

现在我们给元素A设置position:absolute, 并移动位置

.a {

            position: absolute;

            top: 0;

            left: 100px;

            width: 200px;

            height: 200px;

            background-color: green;

   }

效果图如下可以看到,元素B位置上移了。元素A脱离了文档流,因为它的父元素没有设置定位,所以就一直往上找,找不到就相对于body定位了

如何使用css中position的相对定位和绝对定位?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢