我猜测您正在尝试做什么,但您可能正在寻找这样的东西:
<div class="local-wrap">
<div class="fixed">
Some content which needs to be pinned to top of window
</div>
<div class="port">
Regular content...
</div>
</div>
并应用以下 CSS:
.local-wrap {
position: relative;
}
.local-wrap .fixed {
position: absolute;
top: 0;
left: 0;
background-color: lightgray;
width: 100%;
height: 5.00em;
}
.local-wrap .port {
position: relative;
top: 5.00em;
min-height: 10em;
height: 15em;
overflow: auto;
border: 1px solid gray;
border-width: 0 1px 1px 1px;
}
演示小提琴:http: //jsfiddle.net/audetwebdesign/pTJbW/
本质上,要获得相对于块元素的固定块,您需要使用绝对定位。固定定位总是相对于根元素或视口,所以position: fixed
不会帮助你。
我所做的是定义一个.local-wrap
容器,其中包含两个子块,一个绝对位于顶部,.local-wrap
另一个位于常规流中。我曾经position: relative
将它放在下方.fixed
,但上边距也可以。
我修复了一些高度来演示本地窗口/端口中的滚动内容,但这可以根据您的设计和应用程序进行更改。
免责声明
我不熟悉 snap.js,因此可能需要考虑其他因素。
评论 CSS3 变换和固定元素
根据 CSS3 规范,如果您对元素应用转换,调用它div.transformed
,然后 div.transformed 创建一个新的堆叠上下文并用作它包含的任何固定位置子元素的包含块,这就是为什么在您的场景中,固定位置上下文不会停留在窗口顶部。
如需参考,请参阅Mozilla 开发者网络 -> CSS 参考 -> 转换