布局方式:盒模型,浮动,定位,弹性盒子····
一、定位简介
定位是一种布局方式 ,是一种高级的布局方式,可以将元素放在页面的任意位置
- 注意
定位不能滥用,定位只做一些特殊位置的调整,
大的布局还是得以盒模型、浮动、弹性盒子为主
二、定位的特点
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、元素的性质没有发生变化
- 注意:
粘滞定位只在当前父元素内生效,当页面超过当前父元素,元素还是会随着滚动条滚动
- 应用场景:
导航、侧边导航