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

  • 注意:

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

  • 应用场景:

导航、侧边导航

相关推荐
Cache技术分享1 小时前
384. Java IO API - Java 文件复制工具:Copy 示例完整解析
前端·后端
shadowcz0071 小时前
Chrome Skills 来了:把你的 AI 提示词变成一键工具
前端·人工智能·chrome
踩着两条虫1 小时前
VTJ核心引擎开源项目概览
前端·vue.js·低代码
Front思1 小时前
解决 uniapp Dart Sass 2.0.0 弃用警告
前端·uni-app·sass
农夫山泉不太甜1 小时前
CSS 新特性与冷门属性深度剖析
前端
Hy行者勇哥1 小时前
Chrome 浏览器如何“网页长截图”和“网站打包成应用”
前端·chrome
说点AI1 小时前
我的 Vibe Coding 工具箱:一个人如何从零做出一个产品
前端·后端
SuperEugene2 小时前
Vue3 前端配置驱动避坑:配置冗余、渲染性能、扩展性问题解决|配置驱动开发实战篇
前端·javascript·vue.js·驱动开发·前端框架
JianZhen✓2 小时前
从零到一:基于声网Agora的医疗视频问诊前端实战指南
前端·音视频