为啥用absolute定位的元素,其父元素通常需要relative相对定位呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥用absolute定位的元素,其父元素通常需要relative相对定位呢?相关的知识,希望对你有一定的参考价值。

绝对定位(absolute)是需要一个坐标系才能实现的,也就是说必须先确定原点(0,0),然后才能把指定的元素定位到一个指定的地点,而坐标系从何而来呢?一般是用离自己最近、且必须是定位元素(绝对定位absolute、相对定位relative、固定定位fixed均可)的祖先元素,如果所有祖先元素都不是定位元素,就用网页最外层的根元素(也就是浏览器的窗口可视范围)作为坐标系。而相对定位(relative)则不需要外部的坐标系,而是以自身作为坐标系的,所以只要把父元素设为relative,把子元素设为absolute,那么子元素就可以在父元素的范围内进行绝对定位了 参考技术A 现实中你要描述你在什么地方也要一个参照物,在css里面也不例外;relative就是absolute的参照物,如果没有relative作为参照absolute的默认定位是相对body来实现定位,如果有relative则以它为参照定位。另外fixed是相对浏览器定位,不能作为absolute的参照。

为啥fixed的元素可以遮盖absolute的元素

参考技术A fixed
固定定位,参照位置是浏览器窗口的左上角,即坐标点为(0px, 0px) 对象定位遵从绝对(absolute)方式。但是要遵守一些规范

absolute :绝对定位。将对象从文档流中拖出,使用 left , right , top , bottom 等属性相对于其最接近的一个最有定位设置的父对象进行绝对定位。如果不存在这样的父对象,则依据 body 对象。而其层叠通过 z-index 属性定义

以上是关于为啥用absolute定位的元素,其父元素通常需要relative相对定位呢?的主要内容,如果未能解决你的问题,请参考以下文章

绝对定位( Absolute positioning )

为啥fixed的元素可以遮盖absolute的元素

CSS学习笔记:定位与溢出

position:absolute相对于谁定位以及当溢出时怎么隐藏

css绝对定位

position:absolute用法(隐藏溢出部分)