web-dev-qa-db-ja.com

<! - [if!IE]>が機能していない

うまくつかない

<!--[if !IE]>

働く。それが私の文書にこれがあるからだろうか。

<!doctype html>
<!--[if lt IE 7]> <html class="ie6 oldie"> <![endif]-->
<!--[if IE 7]>    <html class="ie7 oldie"> <![endif]-->
<!--[if IE 8]>    <html class="ie8 oldie"> <![endif]-->
<!--[if gt IE 8]><!-->
<html class="">
<!--<![endif]-->

追加したとき

<!--[if !IE]><!-->
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css" />
<!--<![endif]-->

何らかの理由で私のヘッダにそれが動作しません。しかし私が加えれば

<!--[if !IE]><!-->
    <style>
        All my css in here
    </style>
    <!--<![endif]-->

実際のHTMLページ(ヘッダー内)には動作します。助言がありますか?乾杯

私の質問に更新する

さて、私が<!-->を削除したとき、私はIEでチェックインしていましたが、これは動作していましたが、今はFFに戻って、no-ie.cssがFFにも適用されました。だから私は<!-->に戻って/を削除して(そしてそれをメインテンプレートに追加してcmsがそれを再び追加しないようにした)そしてすべてFFで戻って作業しているが、今スタイルシートはIEに適用されている!だから私は試した

<!--[if IE]>
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css">
<![endif]-->

そして

<!--[if !IE]> -->
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css">
<!-- <![endif]-->

そしてそれはうまくいきませんでした。基本的に私はこのページを動作させようとしています http://css-tricks.com/examples/ResponsiveTables/responsive.php しかしcssを動かしますスタイルシートにきっとそれは単純になるはずです。何が足りないの?必要がなければ、JQueryを使用したくはありません。乾杯

132
user1516788
<!--[if !IE]><!--><script src="zepto.min.js"></script><!--<![endif]-->
<!--[if IE]><script src="jquery-1.7.2.min.js"></script><![endif]-->

注意:これらの条件付きコメントは IE 10以降ではサポートされなくなりました

223
Thinking80s

IE以外のブラウザは、コメントタグで囲まれているため、条件文をコメントとして扱います。

<!--[if IE]>
Non-IE browsers ignore this
<![endif]-->

ただし、IEではないブラウザをターゲットにしている場合は、コードの前後に2つのコメントを使用する必要があります。 IEはそれらの間のコードを無視しますが、他のブラウザはそれを通常のコードとして扱います。 IE以外のブラウザをターゲットとするための構文は、次のとおりです。

<!--[if !IE]-->
IE ignores this
<!--[endif]-->

注意:これらの条件付きコメントは IE 10以降ではサポートされなくなりました

65
user1324409

もし誰かがまだこのページにたどり着いていて、なぜieターゲティングがうまく行かないのか疑問に思うのならば更新。 IE 10以降では、条件付きコメントはサポートされなくなりました。 MSの公式ウェブサイトから:

条件付きコメントのサポートは、Internet Explorer 10の標準では削除され、相互運用性とHTML 5への準拠性が向上したことを示すためのモードが変更されました。

詳細については、こちらを参照してください。 http://msdn.Microsoft.com/ja-jp/library/ie/hh801214(v = vs.85).aspx

Ieを必死にターゲットする必要がある場合は、このjqueryコードを使用してieクラスを追加してから、cssで.ieクラスを使用してieブラウザをターゲットにすることができます。

if ($.browser.msie) {
 $("html").addClass("ie");
}

更新:$ .browserはjQuery 1.9以降は利用できません。 1.9以上のjQueryにアップグレードする場合、またはすでにそれを使用している場合は、不足している部分を追加するようにjQueryの後にjQuery移行スクリプトを含めることができます。 jQuery Migrate Plugin

または、このスレッドで回避策を確認してください。 jQuery 1.9.1に更新した後のbrowser.msieエラー

37
Selay

私はそれを使います、そしてそれは働きます:

<!--[if !IE]><!--> if it is not IE <!--<![endif]-->
13
Francis

下位レベルの条件付き「コメント」に対するマイクロソフトが推奨する構文は次のとおりです。

<![if !IE]>
<link type="text/css" rel="stylesheet" href="/stylesheets/no-ie.css" />
<![endif]>

これらはコメントではありませんが、正しく機能します。

12
user1479055

IE8はメディアクエリでひどいので、<!-- [if !IE] -->私の完全なcssブロックは次のようになります。

<!-- IE 8 or below -->   
<!--[if lt IE 9]>
<link rel="stylesheet" type="text/css"  href="/Resources/css/master1300.css" />        
<![endif]-->
<!-- IE 9 or above -->
<!--[if gte IE 9]>
<link rel="stylesheet" type="text/css" media="(max-width: 100000px) and (min-width:481px)"
    href="/Resources/css/master1300.css" />
<link rel="stylesheet" type="text/css" media="(max-width: 480px)"
    href="/Resources/css/master480.css" />        
<![endif]-->
<!-- Not IE -->
<!-- [if !IE] -->
<link rel="stylesheet" type="text/css" media="(max-width: 100000px) and (min-width:481px)"
    href="/Resources/css/master1300.css" />
