相对定位和绝对定位的区别是什么呢_第3页回答

2021-04-09 11:10发布

25条回答
梵梵
2楼 · 2021-04-11 14:36

1、绝对定位

绝对定位指的是通过规定HTML元素在水平和垂直方向上的位置来固定元素,基于绝对定位的元素不会占据空间。

绝对定位的位置声明是相对于已定位的并且包含关系最近的祖先元素。如果当前需要被定为的元素没有已定位的祖先元素作为参考值,则相对于整个网页。

2、相对定位

相对定位与绝对定位的区别在于它的参照点不是左上角的原点,而是该元素本身原先的起点位置。并且即使该元素偏移到了新的位置,也仍然从原始的起点处占据空间。



我的网名不再改
3楼 · 2021-04-11 16:06

CSS中的position属性可以设置元素的定位类型,比如fixed,relative,absolute等等,但是很多人搞不懂relative相对定位和absolute绝对定位的区别,这篇文章就和大家讲讲什么是绝对定位,什么是相对定位,以及相对定位和绝对定位的区别,有一定的参考价值,感兴趣的朋友可以参考一下。

一、相对定位


相对定位是指,该元素相对自己原来位置,偏移一定距离,元素可以通过顶部top,底部bottom,左侧left和右侧right属性来设置定位。它相对的是它自己。


举例:大div里面包含5个小P,给P不同的类名,分别设置绝对定位和相对定位,看看他们有什么变化


没有设置定位的代码如下:



效果如图所示:


aa.jpg


现在给第一个p标签设置相对定位,让他相对于自己原来的位置上偏移50px,左边偏移50px,具体代码如下:


.p1{width: 100px;height: 100px;background: red;position: relative;left: 50px;top: 50px;}


效果图:

bb.jpg


对比前后效果图,有没有发现第一个p元素,它相对自己原来的位置发生了偏移,而且偏移以后,它依然占据原来的位置,后面的元素不会填补,如果有重叠,会重叠在它文档流元素之上,相对定位不会把其他元素挤掉。


二、绝对定位


绝对定位是指,该元素相对它的父元素偏移一定距离,元素可以通过顶部top,底部bottom,左侧left和右侧right属性来设置定位。


注:相对的是父元素,而且这个父元素必须设置了position属性。如果父元素没有position属性,则从最近的父元素开始找,直到找到body为止。


举例:给第三个p元素设置绝对定位,让其上偏移200px,左偏移200px,具体代码如下:


.p3{width: 100px;height: 100px;background: yellow;position: absolute;left: 200px;top: 200px;}


效果图:

cc.jpg



 


对比图1和图3可以发现,设置了绝对定位的元素,会脱离文档流,后面的元素会填补上来。因为第三个p标签的父元素为div,没有给div设置position属性,所以它最终找到body,相对于body发生了偏移。


三、相对定位和绝对定位的区别


相对定位:相对自己原来的位置发生偏移,不会脱离文档流,不会删除它原来在文档流中占据的位置,且后面是元素不会填补空位


绝对定位:相对它的父元素发生偏移(而且这个父元素必须设置了position属性,如果父元素没有position属性,则从最近的父元素开始找,直到找到body为止),会脱离文档流,后面的元素会填补它原来的位置。


 



任@先生
4楼 · 2021-04-11 16:20

一、主体不同

1、相对定位:是设置为相对定位的元素框会偏移某个距离。

2、绝对定位:absolute 脱离文档流,通过 top,bottom,left,right 定位。

二、特点不同

1、相对定位:在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。

2、绝对定位:选取其最近的父级定位元素,当父级 position 为 static 时,absolute元素将以body坐标原点进行定位,可以通过z-index进行层次分级。


来几粒速效枸杞
5楼 · 2021-04-11 20:49

相对定位指的是相对于上一层的div来说的,所有的距离都是相对于本div的外层div。而绝对定位指的是任何时候都是以页面的边来定位的

