我正在修复IE7的错误,这个让我难过。此page中的内容大于其包含的div。 IE7正确显示垂直滚动条,但内容位于垂直滚动条的顶部,当用户单击滚动按钮时,内容不会移动。我无法想象造成这种情况的原因。任何想法?
编辑:我附上了问题的截图: alt text http://img31.imageshack.us/img31/605/picture5kw.png答案 0 :(得分:6)
我认为这是因为IE7和IE6无法正确解释您的overflow-x
和overflow-y
属性:
#content_box {
float:left;
height:456px;
margin-left:20px;
overflow-x:hidden;
overflow-y:scroll;
这很容易解释为IE6:它根本不知道那些属性。至于为什么它在IE7中不起作用,也许解释是here(这对我来说太复杂了,我还没有吃过午餐。)
我认为可行的方法(在非常粗略检查您的代码之后,如果不是,请不要起诉我)是引入一个没有宽度的额外div
容器组。这将以防止溢出的方式自动调整其中的任何width: 100%
元素。 (我假设为什么这是一个问题,首先是盒子模型问题与margin-left: 20px
结合,对吗?)
答案 1 :(得分:3)
IE7滚动问题
将position: relative
应用于具有属性overflow-y:auto;
e.g。
#content_box{
position: relative;
overflow-y:auto;
}
以上解决方案适合我。
答案 2 :(得分:1)
是否可以将.grey_box
的宽度设置为硬编码510px
?因为看起来IE7是唯一能够做到这一点的人,因为#content_box
设置为530px
10px
填充,这会使520px
内的所有框都变宽,并且这是滚动条的某个地方。 Pekka也可能会出现问题,因为IE7和IE6没有正确实现溢出。