【发布时间】:2017-11-10 08:38:14
【问题描述】:
我在我的一个个人项目中尝试使用 css position: sticky,但我注意到其中包含输入字段或文本区域等可编辑元素会触发页面滚动到顶部。
如果可能的话,我真的很想消除这种行为。
.container {
height: 5000px;
}
.heading{
background: #ccc;
height: 50px;
line-height: 50px;
margin-top: 10px;
font-size: 30px;
padding-left: 10px;
position: -webkit-sticky;
position: sticky;
top: 0px;
}
<h1>Lorem Ipsum</h1>
<div class="container">
<div class="heading">
<input placeholder="Edit this while scrolling...">
</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
<div>Lorem Ipsum</div>
</div>
【问题讨论】:
-
sticky仍处于试验阶段。很有可能这只是一个未解决的错误,而您最好的选择(尽管我希望看到解决方案)可能是实现您自己的粘性行为。 -
您在哪个浏览器上看到此行为?它不会出现在 Firefox 中。
-
它发生在 Chrome 中
-
当输入超出查看范围的输入字段时,垂直居中输入字段(或在这种情况下滚动到顶部,因为上面没有足够的内容)是 Chrome 中相对的默认行为定位输入,所以我和@George 一起去,这很可能是他们没有解决的边缘情况。
-
您实际上想要这种行为,但如果输入元素是可见的,因为它当前是粘性的 (fiddle)。
标签: html css google-chrome css-position sticky