【问题标题】:(IE9)Remove floated or absolute positioned element will cause sibling element's scrollbar scroll back to top(IE9)移除浮动或绝对定位的元素会导致兄弟元素的滚动条回滚到顶部
【发布时间】:2012-06-20 01:05:20
【问题描述】:

我最近在 IE9 中发现了一个奇怪的行为(没有在 IE8 下测试过): http://jsfiddle.net/qktfq/5/

删除黄色元素(通过单击它)将导致蓝色元素中的滚动条滚动回顶部。仅当黄色元素浮动或绝对定位时才会发生此行为。

这种行为真的很烦人。关于如何避免它的任何帮助将是一个巨大的帮助!谢谢你。

【问题讨论】:

    标签: javascript html css browser internet-explorer-9


    【解决方案1】:

    知道了!这是因为职位。尝试将 position:relative 添加到可滚动的 div(在本例中为 div.outer),您会发现它有效。

    更好:您可以使用 position:relative 将所有内容包装在一个 div 中,它应该可以解决问题。

    【讨论】:

    • "用 position:relative 将所有内容包装在一个 div 中" 你的意思是让 div.content position:relative ?
    • 或者创建一个包含所有内容的新 div 并给出位置:相对,因为您的 jsfiddle 只是一个示例(也许您无法更改当前存在的位置)
    • 我创建了一个新的 div 来包装所有内容并给出位置:相对,但行为仍然存在。http://jsfiddle.net/qktfq/36/
    • 嘘,我现在不能让它工作,甚至删除包装器并给出 div.content 位置:相对
    • 但是添加 position:relative 到 div.outer 会起作用。非常感谢@yisela。
    【解决方案2】:

    经过一番研究,我发现这种行为只会影响接近浮动或位置的元素:绝对元素。如果我在它们之间添加另一个元素,这种行为就会消失。http://jsfiddle.net/qktfq/34/ 但是只为这个原因添加一个空元素似乎很奇怪......Orz......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多