-1

我在 div 中有一条消息,我需要在 Internet Explorer 中未查看的网页上显示该消息。我已经尝试了标准<!--[if !IE]>和其他一些建议,但无济于事。

有什么我想念的吗?

4

1 回答 1

2

我不建议你这样做!

首先,浏览器检测是邪恶的,你应该尽可能避免它。使用诸如Modernizr之类的功能检测更加用户友好。请记住,许多用户(所有移动用户、Mac 用户、Linux 用户)即使愿意也无法选择使用 IE。

话虽如此,有可能...

好的,假设您的 HTML 是这样的:

<div id='notOnIE'>Some content, do not display on IE.</div>

DIV在 IE9 及更早版本中隐藏:

首先,让我们检测 IE9- 并使这个 DIV 在 IE 中不可见:

<!--[if IE]>
    <style type='text/css'>
        #notOnIE{ display:none; }
    </style>
<![endif]-->

DIV在 IE10 中隐藏:

现在,我们需要在 IE10 中隐藏 DIV,将其添加到您的 CSS 样式表中:

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
    #notOnIE{display:none;}
}

Microsoft 故意破坏 IE10 中的 IE 标签,因为它支持许多 HTML5 标准,并且人们(ab)使用这些标签来使他们的网站故意破坏 IE,而不是呈现半工作版本。

在 jsFiddle 上工作演示

注意:如果要DIV在 IE7 及更早版本上显示:

在您的评论中,您建议您已经测试过 IE8 及更高版本,但 IE7 甚至 6 仍然可以使用,所以如果您也想DIV在这些上显示,您可以使用版本检测:

<!--[if gte IE 8]>
    <style>
        #notOnIE{display:none;}
    </style>
<![endif]-->

在 jsFiddle 上工作演示

于 2013-06-05T10:01:25.400 回答