2008-09-05 11 views

Antwort

10

Dies funktioniert über alle Browser, weil alles außer IE sieht <!--IGNORED COMMENT-->. Nur IE liest den Kommentar, wenn er eine Bedingungsklausel enthält. Werfen Sie einen Blick auf this article

Sie können auch angeben, welche Version von IE. Zum Beispiel:

<!--[if IE 8]> 
<link rel="stylesheet type="text/css" href="ie8.css" /> 
<![endif]--> 
+0

Um ein bisschen hinzuzufügen, wird dies offiziell von MS unterstützt, und wird allgemein als eine Best Practice des Entwicklers in Fällen, in denen Sie unbedingt IE (vs alle hässlichen CSS Hacks Web-Devs zuvor verwendet). Hier ist ein MSDN-Artikel mit vollständiger Syntax: http://msdn.microsoft.com/en-us/library/ms537512.aspx – joelhardi

1

Zusätzlich zu Ross' Antwort, können Sie nur das Internet Explorer-Rendering-Engine mit bedingten Kommentaren zielen; Für andere Browser gibt es kein ähnliches Konstrukt. Zum Beispiel können Sie keine bedingten Kommentare schreiben, die auf Firefox ausgerichtet sind, aber vom Internet Explorer ignoriert werden.

Die Art und Weise, wie ich den gleichen Effekt wie oben in Ihrem Beispiel erzielt habe, besteht darin, die User-Agent-Zeichenfolge zu erkennen. Ich liefere dann eine passende CSS-Datei für diesen Browser. Dies ist nicht perfekt, da manchmal Benutzer ihre User-Agent-Zeichenfolge aus Gründen der Kompatibilität ändern.

Die andere Möglichkeit, verschiedene Browser anvisieren, ist Browser-spezifische Hacks zu verwenden. Diese sind besonders unangenehm, da sie sich normalerweise auf Bugs im Browser verlassen und Bugs behoben werden können!

User-Agent-Sniffing ist meiner Meinung nach die beste Allround-Lösung.

1

Wenn Sie Javascript verwenden können, gibt es mehrere Möglichkeiten:

navigator.appName 
navigator.appVersion 

link

Oder etwas robustere durch eine Bibliothek wie jQuery verwenden.

Schließlich könnten Sie das Objekt BrowserDetect von QuirksMode verwenden.

Sobald Sie den Browsernamen und die Version haben, können Sie HTML einfügen, um eine Verknüpfung zu einem Stylesheet herzustellen oder andere Tags einzubinden.

1

Bedingte Kommentare sind rein für IE (Version 5 und höher). Die offizielle Microsoft-Dokumentation lautet here. Wenn Sie sie verwenden, ist die beste Strategie, externe Stylesheets oder Javascript-Dateien nach Ihren normalen Includes bedingt einzuschließen. Dies bedeutet, dass auf IE Ihr IE-spezifischer Code alles andere überschreibt. In jedem anderen Browser wird der Code als Kommentar behandelt und vom Parser ignoriert.