CSS仅针对IE10和BELOW(不是IE11)?

时间:2015-08-06 12:09:09

标签: html css internet-explorer

是否有针对IE10及以下版本定位CSS的简单方法? IE11工作正常(我现在支持使用的CSS),但我需要为以下任何内容添加特定的CSS。

我知道我可以将它用于IE9:

<!--[if IE 7 ]> <html class="ie7"> <![endif]-->
<!--[if IE 8 ]> <html class="ie8"> <![endif]-->
<!--[if IE 9 ]> <html class="ie9"> <![endif]-->

但IE10不支持条件评论,我不想在内容元标记中定位IE9,因为我想默认使用11 / Edge(我不想被困在过去!)。

使用IE特定媒体查询不是一个选项,因为它会将CSS应用于IE11,我也不想这样做。我想要定位IE11以下任何东西的原因只是我有一套备份&#39;我想在默认&#39;适当的情况下应用的CSS <(适用于IE11,Chrome,Firefox等)的CSS无法应用。

我也尝试过倒退 - 将备份CSS作为默认设置,然后让CSS专门针对目标:

IE11 +使用_:-ms-fullscreen :root

Chrome使用@supports (-webkit-appearance:none)

Firefox使用@supports (-moz-appearance:meterbar)

但是这并没有奏效,因为IE11仍在挑选部分默认CSS。 Chrome和Firefox正确显示了特定的CSS,但其他网站样式存在各种其他问题。

关于如何在不针对IE11的情况下专门针对IE10的任何想法?

由于

2 个答案:

答案 0 :(得分:2)

请勿检查浏览器,而是检查您尝试使用的功能。 Modernizr允许检查当前浏览器是否支持特定功能 - &gt; http://modernizr.com/

同样检查IE 11中的浏览器将无法正常工作,他们将代理名称从IE更改为Mozilla(read more

以下是有关@support和modernizr的更多信息 - &gt; http://demosthenes.info/blog/964/A-Browser-Native-Modernizr-Using-supports-in-CSS(向下滚动一下)

答案 1 :(得分:-1)

刚刚在我正在为客户定位IE10和11的网站上使用它:

var doc = document.documentElement;

doc.setAttribute('data-useragent', navigator.userAgent);

var userAgent = $('html').attr('data-useragent');

if ( userAgent.indexOf('MSIE 10.0') >=0 || userAgent.indexOf('Trident') >=0  ) {
    /* YOUR CODE */
}

这会将属性data-useragent添加到HTML元素中,并使用navigator.userAgent(一种识别浏览器的好方法)填充它。然后它使用'if'参数来检测该属性中的特定字符串,例如IE10具有MSIE 10.0且IE11具有Trident。

希望这有助于某人!