Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html IE浏览器的不同css_Html_Css_Internet Explorer_Conditional Comments - Fatal编程技术网

Html IE浏览器的不同css

Html IE浏览器的不同css,html,css,internet-explorer,conditional-comments,Html,Css,Internet Explorer,Conditional Comments,我需要运行一些css只为IE,而不是为其他浏览器。 我使用的是有条件的评论: <!--[if lt IE 7 ]><html class="ie6 ie"> <![endif]--> <!--[if IE 7 ]><html class="ie7 ie"> <![endif]--> <!--[if IE 8 ]><html class="ie8 ie"> <![endif]--> <

我需要运行一些css只为IE,而不是为其他浏览器。 我使用的是有条件的评论:

<!--[if lt IE 7 ]><html class="ie6 ie"> <![endif]-->
<!--[if IE 7 ]><html class="ie7 ie"> <![endif]-->
<!--[if IE 8 ]><html class="ie8 ie"> <![endif]-->
<!--[if gte IE 9]><html class="ie"> <![endif]-->
<!--[!(IE)]><!--><html class="no-ie"> <!--<![endif]-->

但这段代码不适用于IE11,阅读本文后我发现早期的ie版本不再有条件注释

然后我试着用这个来改变第四行

<!--[if gte IE 9]><!--><html class="ie"> <!--<![endif]-->

但我也可以在非ie浏览器中看到ie类

有没有一种聪明的方法来区分IE和其他浏览器


谢谢

您不需要区分IE的新版本和其他浏览器。IE现在是一个改进了很多的产品,它和Chrome或Firefox一样符合网络标准

条件注释仅用于IE 9及以下版本

如果有什么特别的东西需要检测,那么特征检测就是一种方法。这可以用于所有浏览器


看看

你不需要区分IE和其他浏览器的新版本。IE现在是一个改进了很多的产品,它和Chrome或Firefox一样符合网络标准

条件注释仅用于IE 9及以下版本

如果有什么特别的东西需要检测,那么特征检测就是一种方法。这可以用于所有浏览器


查看一下

一般来说,您不应该试图检测用户是否在IE11上。IE的最新版本通常与其他浏览器(HTML、CSS和JS支持)在大多数用例上是相同的。


然而,即使是微软也承认,在极少数情况下,您可能需要对其进行唯一标识。为此,他们建议查询用户代理字符串。请参阅和。

通常,您不应该尝试检测用户是否在IE11上。IE的最新版本通常与其他浏览器(HTML、CSS和JS支持)在大多数用例上是相同的。

然而,即使是微软也承认,在极少数情况下,您可能需要对其进行唯一标识。为此,他们建议查询用户代理字符串。请参阅和。

回答 您可以使用Javascript读取属性并从结果字符串中获取
userAgent
,如下所示:

var agent = window.navigator.userAgent;

if ( agent.indexOf('Trident') > -1 )
  document.querySelector('body').classList.add('ie-css');

如果您需要版本 您可以使用获得一个包含所有细节的漂亮对象。这是一种比上述方法“更安全”的方法,但您还必须包括库:

var parser = new UAParser(),
browser = parser.getBrowser();

console.log( browser.name, browser.major );  // -> "IE 10.0"

小心 您可能知道这一点,但使用浏览器嗅探是一种古老而糟糕的技术。它会很快导致遗留和不可管理的代码尝试并避免检测IE版本

用它代替。回答 您可以使用Javascript读取属性并从结果字符串中获取
userAgent
,如下所示:

var agent = window.navigator.userAgent;

if ( agent.indexOf('Trident') > -1 )
  document.querySelector('body').classList.add('ie-css');

如果您需要版本 您可以使用获得一个包含所有细节的漂亮对象。这是一种比上述方法“更安全”的方法,但您还必须包括库:

var parser = new UAParser(),
browser = parser.getBrowser();

console.log( browser.name, browser.major );  // -> "IE 10.0"

小心 您可能知道这一点,但使用浏览器嗅探是一种古老而糟糕的技术。它会很快导致遗留和不可管理的代码尝试并避免检测IE版本


改用。好的,你提出了你的建议。。。如果有一个真正问题的解决方案,那就太好了……好吧,你提出了你的建议。。。如果它附带了一个真正问题的解决方案,那就太好了……请注意,IE11在UA字符串中没有
MSIE
,因此这个答案的第一部分在那里不起作用。见@OllyHodgson谢谢你的提醒。更改为Trident。请注意,IE11在UA字符串中没有
MSIE
,因此此答案的第一部分在那里不起作用。见@OllyHodgson谢谢你的提醒。换成三叉戟。