Skip to content

定位

static默认值

元素会按照正常的文档流布局,不会被特别定位

不会响应top、right、bottom、left等偏移属性

relative相对定位

会使元素相对于它在文档流中的原始位置进行偏移

可以使用 top、right、bottom 和 left 进行偏移,偏移后的元素仍然保留在文档流中,不会影响其他元素的位置

场景:通常用于微调元素位置,或者作为绝对定位(position: absolute;)元素的参考点

absolute绝对定位

会使元素脱离文档流,相对于最近的非 static 定位祖先元素进行定位(即最近的 relative、absolute 或 fixed 元素)进行偏移。如果没有这样的祖先元素,则相对于 body(或 html)

使用 top、right、bottom 和 left 来精确控制位置。元素脱离文档流,不会影响其他元素的布局

用法场景:用于创建精确定位的元素,如弹出框、浮动按钮等

fixed固定定位

使元素相对于视口(浏览器窗口)进行定位,即使页面滚动,元素依然保持在视口中的固定位置

可以使用 top、right、bottom 和 left 进行偏移,不受文档流影响,不会影响其他元素

场景:常用于页面上的固定元素,如导航栏、浮动按钮或悬浮广告

sticky粘性定位

是一种混合了相对定位和固定定位的模式。元素在滚动过程中表现为 relative,当到达指定的 top、right、bottom 或 left 位置时,变为 fixed 定位

可以指定 top、right、bottom 或 left,当滚动到达指定位置时,元素将固定在指定位置。超出范围后恢复为 relative

场景:常用于表头、导航栏等需要在滚动中保持在某个位置的元素

css
.sticky-element {
  position: sticky;
  top: 10px;   /* 滚动到视口距离顶部 10px 时开始固定 */
}

总结

alt text