Z
ZHANK
布局基础

定位 position

static/relative/absolute/fixed/sticky 五种定位详解

定位 position

position 是 CSS 布局的核心——五种值决定了元素如何定位。

学完本章你将: 掌握 static/relative/absolute/fixed/sticky 五种定位。


static(默认)

css
.static { position: static; }
/* 正常文档流——top/left/z-index 无效 */

relative(相对定位)

css
.relative {
  position: relative;
  top: 10px;            /* 相对于自己原来的位置下移 */
  left: 20px;           /* 右移 */
}
/* 仍占原来的空间 */

absolute(绝对定位)

css
/* 相对于最近的定位祖先(非 static)定位——脱离文档流 */
.parent {
  position: relative;   /* 作为定位参考 */
}
.child {
  position: absolute;
  top: 0;
  right: 0;             /* 右上角 */
}

fixed(固定定位)

css
.fixed-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: white;
  z-index: 100;
}
/* 相对于视口固定——滚动不动——常用于导航栏 */

sticky(粘性定位)

css
.sticky-nav {
  position: sticky;
  top: 0;              /* 滚动到这里时粘住 */
  background: white;
}
/* 相对定位 + 固定定位的混合——到达阈值后固定 */

定位总结

参照物脱离文档流常用场景
static默认
relative自己微调/给 absolute 做参考
absolute定位祖先弹窗/图标角标
fixed视口导航栏/回到顶部
sticky滚动容器吸顶导航