我是大脸猫
6楼 · 2021-04-11 21:53

之前一直搞不明白html中positon:relative; 和 position:absolute;这两个属性。这里记录一下。


理论解释:


相对定位:该元素相对于自己原有位置,偏移一定距离。相对的是自己。


绝对定位:该元素相对于其父元素,偏移一定距离。相对的是父元素,重点是这个父元素也需要是设置了position属性。从最近的父元素开始找,直到找到body位置为止。


好吧,光看理论解释可能有点懵逼,还是来个小demo吧,直观。。。


1)相对定位


   

       

相对定位:相对于自己原来的位置,偏移一些距离

       

相对定位,相对的是自己

   

对应的css样式:


        #test{

            height: 300px;

            width: 300px;

            background: gray;

        }

 

        /*p标签本身会有padding和margin值*/

        p{

            margin: 0px;

            padding: 0px;

        }

 

        .p1{

            height: 100px;

            width: 100px;

            background: blue;

        }

 

        .p2{

            height: 80px;

            width: 80px;

            background: red;

        }

运行后效果是:(这时没有设置position属性呢)




然后,给p1设置相对定位


        .p1{

            height: 100px;

            width: 100px;

            background: blue;

            /*设置相对定位*/

            position: relative;

            /*相对于左边偏移20px,相对于上边偏移20px*/

            left: 20px;

            top:20px;

        }

运行后效果如下: 



ok了,相对定位就是这样啦,需要注意的是,p1虽然偏移了,但是同时它还占着它原来的位置。


2)绝对定位


再增加一個div


   

       

相对定位:相对于自己原来的位置,偏移一些距离

       

相对定位,相对的是自己

   

 

   

       

绝对定位:相对于自己父元素的位置,偏移一些距离

       

绝对定位,相对的是父元素

   

相应的样式


        #test2{

            height: 300px;

            width: 300px;

            background: pink;

        }

 

        .p3{

            height: 100px;

            width: 100px;

            background: green;

            /*設置绝对定位*/

            position: absolute;

            left: 30px;

            top: 30px;

        }

 

        .p4{

            height: 90px;

            width: 90px;

            background: gold;

        }

同時將p1的相对定位去掉。这时候效果如下:




然後給p3設置绝对定位:


    .p3{

            height: 100px;

            width: 100px;

            background: green;

            /*設置绝对定位*/

            position: absolute;

            left: 30px;

            top: 30px;

        }

 

        .p4{

            height: 90px;

            width: 90px;

            background: gold;

        }

觉得效果是怎樣呢?因爲test2是p3的父元素,所以猜測效果是p3相对于test2,向左偏移30px,向下偏移30px。那麽究竟是不是這樣呢??运行后效果如下:




我擦,跟想的不一樣啊。。。


別急,这是因为:虽然test2是p3的父元素,但是test2沒有設置position屬性,所以p3就會繼續向上找,找test2的父元素,直至到body为止。所以就出現了如上效果。那麽,如果想p3相对于test2,向左偏移30px,向下偏移30px,只需給test2設置position屬性即可。


        #test2{

            height: 300px;

            width: 300px;

            background: pink;

            position: relative;

        }

效果如下: 



ok啦,這就是绝对定位。相对的是父元素。


需要注意的是:绝对定位的元素不占原來的位置,這就是p4移動到test2左上角的原因。



希希
7楼 · 2021-04-12 11:08

相对定位和绝对定位是定位的两种表现形式,区别如下:

一、主体不同

1、相对定位:是设置为相对定位的元素框会偏移某个距离。

2、绝对定位:absolute 脱离文档流,通过 top,bottom,left,right 定位。

二、特点不同

1、相对定位:在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。

2、绝对定位:选取其最近的父级定位元素,当父级 position 为 static 时,absolute元素将以body坐标原点进行定位,可以通过z-index进行层次分级。




寂静的枫林
8楼 · 2021-04-14 11:31

相对定位和绝对定位是定位的两种表现形式,区别如下:

