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; } }
または
第2の態様では、頭部増加判定
注意:以下の使用法ではIE 10とIE 11はサポートされていません
IE以外は認識可能(IEではない)
3つ目はIE hacks:
メリット:
CSS hacksは通常のCSSに組み込まれており、HTTPリクエストは発生しません.CSS hacksは普通のCSSに埋め込まれていて、書くときに便利です.
欠点:
それは標準的ではない産物です.他のCSSに内蔵されており、メンテナンスが不便です.特にhacksの数が多いときのメンテナンスは悪夢です.他のCSSに内蔵されており、IE以外のブラウザでもロードされ、リソースが浪費されます.
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以外のブラウザでもロードされ、リソースが浪費されます.