我正在使用以下 IE 条件注释:
<!--[if gt IE 7]>
Here is some code.
<![endif]-->
这可以很好地防止代码在任何低于 8 的 IE 中呈现。
但是,这也可以防止代码在 Chrome 和 Firefox 中呈现。
关于为什么会发生这种情况以及如何让代码在 IE 以外的浏览器中呈现的任何想法?
我正在使用以下 IE 条件注释:
<!--[if gt IE 7]>
Here is some code.
<![endif]-->
这可以很好地防止代码在任何低于 8 的 IE 中呈现。
但是,这也可以防止代码在 Chrome 和 Firefox 中呈现。
关于为什么会发生这种情况以及如何让代码在 IE 以外的浏览器中呈现的任何想法?
条件注释是 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-->
在代码之前呈现。其他浏览器仍会将其视为评论的一部分。