11

ich folgenden IE bedingten Kommentar bin mit:IE Conditional Comments und Chrom/Firefox

<!--[if gt IE 7]> 
Here is some code. 
<![endif]--> 

Dieser großen Werk, den Code zu verhindern, Rendering in jedem IE niedriger als 8.
jedoch das hält auch die Code vom Rendern in Chrome und Firefox.

Irgendwelche Ideen, warum dies geschieht, und wie kann ich den Code in anderen Browsern als IE zu rendern?

Antwort

42

Bedingte Kommentare sind eine Microsoft IE-spezifische Regel und gehören nicht zu einem Standard. Wenn Sie die Struktur eines bedingten Kommentar überprüfen:

<!--[if gt IE 7]> 
Here is some code. 
<![endif]--> 

Wie der Name würde bedeuten, es ist alles nur ein großer Kommentar <!-- comment -->. IE prüft Kommentare auf Bedingungen wie diese, die ebenfalls nicht den HTML-Standards entsprechen.

Code zu erstellen, die nicht in IE nicht machen, aber in anderen Browsern nicht machen, verwenden Sie die folgende Bedingung:

<!--[if !IE]> --> 
This will be rendered by anything but IE. 
<!-- <![endif]--> 

sehen, wie die Bedingungen in geschlossenen Kommentare eingeschlossen sind? Deshalb wird das in normalen Browsern gerendert, während der IE nach dem Conditional sucht und beschließt, alles bis zum endif wegzulassen.

EDIT

Wenn Sie eine weitere Bedingung hinzufügen möchten, und halten Sie den Code auf Nicht-IE-Browser-Rendering, können Sie die folgende Abhilfe verwenden:

<!--[if gt IE 7]> <!-- --> 
Here is some code for anything but IE 7 and below. 
<!-- <![endif]--> 

Hinweis ich den Kommentar öffnen verwenden musste erneut, um zu verhindern, dass der IE --> vor dem Code rendert. Andere Browser werden es weiterhin als Teil des Kommentars betrachten.

+0

Ich möchte, dass der Code für IE 8 und IE 9 nur keine Version von IE davor angezeigt wird. Ich möchte auch, dass der Code in Chrome und Firefox angezeigt wird. – Baxter

+1

Solange Sie die Kommentare schließen, denke ich, es sollte für jede Bedingung tun. – zebasz

+1

Ich habe es getestet, funktioniert nicht ganz. Ich habe jedoch einen Workaround gefunden, also werde ich ihn bearbeiten und hinzufügen. – zebasz