我的网页开发之旅第10天 — 掌握 CSS 定位:Absolute、Relative、Fixed 与 Sticky

发布: (2025年12月17日 GMT+8 21:53)
3 min read
原文: Dev.to

Source: Dev.to

绝对定位 — “浮动元素技巧”

/* Box 1 */
position: absolute;

position: absolute; 应用于 Box 1 会把它从正常文档流中移除,导致它原本占据的空间被 Box 2 填补,Box 3 也会向上移动——就像俄罗斯方块的块消失一样。

对 Box 2 或 Box 3 使用 position: absolute; 也会产生同样的效果。

相对定位 — “父元素很重要!”

结构

  • outer – 父容器
  • inner – 子元素
  • text – 孙子元素

初始尝试

/* text */
position: absolute;
left: 50%;

该元素相对于整个视口居中,而不是相对于它的父元素。

修正

/* inner (parent) */
position: relative;

现在,对绝对定位的 text 元素使用 left: 50% 时,会相对于其父元素(inner)计算,从而得到预期的位置。

提醒: position: absolute; 需要配合已定位的祖先元素(position: relative;absolutefixedsticky)一起使用。

固定定位 — “不可移动的盒子”

/* fixed element */
position: fixed;
top: 10px;
right: 10px;

即使页面滚动,元素仍会锚定在视口上。

固定盒子示例

典型的使用场景包括导航栏、浮动操作按钮或聊天图标等,需要在滚动时保持可见的元素。

粘性定位 — “混合模式”

/* sticky element */
position: sticky;
top: 0;

粘性元素在滚动到达设定阈值之前(本例中为 top: 0)表现得像相对定位元素,随后会“粘住”在该位置,行为类似固定定位。

常见的应用有粘性标题或章节标题,在滚动时保持可见。

最后思考

通过练习 CSS 定位,我发现这并不是记住各种取值的问题,而是要理解每个属性——absoluterelativefixedsticky——如何与其周围环境交互。掌握这些基础后,你就能把任何元素精确放置在需要的位置。

接下来:探索 CSS z-index 与堆叠上下文。敬请期待第 11 天的网页开发之旅!

Back to Blog

相关文章

阅读更多 »

CSS 文本预处理器比较

封面图片:Comparativa de preprocesadores de textos CSS https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%...

CSS Max-Width 详解:停止破坏布局

别再破坏你的布局!CSS max‑width 完全指南 如果你曾经花了数小时设计一个在笔记本电脑上看起来完美的页面,却看到它在其他设备上被拉伸……