2010-03-09 50 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>