何时会使用<! - [if!IE]>?

Kyl*_*yle 6 html internet-explorer conditional-comments

昨晚我在调试IE7中的一些东西时正在思考这个问题,当我输入<!--[if IE7]>...它时,我已经看到了<!--[if !IE]>.

现在得到的是,据我所知,只有IE识别这些条件评论,所以说if NOT IE没有意义,IE是否看到这个并说"Iam IE,所以这不适用于我?" 或者人们对哪些浏览器可以识别它感到困惑?

所以我的问题是.

你会在哪里使用<!--[if !IE]>它的目的是什么?

Hor*_*mir 17

您可以将它与特殊的synax一起使用:

<!--[if !(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]-->
Run Code Online (Sandbox Code Playgroud)

这意味着IE忽略了介于两者之间的内容,但其他浏览器将条件注释视为已关闭的注释并解释它们之间的内容.

  • +1这是正确的,而且它验证为HTML.有一个MSDN文档建议`<![if!IE]> <![endif]>`但这是无效的(我不知道微软在想什么). (4认同)

min*_*gos 1

AFAIK,其他浏览器将条件注释视为注释块(即,它们根本不被解析)。因此,这样的注释将使除 Internet Explorer 之外的任何内容发生(即包含 CSS 文件)(因此它与[if IE]条件注释相反)。在此类注释中添加所有 CSS,然后查看 IE 的行为方式:P。

[编辑]

好的,我刚刚检查过。这确实是愚蠢的。由于该<style>标签位于 CC 中,其他浏览器根本不会解析它,因此它实际上根本不会被包含。IE 确实将此解释为“啊哈,我是 IE,所以我需要跳过这个”。我能想到的唯一合理的解释是微软假设在某个时候其他浏览器可能会开始解析条件注释。

  • 有一种方法可以使用 [if !IE] .. 检查我的答案。 (3认同)