相对位置和绝对位置的使用
一、相对定位(position: relative)怎么用
两种使用场景
场景1:微调元素自身位置
-
给目标元素开启相对定位;
-
搭配 top / left / right / bottom 设置偏移距离;
-
元素只会视觉移动,原来在页面占的空间还留在原地,周围文字、盒子不会挤上来。
适用:图标微调、文字轻微偏移、小装饰错位摆放。
场景2:充当绝对定位的参照物(最常用)
-
给父容器设置相对定位,不需要写任何偏移值;
-
父容器自身布局完全不变,不会移位;
-
内部子元素写绝对定位时,就会以这个父盒子四条边为基准摆放。
这是布局标准搭配:父relative + 子absolute。
使用注意点
只写定位不写偏移:元素完全不动,仅作为定位父级;
正负数值控制方向:top正数向下、left正数向右,负数反向移动;
不会脱离文档流,不会覆盖下方正常元素。
二、绝对定位(position: absolute)怎么用
使用前提
想要精准以父盒子为基准,父元素必须提前设置 relative/absolute/fixed,否则绝对定位会以整个页面窗口为参照。
基础使用步骤
-
父容器开启非静态定位(一般用relative,不破坏布局);
-
子元素设置绝对定位;
-
任选 top / bottom、left / right 组合设置边距,控制距离父盒子边角的距离。
不同组合用法
-
单方向定位(固定角落)
只写 top + left / top + right / bottom + left / bottom + right,元素固定在对应角落,宽度由内容决定。
适用:角落标签、关闭按钮、水印。 -
双向拉伸居中
同时设置 top:0、bottom:0、left:0、right:0,元素会填满整个父容器;配合margin:auto可实现盒子完全居中。
适用:弹窗遮罩、居中弹出框。
核心特性使用逻辑
开启后脱离文档流:原来占据的位置直接消失,后面元素自动往上填补;
不设宽高时,宽度自适应内容,不会像普通块级盒子占满父容器;
会浮在普通文档流元素上方,可搭配z-index调整上下遮挡层级。
三、标准搭配完整使用流程(开发通用套路)
-
外层父盒子添加相对定位,不加偏移;
-
内层需要悬浮、覆盖、居中的子元素添加绝对定位;
-
通过top、left等调整子元素在父盒内的位置;
-
需要调整前后遮挡时,给任意一方加z-index数值。
四、两者选用区分
-
只需要轻微挪位置、不想打乱页面布局 → 只用相对定位;
-
需要元素浮在其他盒子上方、覆盖内容、固定在父盒子某一角 → 父relative + 子absolute组合;
-
不设置父级定位直接用absolute,元素会跟着页面滚动,以浏览器页面边缘为基准。
浙公网安备 33010602011771号