IE条件评论和Chrome / Firefox

时间:2012-04-15 04:52:26

标签: internet-explorer firefox google-chrome rendering conditional-comments

我正在使用以下IE条件评论:

<!--[if gt IE 7]>
Here is some code.
<![endif]-->

这可以很好地防止代码在低于8的任何IE中呈现 但是,这也会使代码无法在Chrome和Firefox中呈现。

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

1 个答案:

答案 0 :(得分:42)

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

<!--[if gt IE 7]>
Here is some code.
<![endif]-->

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

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

<!--[if !IE]> -->
This will be rendered by anything but IE.
<!-- <![endif]-->

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

修改

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

<!--[if gt IE 7]> <!-- -->
Here is some code for anything but IE 7 and below.
<!-- <![endif]-->

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