CSS定位通过position属性控制元素位置,包含static(默认流)、relative(相对偏移)、absolute(相对非static祖先)、fixed(相对视口)和sticky(条件吸附)五种方式,配合z-index管理层叠顺序。
CSS定位是控制元素在页面中位置的核心手段,不是简单“挪动”,而是通过改变元素的定位上下文和行为来组织整体结构。掌握position属性的几种取值及其配合方式,才能真正实现灵活、可控的布局。
大多数元素默认是static定位,完全遵循文档流,top/right/bottom/left无效。而relative是在原位置基础上做偏移,不脱离文档流,不影响其他元素排布。适合微调某个按钮或标题的位置,又不想打乱整体结构。
absolute让元素脱离文档流,并相对于最近的posit
ion非static的祖先元素定位;若无,则相对于初始包含块(通常是视口)。fixed也脱离文档流,但始终相对于视口定位,滚动时保持不动,常用于返回顶部按钮或悬浮客服入口。
sticky是relative和fixed的结合体:在滚动到指定阈值前表现为relative,到达后变为fixed。典型应用是表格表头或文章侧边目录,滚动时始终可见。
z-index只对定位元素(relative/absolute/fixed/sticky)有效,但它不是全局排序,而是在每个层叠上下文中独立计算。新建层叠上下文的方式包括:根元素、position非static且z-index不为auto、opacity小于1、transform有值等。