滚动条不会在IE7中滚动div内容(IE8兼容性)
问题描述:
我在IE7(我的意思是IE8兼容模式)中出现了一个奇怪的问题,其内容后面出现了div
的滚动条。它在一个jQueryUI模式对话框中占据了大部分屏幕,并且有很多内容。该div包含一个ASP:Repeater
,以网格式布局呈现自定义行。滚动条不会在IE7中滚动div内容(IE8兼容性)
的DIV完整的标记是这样的:
<div style='max-height:250px; overflow-y:scroll;
border:1px solid #AAAAAA; border-top-width:0; margin-left:auto;
margin-right:auto;'>
<asp:Repeater ID="myRepeater" runat="server">
<ItemTemplate>
<asp:Panel ID="pnlItem" runat="server" style='padding-top:5px;
padding-bottom:5px; position:relative;'>
.....
</asp:Panel>
</ItemTemplate>
</asp:Repeater>
</div>
这是问题的一个屏幕截图。覆盖垂直滚动条的灰色是通过pnlItem
上一类的交替背景颜色设置。下面的文字(“H.S. Gym”)是中继器中底部pnlItem
的一部分。另外,当我移动其中一个滚动条时,内容不会移动,直到我移动模态对话框。
我不知道这里做什么。这似乎是一个非常随机的渲染错误,将有一个同样的随机解决方案。谷歌没有任何帮助。这里发生了什么?
编辑10/7/2011:我通过在div上设置明确的宽度解决了重叠的滚动条问题。现在垂直滚动条在IE7中正常显示,但是当我使用它滚动时,内容的滚动位置不会更新,直到我通过其标题栏获取模式并在浏览器屏幕内移动它。我已经更新了这个问题的标题以反映这一点。
答
原来问题是position:relative
在pnlItem
控件在每个Repeater项目的根目录。在IE7中,这会导致滚动条无法工作。我有这样的设置,所以我可以在每个pnlItem
内部获得一些布局内容,但是我最终以不同的方式做了这样的事情,所以能够删除该样式属性并使其工作。