1
<!--[if IE 6]>
Special instructions for IE 6 here
<![endif]-->

我缺少条件注释的任何其他用途还是只有 IE 才能获得这些?

另外,为什么只有 IE 能得到这些?

4

3 回答 3

3

你是对的; 只有 IE 有这个功能。

这是微软在浏览器大战时期为 IE 发明的一项功能。它从未被批准为标准,也没有其他浏览器制造商实施过它。

他们将其作为一套功能的一部分来实现,旨在让纯 IE 开发人员的生活更轻松,这样他们就可以确定他们正在使用的 IE 版本。这是必要的,因为 IE(与当时的其他浏览器一样)正在开发非标准功能,并且从一个版本到下一个版本通常会有非常显着的变化。

所以它是为 IE 开发人员准备的,但实际上它最终起到了相反的效果,因为现在跨浏览器开发人员通常使用它来入侵他们的网站以使其与旧版本的 IE 一起工作。

事实上,其他浏览器制造商都没有实现它可能是一件好事,因为虽然它确实让你很容易知道你所在的浏览器版本,但浏览器/版本检测通常被认为是糟糕的实践。

当前的想法倾向于特征检测而不是浏览器/版本检测。为此,您使用诸如Modernizr之类的工具来确定用户浏览器支持的功能,这使您可以更精细地控制如何处理旧浏览器。

但是,对于旧版本的 IE,浏览器与某些标准严重不兼容,有时这还不够,在这种特定情况下确实需要检查浏览器和版本。鉴于此,条件评论功能可用是一件幸事。鉴于没有其他浏览器存在此类问题,它们不支持条件注释可能同样是一件幸事。

在一个理想的世界里,没有人会继续使用需要这种破解的旧版本的 IE。但它们是,我们需要支持它们,所以对于那些你不能用特征检测来做的少数情况,条件注释是要走的路。

[编辑]
这是一个旧答案,但值得重新考虑,因为从 IE10 开始,不再支持条件注释。IE10 是一款其前辈更好的浏览器,Microsoft 一直在积极推动使其尽可能现代化和符合标准。删除条件评论功能是该推动的一部分。当然,旧版本的条件注释仍然存在,上面支持和反对使用它们的论点仍然存在,但对于 IE10 和未来的版本,处理浏览器问题的条件注释选项不再可用。

于 2011-10-06T20:38:03.300 回答
2

微软实现了这些,因此开发人员可以利用新浏览器的增强功能。但实际上,就像上面回答的那样,它们现在更多地用于确保在不同浏览器中运行的代码也可以在 IE 中运行。

全文:http: //msdn.microsoft.com/en-us/library/ms537512%28v=vs.85%29.aspx

于 2011-10-06T20:23:01.477 回答
0

那是因为您需要条件注释来帮助 IE 呈现您的页面。否则大多数页面将无法在 IE 中正确显示(因为未正确处理默认值)。

于 2011-10-06T20:17:58.200 回答