0

I am new user for IE11. I want to integrate one IE11 specific css in my extjs application. I have searched a lot. If anybody is having any idea , please let me know..I am having heavy deadline on this. Thanks in advance.

4

3 回答 3

1

这是一个两步解决方案,这里是对 IE10 和 11 的破解

    @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {  
   /* IE10+ specific styles go here */  
}

因为 IE10 和 IE11 支持 -ms-high-cotrast 你可以利用它来定位这两个浏览器

如果您想从中排除 IE10,您必须创建一个 IE10 特定代码,如下所示,它使用用户代理技巧,您必须添加此 Javascript

 var doc = document.documentElement;
doc.setAttribute('data-useragent', navigator.userAgent);

和这个 HTML 标签

<html data-useragent="Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)">

现在你可以像这样编写你的 CSS 代码

html[data-useragent*='MSIE 10.0'] h1 {
  color: blue;
}

更多信息请参考本网站,第一:wil tutorial

第二:克里斯教程

于 2014-04-01T14:01:35.740 回答
1
    applyIEFont = function() {
        var iev=0;
        var ieold = (/MSIE (\d+\.\d+);/.test(navigator.userAgent));
        var trident = !!navigator.userAgent.match(/Trident\/7.0/);
        var rv=navigator.userAgent.indexOf("rv:11.0");

        if (ieold) iev=new Number(RegExp.$1);
        if (navigator.appVersion.indexOf("MSIE 10") != -1) iev=10;
        if (trident&&rv!=-1) iev=11;

        if(iev == 11 || iev == 10) {
            $('.menuCaption').css({ font: 'normal 34px arial, "SegoeUi"'});
        }
    };

    setInterval(applyIEFont, 300);
    $(document).ready(applyIEFont);

看看这段代码。条件注释在ie11中不起作用,必须用js来做

于 2014-04-01T13:41:07.063 回答
1

您最好的选择是检测 IE 11 并相应地应用 CSS 类。像这样的东西(使用jQuery):

$(window).load(function(){
  if(navigator.userAgent.match(/Trident.*rv:11\./)) {
    $('body').addClass('ie11');
  }
});

您可以将该类应用于您知道有 IE 11 异常的任何元素,然后只需在 CSS 中使用该类,如下所示:

body.ie11 { }
于 2014-04-01T13:43:54.220 回答