我有一个符合以下规则的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而遇到任何其他问题时,我会从我的网站上清除它。
答案 0 :(得分:2)
尝试将overflow: auto;
更改为overflow: scroll;
很抱歉发布这个作为一个非常简短的回答而不是评论,但我在这里和我的声誉很新鲜,我不认为我的评论是启用的。