相对定位、绝对定位和固定定位的对比和层级关系

792 阅读1分钟

默认值

position:static;

相对定位

position:relative;最常用的定位,不脱离文档流,为绝对定位服务

  • 相对于自身位置偏移;
  • 移动基点为左上角,从元素原始位置的左上角向右向下画出(left,top)坐标轴(理解为新位置距离left、top的距离),然后再看坐标轴上的新位置的数值;
  • 移动时不会影响其他盒子。 我们通过一个具体的实例来体会一下相对定位是如何设置的: QQ图片20220408155859.png

绝对定位

position:absolute;

  • 把靠得最近的+已经relativ定位的祖先元素当作画布距离判断(新的位置在祖先元素中,距离top,right,bottom,left的距离,写两个就足够定位到准确位置);
  • 原来的位置不会保留(可以看到相对定位的例子中,原来的位置都没有被其他盒子顶替或覆盖)。 我们依旧是通过一个具体的实例来体会一下绝对定位是如何设置的: QQ图片20220408175055.png

固定定位

position:fixed;

  • 脱离了文档流;
  • 以浏览器窗口作为定位画布;
  • 定位画布不受滚动条影响(浏览器窗口仅仅是和页面);
  • 适用于固定广告位,返回顶部按钮,吸顶导航栏等的应用。 我们再看一个具体的实例来体会一下绝对定位是如何设置的: QQ图片20220408184323.png

层级关系

z-index:整数值;

  • 设置了position的元素,可以用z-index来调整重叠关系;
  • 默认为0,数值越大,层级越高,层级高的可以盖住层级低的元素;
  • 相对定位的层级提高,可以将标准文档流中的元素以及浮动元素盖在下面。