position 定位属性

最后更新:2026-09-13

position position 定位属性

position 属性用于指定元素的定位方式,决定元素是留在文档流中,还是相对于某个参考点进行偏移。配合 top、right、bottom、left 属性,可以实现相对定位、绝对定位、固定定位和粘性定位等常见布局效果。

分类
初始值static
继承
适用于all
可动画discrete
CSS 版本CSS2
状态标准

📝 语法

position: static | relative | absolute | fixed | sticky;

⚙️ 取值

类型描述
static | relative | absolute | fixed | sticky关键字定位类型:静态/相对/绝对/固定/粘性

▶ 示例

编辑下方代码,在 playground 中查看实时效果:

🌐 浏览器支持

浏览器 ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
position v1 v12 v1 v1 v1
所有主流浏览器均支持
提示: absolute 元素会相对于最近的非 static 祖先元素定位,因此通常需要给父元素设置 position: relative 作为定位参考。
注意: fixed 元素会相对于视口定位,移动端浏览器对此支持存在差异,某些情况下可能出现抖动或定位不准。

❓ 常见问题

Qabsolute 和 relative 有什么区别?
Arelative 元素仍留在文档流中,top/left 等偏移是相对其原本位置移动,原空间被保留;absolute 元素脱离文档流,不占空间,相对最近的定位祖先(非 static)定位,找不到就相对视口定位。口诀:relative 让自身移动并留位,absolute 脱离文档流并相对祖先定位。
Qsticky 和 fixed 有什么不同?
Afixed 始终相对视口定位,滚动时固定不动,脱离文档流;sticky 是 relative 和 fixed 的结合:滚动到阈值前表现为 relative 随内容滚动,越过阈值后像 fixed 钉在父容器内,且只能在父容器范围内粘住。sticky 必须设 top 等阈值,父容器不能有 overflow:hidden。
Qposition:absolute 是相对于谁定位的?
Aabsolute 元素相对最近的定位祖先(position 非 static 的元素)的 padding box 定位;如果所有祖先都是 static,就相对初始包含块(通常是视口)定位。因此常见做法是给父元素设置 position:relative 作为定位上下文,让子元素的 absolute 偏移相对父容器计算。
Qposition:sticky 不生效是什么原因?
A常见原因:1)父容器高度不够,sticky 元素没有足够的滚动空间;2)父容器或祖先设置了 overflow:hidden/auto/scroll,会导致 sticky 失效;3)没有设置 top/bottom 等阈值;4)元素被放在无法滚动的容器中。排查时逐一检查这几点,尤其注意祖先元素的 overflow 设置。

📚 相关教程

Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