You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:为何position: absolute元素仅固定在第一个section区块?

解决absolute定位元素错位问题

问题出在position: absolute的定位规则上:absolute元素会相对于最近的非static定位父元素来定位,如果没有符合条件的父元素,就会相对于页面根元素(html/body)。

你的第二个区块(.secondBlock)默认是position: static(元素默认定位方式),所以里面的.sticky会相对于根元素定位。第二个区块在页面滚动后的位置,但根元素的bottom: 2em对应的是视口底部,而第一个区块刚好占满视口高度,所以提示文本就出现在第一个区块的底部了。

解决方案

给区块容器添加position: relative,让它成为内部absolute元素的定位上下文:

.block {
  height: 100vh;
  width: 100vw;
  /* 添加这行,所有区块都能作为内部absolute元素的定位基准 */
  position: relative;
}

.secondBlock {
  background-color: #010c2d;
}

.sticky {
  position: absolute;
  left: 3em;
  bottom: 2em;
  font-size: 2.5vh;
  color: #ddd;
}

.left-wrapper {
  display: inline;
  float: left;
  padding-top: 2em;
  padding-left: 4em;
  padding-bottom: 0;
  width: 55vw;
}

这样修改后,.sticky会相对于所在的<section>区块定位,自然就会显示在第二个区块的底部。如果只想针对第二个区块设置,也可以单独给.secondBlock添加position: relative,不过给所有.block统一设置更便于后续其他区块复用相同的定位逻辑。

内容的提问来源于stack exchange,提问作者okokokokokokokok

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 19:16:05