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

position sticky仅在section内生效,div中失效问题咨询

position: sticky 粘性范围问题

我遇到了position: sticky的属性问题:外层div包含多个子元素时,设置了position: sticky的h1元素仅在其父级section范围内保持粘性,无法在整个div容器的范围内生效。

相关代码如下:

<div style="position: relative"> 
        <section class="py-4 px-4">
            <h1 style="position: sticky; top: 50px">AQUI O STICKY</h1>
            <h1>VALIDANDO</h1>
            <h1>VALIDANDO</h1>
            <h1>VALIDANDO</h1>
            <h1>VALIDANDO</h1>
            <h1>VALIDANDO</h1>
            <h1>VALIDANDO</h1>
            <h1>VALIDANDO</h1>
            <h1>VALIDANDO</h1>
            <h1>VALIDANDO</h1>
        </section>
        <h1>POSITION</h1>
        <h1>POSITION</h1>
        <h1>POSITION</h1>
        <h1>POSITION</h1>
        <h1>POSITION</h1>
        <h1>POSITION</h1>
        <h1>POSITION</h1>
    </div>

问题原因

这是position: sticky的默认特性:粘性元素的粘性范围是最近的可滚动祖先元素,若无可滚动祖先则以视口为范围。但如果它的直接父级(此处为section)先于外层div滚出视口,粘性元素会跟随父级一起离开,无法覆盖整个div容器。

解决方法

调整DOM结构,将设置了position: sticky的h1直接作为外层div的子元素,使其父级变为目标范围的div容器:

修正后的代码:

<div style="position: relative"> 
    <h1 style="position: sticky; top: 50px">AQUI O STICKY</h1>
    <section class="py-4 px-4">
        <h1>VALIDANDO</h1>
        <h1>VALIDANDO</h1>
        <h1>VALIDANDO</h1>
        <h1>VALIDANDO</h1>
        <h1>VALIDANDO</h1>
        <h1>VALIDANDO</h1>
        <h1>VALIDANDO</h1>
        <h1>VALIDANDO</h1>
        <h1>VALIDANDO</h1>
    </section>
    <h1>POSITION</h1>
    <h1>POSITION</h1>
    <h1>POSITION</h1>
    <h1>POSITION</h1>
    <h1>POSITION</h1>
    <h1>POSITION</h1>
    <h1>POSITION</h1>
</div>

调整后,h1的粘性范围将覆盖整个外层div,滚动时会一直停留在距离顶部50px的位置,直到整个div滚出视口才会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 23:27:13