IE条件评论和Chrome/Firefox

Bax*_*ter 11 firefox internet-explorer rendering google-chrome conditional-comments

我使用以下IE条件评论:

<!--[if gt IE 7]>
Here is some code.
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

这非常有效,可以防止代码在任何低于8的IE中呈现.
但是,这也可以防止代码在Chrome和Firefox中呈现.

有关为什么会发生这种情况的任何想法,以及如何在IE以外的浏览器中呈现代码?

zeb*_*asz 42

条件注释是Microsoft IE特定的规则,它们不是任何标准的一部分.如果检查条件注释的结构:

<!--[if gt IE 7]>
Here is some code.
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

顾名思义,这只是一个很大的评论<!-- comment -->.IE会检查评论条件,例如这些条件,这些条件同样不符合HTML标准.

要创建不在IE中呈现但在其他浏览器中呈现的代码,请使用以下条件:

<!--[if !IE]> -->
This will be rendered by anything but IE.
<!-- <![endif]-->
Run Code Online (Sandbox Code Playgroud)

查看条件如何包含在已结束的注释中?这就是为什么在普通浏览器中渲染,而IE检查条件,并决定省略所有内容,直到endif.

编辑

如果要添加其他条件,并继续在非IE浏览器上呈现代码,可以使用以下解决方法:

<!--[if gt IE 7]> <!-- -->
Here is some code for anything but IE 7 and below.
<!-- <![endif]-->
Run Code Online (Sandbox Code Playgroud)

注意我必须再次使用打开注释来阻止IE -->在代码之前呈现.其他浏览器仍会将其视为评论的一部分.