在 CSS 中,position
属性用于指定元素的定位方式,共有 5 种取值,分别是 static
、relative
、absolute
、fixed
和 sticky
,具体介绍:
- static
- 这是元素的默认定位值。元素会按照正常的文档流进行排列,top、right、bottom、left 和 z-index 属性对该元素无效。
- 示例场景:一般用于不需要特殊定位的普通元素,比如网页中大多数段落文本、普通的图片等,它们会按照 HTML 文档中的顺序依次排列。
- relative
- 说明:相对定位。元素先按照正常文档流进行定位,然后可以通过 top、right、bottom、left 属性相对于其自身在文档流中的原始位置进行偏移。在相对定位中,元素在文档流中占据的空间仍然保留,其他元素的布局不会受到该元素偏移的影响。
- 示例场景:常用于微调元素的位置,比如想让某个按钮稍微偏离其在文档流中的默认位置,就可以使用相对定位进行微调。
- absolute
- 说明:绝对定位。元素会相对于最近的已定位(非 static 定位)祖先元素进行定位。如果没有这样的祖先元素,则相对于初始包含块(通常是 html 元素)进行定位。绝对定位的元素会脱离文档流,不再占据原来的空间,其他元素的布局会忽略该元素。
- 示例场景:常用于创建弹窗、悬浮菜单等,使其能够相对于特定的容器进行精确的定位,而不会影响其他元素的布局。
- fixed
- 说明:固定定位。元素相对于浏览器窗口进行定位,不会随着页面的滚动而移动。它始终保持在视口的固定位置,与页面内容的滚动无关。同样会脱离文档流,不占据文档中的空间。
- 示例场景:常见于创建固定在页面顶部或底部的导航栏、返回顶部按钮等,无论用户如何滚动页面,这些元素都始终可见。
- sticky
- 说明:粘性定位。它是相对定位和固定定位的混合体。元素在正常文档流中进行定位,当页面滚动到某个阈值时,元素会像 fixed 定位一样固定在指定位置;当页面滚动到一定程度,超出阈值后,元素又会恢复到正常文档流中的位置。
- 示例场景:可以用于实现表格的表头固定、文章的目录在滚动到一定位置后固定等效果,提供更好的用户体验。