2010-03-09 40 views
1

我有一個div設置爲溢出:auto,最大寬度爲250px。在IE7中消失的滾動條

在div裏面我有一個分頁控件,它允許用戶取回10,20,50或100個結果。如果他們拉回足夠的結果,內部內容(表格)將會比div大,並且應該可以滾動。

這適用於Firefox 3.5和IE8,但是在IE7中,滾動條僅在需要滾動條的第一個回發(例如用戶選擇20)後才顯示。如果用戶然後選擇另一個需要滾動條(50,100)的數量,那麼IE7中的欄將消失。

如果用戶返回10個結果(不需要滾動),然後進入20個結果(需要滾動)滾動條將再次顯示在IE7中。

我仍然可以用我的鼠標滾輪滾動內部內容,沒有滾動條。

任何人都知道這個問題可能是什麼?我很難過......如果需要,可以提供詳細信息。

說明:即使內容溢出Div,滾動條也會消失。

回答

0

更改CSS屬性overflowautoscroll

http://www.w3.org/TR/CSS2/visufx.html#propdef-overflow

+0

是的,這是一個不得已的解決方案。與此相關的問題是,即使內部內容不需要滾動,用戶也會看到一個醜陋的灰色滾動條。 – David

+0

那麼......你希望他們看到什麼? 您可以僞造它,並填充內部內容以便始終可滾動 – Dancrumb

+0

當有10個結果(帶有1行條目)時,它應該不顯示滾動條(因爲它適用於Div)。 任何超過10個結果,或10個結果都超過1行,應該可滾動。 我想我可以讓Div小於10個條目,使它始終可以滾動。但是,圍繞IE7中的錯誤來設計設計似乎很奇怪。 :( – David

0

我也有類似的問題,並設法解決它。現在,明白我有一個表的寬度設置爲100%。我相信這個問題與文檔類型有關。我嘗試設置文檔類型爲

<!DOCTYPE html> <!-- HTML5 --> 

我仍然有同樣的問題。它只是在刪除DOCS錯誤消失後的文檔類型聲明(怪異模式,我不會推薦)。我還使用XHTML 1.0/1.1/HTML 4.01文檔類型聲明(嚴格,過渡,框架集)進行了測試,併發生相同的問題。看來這個問題出現了,因爲使用doctype聲明告訴瀏覽器使用標準模式。 IE7和更少不處理標準模式瀏覽很好。

要解決它的IE7,我將寬度設置爲99%。

這裏是工作的示例代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html> 
<head> 
<style type="text/css"> 
    #Content 
    { 
    overflow-y: auto; 
    overflow-x: hidden; 
    height: 100px; 
    width: 100px; 
    } 
</style> 
</head> 
<body> 
    <div id="Content"> 
    <table width="99%" border="1"> 
     <tbody> 
     <tr><td>1</td></tr> 
     <tr><td>2</td></tr> 
     <tr><td>3</td></tr> 
     <tr><td>4</td></tr> 
     <tr><td>5</td></tr> 
     <tr><td>6</td></tr> 
     <tr><td>7</td></tr> 
     <tr><td>8</td></tr> 
     <tr><td>9</td></tr> 
     </tbody> 
    </table> 
    </div> 
</body> 
</html>