Html 目标IE版本大于9而不使用javascript

Html 目标IE版本大于9而不使用javascript,html,css,internet-explorer,Html,Css,Internet Explorer,由于IE10+版本不支持条件注释,您建议用什么其他方法将某些CSS规则应用于这些版本。我已经用它介绍了IE9和更旧版本: <!--[if IE]> <link rel="stylesheet" type="text/css" href="css/ie.css"> <![endif]--> 还有什么方法可以将所有IE版本的CSS规则放在一个文件中,但通过注释或类似的方式来区分某些特定IE版本的CSS规则 编辑:在这种情况下,没有Javascript也

由于IE10+版本不支持条件注释,您建议用什么其他方法将某些CSS规则应用于这些版本。我已经用它介绍了IE9和更旧版本:

<!--[if IE]>
   <link rel="stylesheet" type="text/css" href="css/ie.css">
<![endif]-->

还有什么方法可以将所有IE版本的CSS规则放在一个文件中,但通过注释或类似的方式来区分某些特定IE版本的CSS规则

编辑:在这种情况下,没有Javascript也不可能进行服务器端检测。

取决于您的服务器端设置。在PHP中,您可以在进行一点配置之后访问use。然后,您可以返回特定的css,或者只向body/html添加一个类(但不确定向html元素添加类是否有效)

使用Javascript JS/jQuery CSS
如果IE忽略了条件,并且JavaScript没有选项,那么我能想到的唯一解决方案就是在服务器端嗅探用户代理,假设您提供的不是直接的HTML文件,而是由后端/服务器端脚本语言生成的HTML。如果您在用户代理字符串中看到“MSIE 10”,则可以将生成的HTML更改为out在body标签中输入特定的IE10类


请注意,您必须有一个很好的理由这样做,因为当无法运行客户端代码时,您不能使用功能检测…

是,此问题说明“仅JS”但这个问题只涉及CSS。@rlemon它似乎只使用javaScript,而不是纯CSS。你不针对IE。你不针对任何浏览器。这会破坏网络。如果你需要帮助编写一个优雅降级的跨浏览器解决方案,堆栈溢出将有所帮助。@Dummy初学者,如我所述。是的,一些答案是Java脚本,但如果你仔细阅读,就会发现只有css才有解决方案。然而,我倾向于同意功能检测比有条件地针对浏览器要好得多。我倾向于同意Jonathan的观点,特别是因为版本10给开发人员带来的麻烦比它的前代版本少得多。然而,所问的问题描绘了一个真实世界的情况遗憾的是,在项目中必须在某一点或另一点采取此类措施。请注意,用户代理字符串在IE10和IE11之间发生了更改,并且不再提及“MSIE\d”。因此,如果浏览器/版本期望出现此模式,则任何嗅探浏览器/版本的机会都将失败。
if ($.browser.msie && $.browser.version == 10) {
  $("body").addClass("ie_ten");
}
body.ie_ten{
    /* ie specific stuff */
}