一、主体不同

1、相对定位:是设置为相对定位的元素框会偏移某个距离。

2、绝对定位:absolute 脱离文档流,通过 top,bottom,left,right 定位。

二、特点不同

1、相对定位:在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。

2、绝对定位:选取其最近的父级定位元素,当父级 position 为 static 时,absolute元素将以body坐标原点进行定位,可以通过z-index进行层次分级。


LERRR
9楼 · 2021-04-16 08:45

一、主体不同

1、相对定位:是设置为相对定位的元素框会偏移某个距离。

2、绝对定位:absolute 脱离文档流,通过 top,bottom,left,right 定位。

二、特点不同

1、相对定位:在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。

2、绝对定位:选取其最近的父级定位元素,当父级 position 为 static 时,absolute元素将以body坐标原点进行定位,可以通过z-index进行层次分级。


相关问题推荐

  • 回答 120

    相对前几年来说,要高上不少了,毕竟入行的人也是越来越多了,基础的工作对应想要参与的人群基数越来越大,但是对于高端人才的需求还是很多,人才还是相对稀缺性的。所以,想要学web或者其他技术也一样,别等,别观望。web前端就业方向特别多包括web前端开发...

  • 抓包是什么意思?2020-04-01 17:36
    回答 7
    已采纳

    抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。抓包可以通过抓包工具来查看网络数据包内容。通过对抓获的数据包进行分析,可以得到有用的信息。目前流行的...

  • 回答 89

    常用的前端框架有Bootstrap框架、React框架、Vue框架、Angular框架、Foundation框架等等

  • 回答 65
    已采纳

    前端是目的就业前景非常不错的一个计算机技术,但是自学的话还是有一定难度的,网络上自学是碎片化的,同时互联网技术跟新换代快,自己的话比较吃力也学习不到最新的技术。

  • SSR 是什么意思?2020-03-20 18:56
    回答 6

    SSR就是一台服务器,可以利用 SSR 在远程的服务器上配置 SSR,使其能够成为 SSR 节点,这样本地电脑或者其它设备利用 SSR 节点实现 VPN 或者远程上网及游戏加速等方面。ShadowsocksR(简称 SSR)是 Shadowsocks 分支,在 Shadowsocks 的基础上增加了一些数据...

  • 回答 52
    已采纳

    计算机培训方向比较多,建议找适合自己的方向选择培训编程类:JAVA、WEB、Python、C/C++、C#等测试类:软件测试运维类:云计算、网络安全设计类:UI设计、3D建模等

  • 回答 11

    1、代码判断xAxis: {type: 'time',splitLine: {show: false},interval: 3600, // 设置x轴时间间隔axisLabel: {formatter: function(value, index) {return liangTools.unix2hm(value)}}},首先要把xAxis 显示类型设置成time,然后设置对应X轴......

  • 回答 8

    HTML5 + CSS + JavaScript 开发 跨平台重用代码 

  • 回答 4

    采用rem单位自动响应,并提供独有栅格化系统快速定义宽高、边距节省css代码量,同时总结各大型移动端网页,提供一套ui颜色搭配规范,尺寸规范,字体规范等。

  • 回答 10

    iView UI、ioni、SUI

  • 回答 6

     jQTouch 

  • 回答 4

    如果只是普通的移动端用vue react 或者dva 如果是要编译成小程序什么的或者混生 就用uni-app(对应vue语法)taro(对应react) 或者纯原生 这个没有限制的,自己怎么舒服怎么来

  • 回答 4

    因为可以运用在网页和小程序的开饭中,而且开源,用着便宜,企业都很喜欢

  • 回答 10

    一、Visual Studio Code下载地址:https://code.visualstudio.com/微软在2015年4月30日Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。Visual Stud...

  • 回答 9

    jQuery自带淡入淡出效果 https://www.w3school.com.cn/jquery/jquery_fade.asp 看看这个 

没有解决我的问题,去提问