一、概述
css定位是一个强大的功能,它允许你精确的控制html的位置。css提供了几种不同的定位方式,其中包括静态定位static、相对定位relative、绝对定位absolute、固定定位fixed、粘性定位sticky。
1.静态定位
这是默认的定位方式,按照元素正常的文本流进行布局,既元素在页面的位置由其html的位置所决定,并且不能使用right等来调整位置。
position: static;
2.相对定位
相对定位元素不脱离文本流,占据html原有的位置,它可以通过设置right、top等属性来改变它的位置。它会使元素相对于正常位置进行偏移。
以上2个图可以明显看出再设置相对定位后,相对于原本的位置偏移了150px;
3.绝对定位
绝对定位会使元素脱离文档流,并且相对于最近的已经定位的祖先元素进行定位,如果没有已经定位的祖先元素,那么它会相对于<html>元素进行定位.。使用top、right等属性控制位置。
以上2个图设置绝对定位后,第一图相对于html去偏移,第二图再给祖先元素进行定位后,相对于祖先元素进行偏移。
4.固定定位
固定定位也是会脱离文档流,它是相对于浏览器窗口进行定位,既页面滚动时,元素的位置会停留在指定的位置。
当滚动到第5个盒子的时候,设置了固定定位的元素依然在窗口的固定位置。
5.粘性定位
粘性定位的元素会根据文档流进行排列,但是页面滚动到某个值的时候,它的表现就和固定定位一样。这对于创建导航菜单等在滚动的时候保持在一个位置的元素非常有用。
往下滚动它会一直在最顶部,因为我们设置了sticky粘性定位,并且设置了top属性为0.