是否有针对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的任何想法?
由于
答案 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。
希望这有助于某人!