2

A如果浏览器是 IE 6 或更低版本,我试图显示一个跨度,或者B如果浏览器大于 IE 6 或不是 IE,我试图显示一个跨度。

<!--[if lte IE 6]><!--><span>You're using IE 6 or lower.</span><!--<![endif]-->
<!--[if (!IE)|(gt IE 6)]><!--><span>You're using IE 7 or greater or another browser.</span><!--<![endif]-->​

这在我拥有的每个 Internet Explorer 版本中都能完美运行,但在 Chrome 和 Firefox中,两个跨度都会显示。我猜他们不承认这个条件,因为它们是微软特有的。

有没有办法在不重复使用 JavaScript 的情况下做到这一点?

4

4 回答 4

6

您的第一个条件评论应该是:

<!--[if lte IE 6]><span>You're using IE 6 or lower.</span><![endif]-->

这是一个单独的注释 ( <!-- … -->),大多数浏览器都会这样处理。只有 IE 会将其视为评论以外的任何内容,并且只有 IE <= 6 会显示span.

将其与您现在拥有的进行比较:

<!--[if lte IE 6]><!--><span>You're using IE 6 or lower.</span><!--<![endif]-->

这是两个注释 (<!--[if lte IE 6]><!--><!--<![endif]-->),它们之间有一些标记。由于只有 IE 知道评论有任何特殊性,其他浏览器会显示内容,但不会显示两条评论。

您可以在 Quirksmode 上找到关于条件注释的非常详尽的指南

于 2012-05-27T08:14:16.023 回答
1

这在我拥有的每个 Internet Explorer 版本中都能完美运行,但在 Chrome 和 Firefox 中,两个跨度都会显示。

好吧,他们会的。

条件注释是 IE 的一项功能。仅有的。其他浏览器将它们视为普通注释。

于 2012-05-27T08:07:29.590 回答
1

这是一个测试用例

如您所见,我使用了两种类型的评论。下层显示和下层隐藏,以支持非 IE 浏览器。有关此主题的更多信息,请阅读Microsoft关于此的帖子。

于 2012-05-27T08:23:15.817 回答
0

摆脱第二条评论和

只保留:

<!--[if lte IE 6]> code <![endif]-->

您正在评论代码本身,但它没有显示出来。

于 2012-05-27T08:35:19.790 回答