it-swarm.com.de

<! - [if! IE]> funktioniert nicht

Ich habe Probleme beim Erhalten 

<!--[if !IE]>

arbeiten. Ich frage mich, ob das so ist, weil ich dies in meinem Dokument habe 

<!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]-->

Wenn ich hinzufüge 

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

zu meinem Header aus irgendeinem Grund funktioniert es nicht. Wenn ich aber hinzufüge 

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

auf die eigentliche HTML-Seite (in der Kopfzeile) funktioniert es . Irgendwelche Vorschläge? Prost 

Aktualisieren Sie meine Frage

Ok, als ich <!--> entfernte, habe ich nur eingecheckt IE was funktionierte, aber jetzt wieder in FF, wurde die no-ie.css auch auf FF angewendet. Also fügte ich wieder in <!--> hinzu und entfernte das/(und fügte das in die Hauptvorlage ein, damit die cms es nicht wieder hinzufügen) und alles funktioniert wieder in FF, aber jetzt wird das Stylesheet auf den IE! .__ angewendet Ich habe es versucht

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

und 

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

Und das hat nicht funktioniert. Im Grunde versuche ich, diese Seite zum Laufen zu bringen http://css-tricks.com/examples/ResponsiveTables/responsive.php , aber verschiebe die CSS in ein Stylesheet. Sicher muss es einfach sein. Was vermisse ich? Ich würde JQuery lieber nicht verwenden, wenn ich nicht .. ____

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

Hinweis: Diese bedingten Kommentare lauten werden ab IE 10 ab 10 nicht mehr unterstützt .

221
Thinking80s

Andere Browser als IE behandeln die Bedingungsanweisungen als Kommentare, da sie in Kommentartags eingeschlossen sind.

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

Wenn Sie jedoch einen Browser verwenden, der NICHT IE ist, müssen Sie zwei Kommentare verwenden, einen vor und einen nach dem Code. IE ignoriert den Code zwischen ihnen, während andere Browser ihn als normalen Code behandeln. Die Syntax für das Targeting von Nicht-IE-Browsern lautet daher:

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

Hinweis: Diese bedingten Kommentare lauten werden ab IE 10 ab 10 nicht mehr unterstützt .

64
user1324409

Ein Update, wenn jemand diese Seite noch immer erreicht, fragt sich, warum das Targeting nicht funktioniert. IE 10 und mehr unterstützt keine bedingten Kommentare mehr. Auf der offiziellen Website der MS: 

Die Unterstützung für bedingte Kommentare wurde in Internet Explorer .__ entfernt. 10 Modi für Standards und Macken für verbesserte Interoperabilität und Einhaltung von HTML5.

Weitere Informationen finden Sie hier: http://msdn.Microsoft.com/en-us/library/ie/hh801214(v=vs.85).aspx

Wenn Sie unbedingt ein Ziel benötigen, dh, Sie können diesen Jquery-Code verwenden, um eine IE-Klasse hinzuzufügen und dann die .ie-Klasse in Ihrer CSS zu verwenden, um zB Browser zu zielen. 

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

Update: $ .browser ist nach jQuery 1.9 nicht verfügbar. Wenn Sie ein Upgrade auf jQuery über 1.9 durchführen oder es bereits verwenden, können Sie jQuery nach jQuery ein Migrationsskript hinzufügen, sodass fehlende Teile hinzugefügt werden: jQuery Migrate Plugin

Überprüfen Sie alternativ diesen Thread auf mögliche Problemumgehungen: browser.msie Fehler nach dem Update auf jQuery 1.9.1

37
Selay

Ich benutze das und es funktioniert:

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

Die von Microsoft empfohlene Syntax für nachgeschaltete bedingte "Kommentare" lautet:

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

Dies sind keine Kommentare, aber sie funktionieren einwandfrei.

12
user1479055

Sie müssen ein Leerzeichen für den <!-- [if !IE] --> angeben. Mein vollständiger CSS-Block lautet wie folgt, da IE8 bei Medienabfragen fürchterlich ist

<!-- 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

Zum Targeting von IE Benutzern:

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

Für alle anderen Ziele:

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

Die bedingten Kommentare können nur von Internet Explorer erkannt werden, alle anderen Browser fädeln sie als normale Kommentare ein.

Um auf IE 6,7 usw. zu zielen, müssen Sie in der If-Anweisung "Größer als gleich" oder "Weniger als (gleich)" verwenden. So was.

Größer als oder gleich:

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

Weniger als:

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

Quelle: mediacollege.com

8
Munchies

Zuallererst lautet die richtige Syntax:

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

Versuchen Sie diesen Beitrag: http://www.quirksmode.org/css/condcom.html Und http://css-tricks.com/how-to-create -ein-dh-nur-Stylesheet/

Eine andere Sache, die Sie tun können:

Überprüfen Sie den Browser mit jQuery:

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

in diesem Fall können Sie die CSS-Regeln für einige Elemente ändern oder neue CSS-Verweis hinzufügen:

lesen Sie dies: http://rickardnilsson.net/post/2008/08/02/Applying-stylesheets-dynamically-with-jQuery.aspx

7
BorisD

Dies ist für bis 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>

Dies ist für nach IE9

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

Für den IE - Browser:

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

Für alle Nicht-IE-Browser:

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

Für alle IE größer als 8 OR für alle Nicht-IE-Browser:

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

Bedingter Kommentar ist ein Kommentar, der mit <!--[if IE]> beginnt und von keinem Browser außer IE gelesen werden konnte.

ab 2011 Bedingter Kommentar wird nicht unterstützt Startformat IE 10, wie von Microsoft in dieser Zeit angekündigt https://msdn.Microsoft.com/en-us/library/hh801214 (v=vs.85). aspx

Die einzige Option zur Verwendung der bedingten Kommentare ist die Anforderung von IE, Ihre Site als IE 9 auszuführen, die die bedingten Kommentare unterstützt.

sie können Ihre eigenen CSS- und/oder JS-Dateien nur für das Schreiben schreiben und andere Browser laden oder führen sie nicht aus.

dieses Code-Snippet zeigt, wie mit IE 10 oder 11 ie-only.css und ie-only.js ausgeführt werden, die benutzerdefinierte Codes enthalten, um IE Kompatibilitätsprobleme zu lösen.

    <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

Dies funktioniert für alle Browser größer als Version 6 (IE7, 8, 9, 10 usw., Chrome 3 bis zu dem, was es jetzt ist, und FF ver 3 bis zu dem, was es jetzt ist):

//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

Ich verwende dieses Javascript, um den IE - Browser zu erkennen

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

Danke Fernando68, ich habe das verwendet:

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

Falls Sie mit IE 10 oder höher arbeiten, wie in http://tanalin.com/en/articles/ie-version-js/ erwähnt, werden die bedingten Kommentare nicht mehr unterstützt. Als alternative Methode können Sie https://Gist.github.com/jasongaylord/5733469 verwenden, wobei die Trident-Version ebenfalls vom navigator.userAgent überprüft wird. Dies wird auch überprüft, wenn der Browser im Kompatibilitätsmodus arbeitet.

0
Toshihiko