0

我正在使用以下代码向网页添加一些条件样式(我对 IE 9 及以下版本使用传统的条件注释):

<?php if (stripos($_SERVER['HTTP_USER_AGENT'], 'MSIE 10')) { ?>
  <link href="/css/ie9.css" media="screen" rel="stylesheet" />
<?php } ?>

问题是样式表仍然没有应用于某些版本的 IE 10,而且绝对不是 IE 11 预览版。有没有办法针对所有版本的 IE 10 及更高版本?我只见过使用 [1-9] 的格式,但 [10-11] 似乎不起作用。

4

1 回答 1

0

将一些代码放入您的用户代理中,检查是否返回了任何内容,它可能返回“MSIE 10”以外的内容,IE 10+ 可能仅返回 IE 或其他一些语句。我一直在使用 javascript 来做同样的事情。(尽管纯粹主义者关于使用条件注释的猫叫声)

这是我的javascript:

    function isIE(ver) 
    {
      var myNav = navigator.userAgent.toLowerCase();
      var IEVer = parseInt(myNav.split('msie')[1]);
      if ((typeof IEVer == "undefined") || (IEVer == null)) {
         IEVer = 0;
      }
      if IEVer = ver {
        return true;
      } 
      else {
        return false;
      }
    }

然后在我添加样式表的地方执行以下操作:

 if isIE(10) { do something }

更新:根据微软,你应该使用功能检测而不是浏览器检测:http: //msdn.microsoft.com/en-us/library/ie/hh273397%28v=vs.85%29.aspx

于 2013-10-02T18:28:31.603 回答