<link rel="stylesheet" type="text/css" media="(max-width: 480px)"
    href="/Resources/css/master480.css" />
<!-- [endif] -->
8
John Hayford

IEユーザーをターゲティングする場合:

<!--[if IE]>
Place Content here for Users of Internet Explorer.
<![endif]-->

他のすべてをターゲットにしている場合:

<![if !IE]>
Place Content here for Users of all other Browsers.
<![endif]>

条件付きコメントはInternet Explorerによってのみ検出され、他のすべてのブラウザは通常のコメントとしてそれをスレッド化します。

IE 6,7などをターゲットとするには、Ifステートメントで "Greater Than Equal"または "Lesser Than(Equal)"を使用する必要があります。このような。

より大きいか等しい:

<!--[if gte IE 7]>
Place Content here for Users of Internet Explorer 7 or above.
<![endif]-->

より小さい:

<!--[if lt IE 6]>
Place Content here for Users of Internet Explorer 5 or lower.
<![endif]-->

出典:mediacollege.com

8
Munchies

まず正しい構文は次のとおりです。

<!--[if IE 6]>
<link type="text/css" rel="stylesheet" href="/stylesheets/ie6.css" />
<![endif]-->

この記事を試してみてください。 http://www.quirksmode.org/css/condcom.html および http://css-tricks.com/how -to-an-ie-only-stylesheet /

あなたができるもう一つのこと:

JQueryでブラウザを確認してください。

if($.browser.msie){ // do something... }

この場合、いくつかの要素のCSSルールを変更したり、新しいCSSリンク参照を追加したりできます。

これを読んでください: http://rickardnilsson.net/post/2008/08/02/Applying-stylesheets-dynamically-with-jQuery.aspx

7
BorisD

これはIE9までです

<!--[if IE ]>
<style> .someclass{
    text-align: center;
    background: #00ADEF;
    color: #fff;
    visibility:hidden;  // in case of hiding
       }
#someotherclass{
    display: block !important;
    visibility:visible; // in case of visible

}
</style>

これはIE9以降のものです

  @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {enter your CSS here}
6

IEブラウザの場合:

<!--[if IE]>
<meta http-equiv="Content-Type" content="text/html; charset=Unicode">
<![endif]-->

IE以外のすべてのブラウザの場合:

<![if !IE]>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<![endif]>

すべてのIEが8より大きい場合[ORすべての非IEブラウザ:

<!--[if (gt IE 8)|!(IE)]><!--><script src="/_JS/library/jquery-2.1.1.min.js"></script><!--<![endif]-->
5
Kapil

条件付きコメントは<!--[if IE]>で始まるコメントで、これはIE以外のブラウザでは読むことができませんでした。

2011年より条件付きコメントは、その当時にMicrosoftが発表したように、フォームIE 10以降はサポートされていません https://msdn.Microsoft.com/ja-jp/library/ hh801214(v = vs. 85).aspx

条件付きコメントを使用する唯一のオプションは、条件付きコメントをサポートするIE 9としてIEを実行するようにIEに要求することです。

あなただけのためにあなた自身のcssおよび/またはjsファイルを書くことができます、そして、他のブラウザはそれをロードも実行もしません。

このコードスニペットは、IE 10または11に、ie [only.css]およびie [only.js]を実行させて、互換性の問題を解決するためのカスタムコードを含める方法を示しています。

    <html>
      <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9">
      <!--[if IE]>
            <meta http-equiv="Content-Type" content="text/html; charset=Unicode">
            <link rel="stylesheet" type="text/css" href='/css/ie-only.css' />
            <script src="/js/ie-only.js"></script>
      <![endif]-->
    </html>
3
shady sherif

これは、バージョン6以上のすべてのブラウザ(IE 7、8、9、10など、Chrome 3から現在まで、およびFF ver 3から現在まで)で動作します。

//test if running in IE or not
        function isIE () {
            var myNav = navigator.userAgent.toLowerCase();
            return (myNav.indexOf('msie') != -1 || myNav.indexOf('trident') != -1) ? true : false;
        }
1
Fandango68

IEブラウザを検出するためにこのJavaScriptを使用しています

if (
    navigator.appVersion.toUpperCase().indexOf("MSIE") != -1 ||
    navigator.appVersion.toUpperCase().indexOf("TRIDENT") != -1 ||
    navigator.appVersion.toUpperCase().indexOf("Edge") != -1
)
{
    $("#ie-warning").css("display", "block");
}
0
Muflix

ありがとうFernando68、私はこれを使用しました:

function isIE () {
     var myNav = navigator.userAgent.toLowerCase();
     return (myNav.indexOf('msie') != -1 || myNav.indexOf('trident') != -1) ? true : false;
}

if(isIE()){
     $.getScript('js/script.min.js', function() {
            alert('Load was performed.');
     });
}
0
Rodrigo Prazim

http://tanalin.com/en/articles/ie-version-js/ に記載されているように、IE 10以上で作業している場合条件付きコメントはサポートされなくなりました。別の方法として https://Gist.github.com/jasongaylord/5733469 を参照することもできます。これは、Tridentバージョンもnavigator.userAgentから確認されます。これはブラウザが互換モードで動作している場合にも検証されます。

0
Toshihiko