我的团队正在开发一个具有相当复杂UI的网站; jQuery,ASP.Net AJAX等。当然我希望我的网站与所有现代浏览器兼容。有时,在开发过程中测试或一般使用网站时,IE8告诉我该页面在标准模式下不起作用,并且它正在切换到兼容模式,但它从未告诉我原因。在IE8中是否有一些日志或报告或设置或某些内容可以用来找出IE8标准模式的不良之处?在FF,Chrome,Safari和IE7中,一切似乎都运行良好,那么IE8不喜欢什么,我怎么能找到它呢?
答案 0 :(得分:2)
问题与IE8布局引擎无法解释的样式有关。不幸的是,没有全面的样式组合列表会触发这种行为。您可以通过转到“工具 - >互联网选项 - >关闭自己机器上的自动恢复功能。高级选项卡 - >浏览 - >并取消选中“自动从布局错误中恢复...”
这当然只适用于您的机器,如果触发布局错误,对您的客户没有任何好处。我对您的具体问题没有答案,但我建议您针对W3C CSS验证器验证您的CSS: http://jigsaw.w3.org/css-validator/
尝试一次删除一个复杂样式,直到找到触发网站错误的组合为止。
答案 1 :(得分:1)
可能不是一个真正的答案,但如果它正在抱怨所传递的页面(例如,在你用DOM操纵它之前),你应该能够找到它抱怨的,如果你通过同一页面通过W3C validator。当然,验证器会检查验证器对标准的解释(虽然可能并不完美但非常好),而不是 Microsoft 对标准的解释(无评论),因此两者可能并不总是对齐。
答案 2 :(得分:1)
我认为有几个问题可能会导致IE8更改为兼容模式,但我在我的网站中找到的样式是在body标签上使用伪元素。删除此操作会使IE8停止自动切换到兼容模式。
删除了这个:
body:after {
// This causes IE8 to freak out and change into Compatibility Mode!
}
答案 3 :(得分:0)
检查Quirksmode,看看他们是否知道明显的原因。