为什么只有IE才有条件评论?

时间:2011-10-06 20:15:46

标签: internet-explorer conditional-comments

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

我是否缺少条件评论的其他用途,或者只有IE才能获得这些评论?

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

3 个答案:

答案 0 :(得分:3)

你是对的;只有IE才有此功能。

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

他们将其作为一系列功能的一部分实现,旨在让IE开发人员的生活更轻松,这样他们就可以计算出他们正在使用的IE版本。这是必要的,因为IE(与当时其他浏览器一样) )正在开发非标准功能,从一个版本到下一个版本经常发生极其重大的变化。

所以它是针对IE开发人员的,但实际上它最终起到了相反的作用,因为现在跨浏览器开发人员常常使用它来破解他们的网站以使其适用于旧版本的IE

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

目前的想法支持功能检测,而不是浏览器/版本检测。为此,您可以使用Modernizr之类的工具来确定用户浏览器支持的功能,从而为您提供更精细的控制权,以便更好地控制旧浏览器。

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

在一个理想的世界中,没有身体仍然会使用需要这种黑客的旧版IE。但它们是,我们需要支持它们,因此对于那些无法通过特征检测进行处理的情况,条件注释是可行的方法。

<强> [编辑]
这是一个古老的答案,但值得重新审视,因为从IE10开始,不再支持条件注释。 IE10是一个比其前辈更好的 更好的浏览器,而且微软一直在积极推动它尽可能地符合现代和标准。删除条件注释功能是该推送的一部分。对于旧版本的课程,条件注释仍然存在,并且上面支持和反对使用它们的论点仍然存在,但是对于IE10和未来版本,将不再提供用于处理浏览器问题的条件注释选项。

答案 1 :(得分:2)

Microsoft实现了这些,因此开发人员可以利用新浏览器的增强功能。但事实上,正如上面所解释的那样,它们现在更习惯于确保在不同浏览器中工作的代码也能在IE中运行。

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

答案 2 :(得分:0)

那是因为你需要条件评论才能获得IE渲染页面的帮助。否则大多数页面都无法在IE中正确显示(因为没有正确处理默认值)。