2

我有一个具有以下规则的 div:

div#eventBox
{
    overflow: auto;
    text-align: center;
    height: 300px;
    border: 2px inset #888;
    width: 95%;
    margin: auto;
    -moz-border-radius: 5px 0px 0px 5px;
    -ms-border-radius: 5px 0px 0px 5px;
    border-radius: 5px 0px 0px 5px;
    background-color: #1a5c17;
    background-image: url("/Images/Background_Images/GrungePaper.jpg");
    behavior: url(/Resources/PIE.htc);
}

除了在 IE 8 中(在 IE 9 中测试良好)之外,一切都在其中完美运行。在 IE 8 中,当我尝试“单击并拖动”滚动条时,它会在鼠标按下后立即变为“未单击”,从而阻止 32 位机器上的任何 IE 用户使用此滚动条功能。关于滚动条的其他一切都可以正常工作,例如单击箭头、单击箭头和滚动条之间的空间以及使用鼠标滚轮。

我已经尝试删除behavior: url(/Resources/PIE.htc);规则,但问题仍然存在。

带有溢出自动功能的 div 在 IE 8 中不起作用/有错误吗?

此外,这已经在 FF 和 Chrome 的 32 位和 64 位版本中进行了测试,并且一切正常。

更新:

我已经对此进行了一致的测试,但我似乎无法弄清楚发生了什么,我也无法在网上看到任何其他人发生过这种情况的例子。我用唯一的规则来测试它div#eventBoxoverflow: auto;, overflow: scroll;, overflow-y: auto;, and/oroverflow-y: scroll;并且问题仍然存在。每次我在 IE 8(无兼容模式)中单击滚动条时,它都会失去焦点。

我很难相信这是一个已知的错误(因为相关的搜索结果为零),因为我认为这是我搞砸了,因为只需要一个内容溢出的 div 就会产生滚动条导致这个故障。

如果我是个有钱人,在 Internet Explorer 8 开发的时候,我会很乐意花钱请微软 Internet Explorer 项目团队的每个人参加“最佳实践”和“遵守标准”的课程。

更新 2:

实际上,如果我非常快地双击滚动条并按住第二次单击,我实际上可以在 IE 8 中抓住它。当然,从最终用户的角度来看,这仍然不好,但也许这种行为会有所帮助解释原因。

最终更新(解决方案):

根据我从这篇文章的评论中收到的建议,我决定删除所有脚本和 CSS 并开始添加内容,一次一个。错误不在任何脚本中,而是在 CSS 中。无论出于何种原因,behavior: url(/Resources/PIE.htc);主站点包装器 div 上的集合(远离问题元素的 DOM 树)显然导致了问题。我仍然不知道怎么做,但我的解决方案是简单地从该元素中删除 PIE,这反过来又破坏了其他两个 PIE 引用,我可以通过将它们的位置设置为相对来修复它们。目前,在 IE 8 中似乎一切正常,但当我因使用 PIE 而遇到任何其他问题时,我会将其从我的站点中清除。

4

0 回答 0