Thread Browser-Weiche für CSS (5 answers)
Opened by kristian at 2008-01-10 19:04

Struppi
 2008-01-11 12:01
#104615 #104615
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Eigentlich ist die Sache ganz einfach. Das ist schlicht und ergreifen ein HTML Kommentar in dem Anweisungen stehen, die der IE befolgt.

Schritt für Schritt:

1. ein HTML Kommentar:
<!-- --
<!-- -->

Jeder Browser ignoriert den kompletten Inhalt von Kommentaren.

2. Die IE Konditionen

[if] [endif]

Der IE erkennt die eckigen Klammern als Befehl (für allen anderen Browser ist es einfach nur ein Kommentar) und alles was innerhalb steht wird ganz normal geparst.

3. Deshalb muss zuerst der Kommenar Tag geschlossen werden (für alle anderen Browser ist es ein Zeichen im Kommentar)

4. Jetzt folgt der HTML Code, den allein der IE sieht (und dessen Bedingungen erfüllt sind)

5. und das [endif] muss halt wieder einem HTML Kommentar stehen, für den IE, nur man darf den an dieser Stelle nicht so <!-- schreiben, da ansonsten der Kommentar für die anderen Browser zu Ende wäre (das -- beendet einen Kommentar), deshalb akzeptiert der IE <! als Beginn eines HTML Kommentar um sein [endif] parsen zu können.

6. Dann sind wieder die anderen Browser dran und mit --> sind alle Glücklich.

Innerhalb der CCs, Tags für andere Browser auszugeben halte ich für fragwürdig. Ich würd CCs auch nur zur Not verwenden, weiß aber dass z.b. YAML davon intensiv Gebrauch macht. wobei mir solche Verreckungen um irgendwelche alten Browser oder minimale Bugs zu umgehen, Kopfschmerzen bereiten und ich gerne darauf verzichte. Aber Leute denen ein Pixelgenaues Design, in allen Browsern, wichtig ist, kommen um sowas halt nicht umhin.

View full thread Browser-Weiche für CSS