我遇到了一些非常奇怪的行为,并且在我测试的每个浏览器中都不一致。CSS:位置:固定在位置:绝对
我有一个相当复杂的布局,但主要的问题就出在这里:
<div id="drop">
<div id="header"></div>
</div>
#drop
有position:absolute
和z-index:100
#header
有position:fixed; top:60px;
正如我开始向下滚动浏览器会忽略position:fixed
规则。如果我从#drop
中删除或以上两种样式,则Chrome开始遵守position:fixed
规则。
无法在Ubuntu Chrome 23.0.1271.97上运行,并在Mac Chrome 25.0.1364.99上看到相同的行为。我的朋友使用Ubuntu Chrome 25.0.1364.68测试版,它对他来说工作正常。我已经测试了它在Firefox上,它有点(有其他症状)
有没有人听说过这个错误?或者任何人都可以重现它?
编辑
我使用的OpenLayers地图与position:fixed
另一格,如果我删除层或至少将其更改为display:none
那么这个奇怪的错误就会消失。
编辑
注意到了这个bug的存在时,如果我改变缩放级别来回,则位置自行调整至适当的行为。对我而言,这表示webkit问题无法在滚动中执行某些内部回调函数。
另一个非常奇怪的是,我有#header
里面的几个链接,他们工作,如果我只是点击预期的位置,即使div没有出现在那里。总体来说我注意到它只是渲染已经坏了。如果在任何时候我强制浏览器通过调整窗口大小或改变缩放比例来重新渲染,或者只是选择全部,那么标题栏会跳转到正确的位置,但不会保持不变。
您是否在为固定元素设置位置值?即顶部:0;左侧:0; ? – lukeocom 2013-03-01 08:26:06
是的,很抱歉没有提到它。我有'顶部:60px;'在固定的。将更新OP。 – Mikhail 2013-03-01 17:33:49
我以前没有遇到过这个问题,也不能重现它。http://jsfiddle.net/be53j/ – lukeocom 2013-03-05 02:07:13