CSS——定位

布局方式:盒模型,浮动,定位,弹性盒子····

一、定位简介

定位是一种布局方式 ,是一种高级的布局方式,可以将元素放在页面的任意位置

  • 注意

定位不能滥用,定位只做一些特殊位置的调整,

大的布局还是得以盒模型、浮动、弹性盒子为主

二、定位的特点

1、都是配合偏移量使用

2、相对定位、粘滞定位不会改变元素的性质,

绝对定位、固定定位会脱离文档流,改变元素的性质

3、都可以提高元素的层级

4、偏移原点不一样:相对定位是自己,绝对定位是包含块,粘滞和固定是整个页面

三、开启定位

开启定位:position:;

  • 可选值

(1)不开启定位:static 默认值

(2)开启定位:

relative 相对定位

absolute 绝对定位

fixed 固定定位

sticky 粘滞定位

四、偏移量

left:元素偏移原点左侧的距离,正值:元素向右,负值:元素向左

right:元素偏移原点右侧的距离,正值:元素向左,负值:元素向右

top:元素偏移原点上侧的距离,正值:元素向下,负值:元素向上

bottom:元素偏移原点下侧的距离,正值:元素向上,负值:元素向下

五、各种定位不同的特点

(一) 开启相对定位:position:relative;

1、开启相对定位后,需要配合偏移量去移动元素的位置

2、相对定位的偏移原点:在元素原来在文档流中的位置

3、相对定位并不会改变元素的性质

4、开启相对定位后,元素的层级会提高

(二)开启绝对定位:position: absolute;

  • 特点:

1、绝对定位,也需要配合偏移量移动位置

2、绝对定位下,元素会脱离文档流,元素的性质发生了变化,不再区分块、行内、行内块

3、元素的层级提高了

4、绝对定位的偏移原点:是其包含块

一般情况下,我们给子元素开了绝对定位,就会同时给父元素开相对定位,这叫:"子绝父相",但具体还是要看开发需要

  • 为什么开相对定位:

相对定位,只要你不写偏移量,开不开,对当前元素没有影响

  • 包含块的概念:

不开定位:包含块就是其父元素

开启定位:包含块是离它最近的,开了定位的,祖先元素

如果其祖先元素都没开定位,包含块就是根标签,即整个页面

  • 注意:

定位需要配合偏移量移动位置,如果偏移量是一个比较大,难算的值,

首先得考虑是否是偏移原点没找好

如果偏移量都是比较大得绝对值,后期很可能会出bug

(三)开启固定定位: position:fixed;

  • 特点:

1、 固定定位需要配合偏移量使用

2、固定定位后,元素脱离文档流,元素得性质发生变化

3、元素得层级提高

4、 固定定位后,不会随着滚动条得滚动而滚动

5、偏移原点 :整个页面

  • 应用场景:

导航、广告,侧边导航等位置

(四)开启粘滞定位:position:sticky;

  • 特点:

1、元素位置:需要配合偏移量使用,监测偏移量

当元素没有到达偏移量时。会随着滚动条的滚顶而滚动

到达设置的偏移量后,就固定不动了

2、元素的性质没有发生变化

  • 注意:

粘滞定位只在当前父元素内生效,当页面超过当前父元素,元素还是会随着滚动条滚动

  • 应用场景:

导航、侧边导航

相关推荐
镜宇秋霖丶3 小时前
2026.5.6@霖宇博客制作中遇见的问题
前端·javascript·vue.js
Raytheon_code4 小时前
从零到一:我用微信小程序做了一款串珠DIY定制工具
css·微信小程序·html5·ai编程
小李子呢02115 小时前
前端八股Vue---Vue-router路由管理器
前端·javascript·vue.js
洛_尘6 小时前
Python 5:使用库
java·前端·python
Bigger6 小时前
Bun 能上生产吗?我的实战结论
前端·node.js·bun
kyriewen8 小时前
你的前端滤镜慢得像PPT?用Rust+WebAssembly,一秒处理4K图
前端·rust·webassembly
kyriewen118 小时前
你等的Babel编译,够喝三杯咖啡了——用Rust重写的SWC,只需眨个眼
开发语言·前端·javascript·后端·性能优化·rust·前端框架
IT_陈寒8 小时前
SpringBoot自动配置坑了我,原来要这样绕过去
前端·人工智能·后端
东方小月8 小时前
Claude Code 完整上手指南:MCP、Skills、第三方模型配置一次搞定
前端·人工智能·后端
XZ探长9 小时前
基于 Trae Solo 移动办公修复 Vue3 前端服务问题
前端