【发布时间】:2016-10-11 16:04:53
【问题描述】:
无法找到解决方案。基本上,我想要实现的是,如果内容多于浏览器高度,则带有 position: sticky 的元素会出现滚动条。
我不想使用position: fixed,因为它会增加颈部疼痛。
这是我期望它如何工作的示例:
.placeholder {
height: 200vh;
width: 50%;
float: right;
}
.child {
position: fixed;
top: 0;
bottom: 0;
height: 100%;
overflow-y: auto;
}
<div class="parent">
<div class="placeholder"></div>
<div class="child">
some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br /> some long text
<br />
</div>
</div>
这是position: sticky 的示例,其中overflow 不执行任何操作:
.placeholder {
height: 200vh;
width: 50%;
float: right;
}
.child {
position: sticky;
top: 0;
bottom: 0;
height: 100%;
overflow-y: auto;
}
<div class="parent">
<div class="placeholder"></div>
<div class="child">
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
some long text <br />
</div>
</div>
感谢任何解释/解决方案。
确保在测试时使用 Firefox
【问题讨论】:
-
您在滚动容器中设置了 top:0 。该容器内的 0 坐标滚动 :) 把它带到外面和浮动元素:jsfiddle.net/ab5u54hh/7 关于粘性的事情是它确实在流中交互并且可以在另一个容器到位时推开例如:codepen.io/gcyrillus/pen/oxNLBO
-
粘性不是绝对的,也不是固定的,它在流动中可以粘在坐标上,直到它有空间留在那里......,这是棘手的部分......它甚至可以浮动。 ......所以难怪为什么一开始处理它是一件容易的事;)
-
@AdamBuchananSmith 不相关; OP 正在使用问题中所述的 Firefox,其中支持
position: sticky;。
标签: css css-position