【问题标题】:overflow: auto in IE7 leaves room for the scrollbar when resizing溢出:IE7 中的 auto 在调整大小时为滚动条留出空间
【发布时间】:2012-07-03 00:24:54
【问题描述】:

由于客户要求,我将 div 更改为

position: absolute;
top: 5px;
bottom: 5px;
overflow: auto;
min-width: 945px;

在所有受支持的浏览器(IE7、IE8、Firefox 3+)中基本上都能正常工作:它使 div 垂直填充可用区域,如果不适合则显示垂直滚动条。请注意,如果没有 945px 的最小宽度,滚动条将覆盖部分内容,因为在所有 Internet Explorer 版本中添加滚动条时内容不会正确调整大小。有了最小宽度,它恰好适合,其他浏览器不在乎。

但是,在 IE7 上,如果显示垂直滚动条,然后浏览器窗口垂直扩展,从而不再需要滚动条,IE7 会移除滚动条,但在滚动条所在的位置留下一个空白矩形 em>,即div内容没有扩展到之前的滚动条区域。在同一窗口中重新加载页面时,没问题。 IE8 在标准模式下不会出现这个问题。

我该如何解决这个问题?

【问题讨论】:

  • @Whoever 认为这是重复的 - 原始问题在哪里?

标签: css internet-explorer-7 overflow


【解决方案1】:

在我看来,ie7 或您的 ie7 中存在错误。至于你的代码,它很好,虽然有点奇怪,你想让 div 水平滚动吗?

【讨论】:

    【解决方案2】:

    这仍然是 IE7 及更低版本(当然还有 IE8 兼容性视图和相关模式)中观察到的问题。

    经过研究,我认为这是一个疏忽。在 IE7 及更低版本中,overflow:auto 总是显示滚动条,如果不需要它们则禁用它们(对于“通常”具有滚动条的元素)。似乎这种行为导致溢出:自动元素在滚动条消失后不重新计算它们的宽度(因为它们从未打算消失)。

    【讨论】:

      猜你喜欢
      • 2010-09-27
      • 1970-01-01
      • 2011-11-30
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      相关资源
      最近更新 更多