相对定位与绝对定位
Position
定义
position
属性规定元素的定位类型。position
具有五个值:
- absolute 绝对定位,相对于 static 定位以外的第一个父元素进行定位。
- fixed 绝对定位,相对于浏览器窗口进行定位。
- relative 相对定位,相对于其现在的位置进行定位。
- static 默认值,不进行定位。
- inherit 从父元素继承
position
属性的值。
注意:
IE 浏览器都不支持 inherit
这个属性。
绝对定位 absolute
绝对定位是相对于元素最近的已定位的父级元素。如果没有已定位的父级元素,那么它会一直往更上级寻找,直到最顶层 body
。
绝对定位一但设置,就会脱离文档流。同时文档里就会将该元素的位置删除。所以该元素会覆盖在其他元素上,可以通过设置 z-index
属性来控制元素的层级。
注意:
absolute 会改变 display
的类型。当元素设置了绝对定位时,该元素将具有 display:inline-block
的属性,可以设置长宽,宽度不占满父元素。
相对定位 relative
相对定位是相对于它本身在文档流的位置进行定位移动的,同时文档流保留了它原来的位置,会占据其他元素的位置。
Fixed 定位
fixed
定位的元素将相对于屏幕视口的位置定位。并且元素的位置不会在屏幕滚动时改变。同时 fixed
在某些情况下将失效,MDN 有说明
当元素祖先的 transform 属性非 none 时,容器由视口改为该祖先。
此篇文章有详细说明 https://www.imooc.com/article/67784
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!