CSS Position 属性详解

2025-06-09

CSS Position 属性详解

在屏幕上定位元素时,你需要了解两种重要的属性。第一个属性是position:,它指定元素的定位方法类型(例如,静态、相对、绝对或固定)。

第二组属性 (top:, bottom:, right:, left:) 用于指定元素的偏移量。根据所使用的定位方法,top、bottom、right 和 left 的计算方式不同,如果使用position: static,则这些属性会被忽略。

CSS 中的position属性定义了元素在页面上的定位方式。top、right、bottom和left属性决定了定位元素的最终位置。

静态定位

静态定位元素始终根据页面的正常流程进行定位。HTML 元素默认定位为静态。静态定位元素不受 top、bottom、left、right 和 z-index 属性的影响。在以下示例中,绿色框“B”具有静态定位。



.static {
  position: static;
  /* This is often not needed since HTML elements have a static position by default */
}


Enter fullscreen mode Exit fullscreen mode

静态定位

相对定位

这与静态定位类似,不同之处在于您可以使用顶部、右侧、底部、左侧来相对于自身定位它。

相对定位是指元素相对于默认静态定位时的位置进行移动。如果你给一个元素设置了相对定位,并指定它的 top 为 40px,它就会从原本的位置向下移动 40px。



.relative {
  position: relative;
  top: 40px;
  left: 30px;
}


Enter fullscreen mode Exit fullscreen mode

上面的 CSS 改变了 Box-B 的位置,如下所示。

相对定位

绝对定位

绝对定位告诉浏览器,被定位的元素应该脱离文档的正常流程,并将根据顶部、底部、左侧和右侧指定的值放置在页面上的准确位置。它不会影响 HTML 中它之前或之后的元素在网页上的定位方式。

绝对元素将默认前往具有非静态位置的最近父元素的左上角。



.absolute {
  position: absolute;
  top: 10px;
  right: 0px;
}


Enter fullscreen mode Exit fullscreen mode

绝对定位

固定定位

固定元素相对于整个 HTML 元素定位。

固定定位与绝对定位类似,但固定定位将元素锚定在浏览器窗口中。如果您上下滚动,即使其他元素滚动过去,固定元素仍会保持不变。



.fixed {
  position: fixed;
  top: 20px;
  right: 30px;
}


Enter fullscreen mode Exit fullscreen mode

固定定位

粘性定位

粘性位置是相对位置和固定位置的组合。它开始时是相对的,但一旦滚动出页面,它就会变成固定位置。

注意: Internet Explorer、Edge 15 及更早版本不支持粘性定位。Safari 需要使用 -webkit- 前缀(参见下方示例)。您还必须至少指定 top、right、bottom 或 left 中的一个才能使粘性定位生效。



.sticky {
  position: sticky;
  position: -webkit-sticky;
  top: 20px;
  right: 30px;
}


Enter fullscreen mode Exit fullscreen mode

这里有一个 Codepen,其中包含了其他位置,包括 Sticky。向下滚动即可查看 Sticky 位置的实际效果。

就这样吧,大家下周见!

鏂囩珷鏉ユ簮锛�https://dev.to/lindaojo/detailed-explanation-of-css-position-property-1c8c
PREV
准备优秀开发人员简历的技巧
NEXT
新开发人员的学习资源!