结合HTML条件注释以包括IE8 +而不是IE

时间:2013-06-12 16:06:36

标签: html internet-explorer browser comments conditional

我知道,针对IE8 +,你应该使用:

<!--[if gte IE 8]>
According to the conditional comment this is IE 8 or higher<br />
<![endif]-->

要定位非IE浏览器,您可以使用:

<!--[if !IE]> -->
According to the conditional comment this is not IE<br />
<!-- <![endif]-->

您还可以组合这样的条件:

[if (IE 6)|(IE 7)]

但是我的问题,现在我想要针对IE8 +或非IE浏览器,我尝试像这样定位它们:

<!--[if (!IE)|(gte IE 8)]> -->
This should be non IE or IE8+ browsers
<!-- <![endif]-->

这似乎适用于非ie浏览器,但将-->添加到IE。

我猜它与评论类型下层揭示下层隐藏有关,但我不知道如何处理它们。< / p>

2 个答案:

答案 0 :(得分:1)

来自:link

  

下一个例子恰恰相反:“只显示此内容   浏览器不是Internet Explorer“。

<![if !IE]>
Place content here to target all users not using Internet Explorer.
<![endif]>

条件注释只能由Internet Explorer识别 - 其他浏览器将它们视为普通注释并忽略它们。请注意,在上面的第二个示例(针对“其他”浏览器的那个)中,内容实际上并不在评论中 - 这就是其他浏览器显示它的原因。

所以我认为你不能结合两种不同类型的条件评论

答案 1 :(得分:0)

这对我有用。我最终不得不两次包含非IE-8 css:

<!--[if lt IE 9]>
  <link rel="stylesheet" type="text/css" href="/css/ie8.css"/>
<![endif]-->
<!--[if gte IE 9]>
  <link rel="stylesheet" type="text/css" href="/css/non_ie8.css"/>
<![endif]-->
<!--[if !IE]><!-->
    <link rel="stylesheet" type="text/css" href="/css/non_ie8.css"/>
<!--<![endif]-->

请参阅:

http://msdn.microsoft.com/en-us/library/ms537512.ASPX

http://css-tricks.com/how-to-create-an-ie-only-stylesheet/

http://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/

当然,这会导致性能下降,并使代码难以维护。但它确实有效(至少在我尝试过的浏览器上)。

如果你能找到一个满足你需求的css库,你可以考虑一个好的css库。