2011-10-07 124 views
0

我在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的一部分。另外,当我移动其中一个滚动条时,内容不会移动,直到我移动模态对话框。

Example

我不知道这里做什么。这似乎是一个非常随机的渲染错误,将有一个同样的随机解决方案。谷歌没有任何帮助。这里发生了什么?

编辑10/7/2011:我通过在div上设置明确的宽度解决了重叠的滚动条问题。现在垂直滚动条在IE7中正常显示,但是当我使用它滚动时,内容的滚动位置不会更新,直到我通过其标题栏获取模式并在浏览器屏幕内移动它。我已经更新了这个问题的标题以反映这一点。

回答

1

原来问题是position:relativepnlItem控件在每个Repeater项目的根目录。在IE7中,这会导致滚动条无法工作。我有这样的设置,所以我可以在每个pnlItem内部获得一些布局内容,但是我最终以不同的方式做了这样的事情,所以能够删除该样式属性并使其工作。