为什么在IE 8中不会使用滚动条拖动div?

时间:2013-05-21 18:29:34

标签: html css internet-explorer internet-explorer-8

我有一个符合以下规则的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中,当我尝试“单击并拖动”滚动条时,它在mousedown之后立即变为“未被点击”,从而阻止32位机器上的任何IE用户使用此滚动条功能。滚动条的其他所有内容都可以正常工作,例如单击箭头,单击箭头和滚动条之间的空格,以及使用鼠标滚轮。

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

div溢出自动无法工作/ IE 8中有错误吗?

此外,这已经在32位和64位版本的FF和Chrome中进行了测试,一切都运行良好。

更新

我已经对此进行了持续测试,我似乎无法弄清楚发生了什么,我也无法在网上看到任何其他任何例子。我使用div#eventBox overflow: auto;overflow: scroll;overflow-y: auto;和/或overflow-y: scroll;的唯一规则对其进行了测试,问题仍然存在。每次我在IE 8中单击滚动条(没有兼容模式)时,它都会失去焦点。

我觉得很难相信这是一个已知的错误(因为零相关的搜索结果),因为它相信这是我搞砸了的东西,因为它只需要一个带有溢出内容的div滚动条导致这个故障。

如果我是一名富翁,那么在开发Internet Explorer 8时,我很乐意为微软Internet Explorer项目团队的每个人支付费用,以便参加“最佳实践”和“遵守标准”课程。

更新2:

实际上,如果我真的快速双击滚动条并按住第二次单击,我实际上可以在IE 8中获取它。当然,从最终用户的角度来看,这仍然是不好的,但也许是行为将有助于解释原因。

最终更新(解决方案):

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

1 个答案:

答案 0 :(得分:2)

尝试将overflow: auto;更改为overflow: scroll;

很抱歉发布这个作为一个非常简短的回答而不是评论,但我在这里和我的声誉很新鲜,我不认为我的评论是启用的。