我一直在疯狂地试图让评论条件起作用,我没有运气,有人可以解释我做错了吗?
这是我的代码:
<!--[if IE 10]>
IE IS VERSION 10<br />
<![endif]-->
<!--[if !IE]><!-->
Browser is not IE
<!--<![endif]-->
<!--[if lt IE 9]>
IE IS LESS THAN VERSION 9<br />
<![endif]-->
正在发生的事情是令人沮丧的不一致。当我在 IE8 中加载带有上述代码的页面时,它会收到消息“IE不仅仅是版本9”很好吗?不,因为当我在 IE10 中加载SAME PAGE时,我收到消息“浏览器不是IE”
为什么认为IE10不是IE浏览器?!我一直在一页一页地爬行,但我的代码似乎没有任何问题。
答案 0 :(得分:21)
我很惊讶没有人添加css解决方案。如果您只想使用css,请使用如下语句:
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
/* Put your IE-only styles here. Works for IS 10 & IE 11*/
}
这样您就不必依赖jquery或任何html标记。只需将它发布在CSS中即可。
现在,这是一个黑客攻击吗?有可能。这取决于使用微软高对比度标签,但由于没有其他浏览器使用ms标签,那么你应该好好去。
最后,请查看这些页面以获取更多信息:
答案 1 :(得分:19)
CSS解决方案:
如果您只想在浏览器上应用CSS基础,那么您可以尝试:
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
/* Put your IE-only styles here. Works for IS 10 & IE 11*/
}
JavaScript解决方案:
IE 10不支持条件语句。
Conditional statements in Internet Explorer 10.。它会将条件注释视为常规HTML注释,并完全忽略。
使用Modernizr等功能检测库代替浏览器检测。
在此impressivewebs中找到comment的解决方案:
解决方案是:
if (Function('/*@cc_on return document.documentMode===10@*/')()) {
alert('IE 10');
} else {
alert('Not IE 10');
}
它
答案 2 :(得分:2)
IE 10删除了有条件的评论。
您可以在javascript中执行类似的操作:
if ($.browser.msie && $.browser.version === 10) {
// stuff here (like adding an IE10 class to the body or html tag
}
答案 3 :(得分:2)
IE 10,11 及向上 不再支持条件评论。
答案 4 :(得分:1)
尝试在页面顶部附近添加以下元标记,以选择加入Internet Explorer 9行为:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">
这是因为在Internet Explorer 10标准和怪癖模式中删除了条件注释,以提高互操作性并符合HTML5。这意味着条件注释现在被视为常规注释,就像在其他浏览器中一样。此更改可能会影响专门为Windows Internet Explorer编写的页面或使用浏览器嗅探来改变其在Internet Explorer中的行为的页面。