除了IE之外,在每个浏览器中显示div

时间:2013-06-05 09:55:44

标签: javascript css internet-explorer

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

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:2)

我不建议您这样做!

首先,browser detection is evil你应尽可能避免使用它。使用Modernizr之类的功能检测更加用户友好。请记住,很多用户(所有移动用户,Mac用户,Linux用户)都不会选择使用IE,即使他们想要。

话虽如此,有可能......

好的,我们说你的HTML是这样的:

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

隐藏IE9及更早版本中的DIV

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

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

隐藏IE10中的DIV

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

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

微软故意破坏IE10中的IE标签,因为它支持很多HTML5标准,并且人们(ab)使用这些标签使他们的网站故意在IE中中断而不是渲染半工作版本。

Working demo on jsFiddle

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

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

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

Working demo on jsFiddle