IEかどうかを判断し、異なるcssスタイルをロードする


私は最終的に第1の第2の結合の方式を選んですべてのタイプを判断します
1つ目の方法は、初期化方法で判断し、ヘッダ追加スタイル接続を取得することです.しかし、テストを経て、IE 9以上が使いやすくなりました.
function ifIE(){      if (window.ActiveXObject || "ActiveXObject"in window){          var headHTML = document.getElementsByTagName('head')[0].innerHTML;         headHTML    += ' ';         document.getElementsByTagName('head')[0].innerHTML = headHTML;       }  }
または
 IE 
function IEVersion() {
      var userAgent = navigator.userAgent; // userAgent   
      var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; // IE<11   
      var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; // IE Edge   
      var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
      if(isIE) {
          var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
          reIE.test(userAgent);
          var fIEVersion = parseFloat(RegExp["$1"]);
          if(fIEVersion == 7) {
              return 7;
          } else if(fIEVersion == 8) {
              return 8;
          } else if(fIEVersion == 9) {
              return 9;
          } else if(fIEVersion == 10) {
              return 10;
          } else {
              return 6;//IE <=7
          }   
      } else if(isEdge) {
          return 'edge';//edge
      } else if(isIE11) {
          return 11; //IE11  
      }else{
          return -1;// ie 
      }
  }

第2の態様では、頭部増加判定
注意:以下の使用法ではIE 10とIE 11はサポートされていません
IE以外は認識可能(IEではない)
3つ目はIE hacks:
"_"   IE6  hack;
"\9"  IE6-IE10 ;
"\0" IE8-IE10 ;
"\9\0" IE9-IE10 ;

メリット:
CSS hacksは通常のCSSに組み込まれており、HTTPリクエストは発生しません.CSS hacksは普通のCSSに埋め込まれていて、書くときに便利です.
欠点:
それは標準的ではない産物です.他のCSSに内蔵されており、メンテナンスが不便です.特にhacksの数が多いときのメンテナンスは悪夢です.他のCSSに内蔵されており、IE以外のブラウザでもロードされ、リソースが浪費されます.