2011-10-07 171 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內部獲得一些佈局內容,但是我最終以不同的方式做了這樣的事情,所以能夠刪除該樣式屬性並使其工作。