CSS 的 position
属性用于控制元素的定位方式,它有五种主要的值,每一种都决定了元素如何在页面上定位:
static:
这是
position
的默认值。元素按照标准文档流进行布局,即按照源代码中的顺序自然排列。
设置
top
,right
,bottom
, 和left
属性不会影响元素的位置。relative:
元素也按照标准文档流进行布局,但是可以通过
top
,right
,bottom
, 和left
属性来调整其相对于正常位置的偏移。相对定位的元素不会脱离文档流,其周围的元素会保持不变,就像它没有移动一样。
absolute:
元素完全脱离标准文档流,不再占据空间。
它相对于最近的已定位祖先元素(
position
不为static
的祖先)进行定位。如果没有已定位的祖先元素,则相对于
<html>
根元素定位。可以通过
top
,right
,bottom
, 和left
属性精确地定位元素。fixed:
类似于
absolute
,但元素相对于浏览器窗口进行定位。固定定位的元素不会随滚动条滚动,始终保持在视口中的同一位置。
同样使用
top
,right
,bottom
, 和left
属性来定位。sticky:
元素在文档流中有一个常规的位置,但当用户滚动到某个位置时,元素会“粘”在视口中的一个固定位置。
这种行为有点像
relative
和fixed
的结合体,取决于滚动条件。当滚动超出元素的初始位置时,元素会变成固定定位,直到另一个元素将其覆盖为止。