【发布时间】:2021-06-21 20:39:48
【问题描述】:
我遇到了一些非常奇怪的行为,并且在我测试过的每个浏览器中都不一致。
我有一个相当复杂的布局,但主要问题在这里:
<div id="drop">
<div id="header"></div>
</div>
#drop 有 position:absolute 和 z-index:100#header 有 position:fixed; top:60px;
当我开始向下滚动时,Chrome 会忽略 position:fixed 规则。如果我从#drop 中删除上述两种样式中的任何一种,Chrome 就会开始遵守position:fixed 规则。
无法让它在 Ubuntu Chrome 23.0.1271.97 上运行,并在 Mac Chrome 25.0.1364.99 上看到相同的行为。我的朋友使用的是 Ubuntu Chrome 25.0.1364.68 beta,它对他来说可以正常工作。我已经在 Firefox 上对其进行了测试,它有点工作(有其他症状)
有人听说过这个错误吗?或者任何人都可以复制它?
编辑
如果我删除该层或至少将其更改为display:none,我将使用 openlayers 地图作为另一个 div 和 position:fixed,那么这个奇怪的错误就会消失。
编辑
注意到在存在此错误期间,如果我来回更改缩放级别,则位置会自行调整为正确的行为。对我来说,这表明 webkit 问题无法在滚动时执行某些内部回调函数。
另一个非常奇怪的事情是,我在#header 中有几个链接,如果我只是单击预期的位置,即使 div 没有出现在那里,它们也可以工作。总的来说我注意到只有渲染坏了。如果在任何时候我通过调整窗口大小、更改缩放或仅执行全选来强制浏览器重新渲染,那么标题栏会跳转到正确的位置,但不会保持固定。
【问题讨论】:
-
您是否正在为您的固定元素设置位置值?即上:0;左:0; ?
-
是的,很抱歉没有提到它。我有
top:60px;固定。将更新 OP。 -
我没遇到过这个问题,也无法重现..jsfiddle.net/be53j
-
除了我的特定示例之外也无法重现它,并注意到了错误依赖性。立即更新 OP。
-
您是否在代码中使用 css 转换?因为如果您是 - 那就是导致 position:fixed 不起作用的原因。
标签: google-chrome css webkit openlayers