【问题标题】:Show div in every browser apart from IE在除 IE 之外的所有浏览器中显示 div
【发布时间】:2013-06-05 18:15:49
【问题描述】:

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

我有什么遗漏吗?

【问题讨论】:

  • Internet Explorer 10 及更高版本,我想...
  • 首先,解释你为什么需要这样做,因为可能有更好的方法来解决它。其次,详细说明您尝试过的方法以及遇到的问题。
  • 让我猜猜...消息说“此页面最好在其他浏览器中查看”....?说真的,不要那样做。像这样的浏览器检测将我们带回到 1990 年代。这正是那些年来留给我们 IE6 遗产的东西。
  • 谢谢大家。我正在使用 MS Visual Studio,我们想显示一条消息,基本上说我们包含的某些功能可能无法在其他浏览器上运行(我们尚未全部测试)但我们已经在 IE 中测试了它们8+。目前,如果您使用的是 IE
  • @ChrisTaylor - 让我知道该答案是否适合您。

标签: javascript css internet-explorer


【解决方案1】:

我不建议你这样做!

首先,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;}
}

Microsoft 故意破坏 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.

【讨论】:

  • 这完美!非常感谢!我花了很长时间研究这个,好几个小时,但没有出现过这样的情况。再次感谢您!
  • @ChrisTaylor 没问题,但请在某个时候尝试 Modernizr,它将在为大众市场开发网站时为您提供很多帮助。 IE 现在不到 40% 的市场份额。
  • 感谢@LightningDust。我目前正在研究 Modernizer。
猜你喜欢
  • 2016-11-20
  • 2015-06-08
  • 2022-08-17
  • 2011-06-30
  • 2020-07-26
  • 2013-09-17
  • 1970-01-01
  • 2015-02-01
  • 2011-08-27
相关资源
最近更新 更多