添加针对IE浏览器的CSS类:JavaScript或条件注释?

Jef*_*eff 0 javascript jquery internet-explorer conditional-comments modernizr

我的目标是从我的文档中删除IE条件注释<head>,但我认识到我仍然需要使用ie6,7,8特定的样式表(如果我错了,请纠正我).

例如,HTML5Boilerplate 3.0使用这些IE条件:

<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"><![endif]-->
<!--[if IE 7]>   <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>   <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
Run Code Online (Sandbox Code Playgroud)

所以相反,我想我想使用JavaScript将类添加到我的html标签中,从而得到这个(如图所示):

<html lang="en" class="ie6 ie7 ie8">

所以我的问题是:使用JavaScript将CSS类添加到我的文档的html元素而不是使用IE条件注释有什么缺点(后果)?

我现在能想到的一个效果:

  1. IE客户端可能禁用了JavaScript.对我来说这不是问题; 访问我网站的客户需要启用JS.

编辑:我将继续并承认添加这些类的最可靠的方法是(遗憾地)使用IE条件注释.谢谢大家对话.

Pra*_*man 5

另一件事是,单独使用JavaScript并不是一个完美检测浏览器的好主意.你听说过User Agent Spoofing吗?JavaScript通过用户代理检测浏览器.但是,如果浏览器附带一个欺骗性的用户代理,那么Firefox就像Chrome一样.希望你明白!

  • +1,我想知道实际IE6-8用户中有多少比例欺骗他们的UA? (2认同)