IE 10+不支持条件语句。这使得IE 7-11的开发变得棘手,因为IE10-11在条件语句中解析内容而不是忽略它。例如:
<!--[if (IE 9) | (IE 8)]><!-->
// Code here will get rendered by IE10 & IE11
<!--<![endif]-->
所以,如果我想要一些代码将在IE 8&amp;只有9,然后一些代码将在IE10,IE11&amp;仅限Firefox,我该怎么做?
编辑:请注意,我不是在谈论风格;我想支持我的网页中的重大结构更改。 E.g:
<!--[if (IE 9) | (IE 8)]><!-->
<div>
<div>
Test
</div>
</div>
<!--<![endif]-->
<!--[if (IE 10]><!-->
<div>
<h3>Test</h3>
</div>
<!--<![endif]-->
答案 0 :(得分:3)
我让这个工作在我的最后。看起来条件语句的格式是关闭的。
<!--[if (IE 9) | (IE 8)]>
Code here will not get rendered by IE10 & IE11
<![endif]-->
另外,你渲染的是什么类型的代码,js,css?
答案 1 :(得分:2)
如果您只想让IE8 / 9从其他所有内容中呈现不同的标记(意味着IE10 +接收与所有其他浏览器相同的代码),那完全可行:
您需要隐藏所有其他浏览器的(IE 9) | (IE 8)
条件。这意味着让注释部分封装整个代码块,而不仅仅是条件表达式。
您需要允许所有其他浏览器查看其他条件,同时阻止IE8 / 9看到该部分。
(IE 10)
部分没问题; IE8和IE9会知道它们不满足条件,因此即使它没有被注释掉也不会呈现标记,而IE10将永远不会看到条件(并且任何更高版本都不会),因此它将呈现标记,因为它没有隐藏在评论中。
因此:
<!--[if (IE 9) | (IE 8)]>
<div>
<div>
Test
</div>
</div>
<![endif]-->
<!--[if (IE 10)]><!-->
<div>
<h3>Test</h3>
</div>
<!--<![endif]-->