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、元素的性质没有发生变化

  • 注意:

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

  • 应用场景:

导航、侧边导航

相关推荐
东风破_2 小时前
Docker 基础:为什么需要容器?
前端·后端·nginx
东风破_2 小时前
Docker 实战:使用 Nginx 作为容器入口代理 Node 服务
前端·后端·nginx
你别说话了3 小时前
Vue项目解决跨域
前端·javascript·vue.js
唐青枫4 小时前
http-server:别再双击 index.html,一条命令把目录变成网站
前端·javascript
网安蟹佬霸4 小时前
OSINT开源情报收集实战:从信息搜集到资产测绘(2026最新万字保姆级指南)
前端·网络·安全·web安全·网络安全·开源
a1117764 小时前
3D历史建筑展览馆 THreeJS 开源
前端·开源
单线程_014 小时前
【源码阅读】Vue3 Tokenizer 词法分析器完整状态机流转深度梳理(3.4+ 新版架构)
前端
PBitW5 小时前
PM 丢来 3 个 Excel、12 个功能、4 种情形?用 TRAE Work 30 分钟整理成前端开发文档
前端·trae
风骏时光牛马7 小时前
AIAgent高可用架构:弹性容错与故障自愈的落地实践
前端
IT_陈寒7 小时前
Vue的响应式什么时候会失灵?这个坑我踩了
前端·人工智能·后端