Simulation von :before mit content: in IE6

Der IE6 kann ja nunmal nicht mit :before klarkommen, wenn man darüber per content: über das CSS Inhalt in die Seiten bringen will. Ziemlich nervig, wenn man das benutzt. Das IE7-Projekt von dem ich im vorigen Artikel schreibe funktioniert bei mir aber auch nicht verlässlich - z.B. unter einem Citrix-Server will er das nicht ausführen, warscheinlich fehlen ihm irgendwelche Sicherheitseinstellungen dort. Strange. Egal, ich hab mir das Problem selber mal angeguckt und eine recht kompakte Lösung gefunden, jedenfalls für meine spezielle Spielart des Problems: ich will nämlich nur Icons vor einen Link stellen.

Dazu haben Links eine von drei Klassen oder keine Klasse: class="zu" definiert ein zugeklapptes Navigationselement, class="auf" ein aufgeklapptes, class="ohne" einen Link der nicht speziell angehübscht werden soll und alle anderen Links kriegen ein Standard-Icon.

Dazu hänge ich einfach unten in die Datei kurz vor dem /body folgenden Code:

var links = document.getElementsByTagName("a");
for (var i=0; i

Den ganzen Kram packe ich dann am besten noch in einen bedingten Kommentar für den IE, so das er nur von diesem überhaupt ausgeführt wird. That's it. Simpel und wirksam. Deaktiviertes JavaScript ist in meinem Fall nicht kritisch, da ohne JavaScript auf dem System (ist eine Business-Lösung mit hoher Interaktivität) demnächst eh nix mehr laufen wird- Ajax braucht nunmal JavaScript als eine Komponente ...

tags: HTML, JavaScript, Programmierung

Jens Grochtdreis April 11, 2005, 5:08 p.m.

Interessante Idee. Funktioniert das auch mit den 5er-IEs?

hugo April 11, 2005, 5:37 p.m.

Kann ich derzeit mangels 5er IE nicht verifizieren - ich hab zwar einen 5.2 Mac IE, aber der ist so viel anders als andere 5er IEs, das ich da nichts draus entnehmen kann. Müsste mal jemand probieren der einen 5er IE noch hat (bevor er den auf die halbwegs gepatchte 6er Version upgraded um endlich seine Sicherheitslöcher gestopft zu haben ;-) )

Achso, im Mac IE 5.2 funktioniert das ganze nicht - die Zielseite hat eine Navigation in Listenelementen und diese fliegen auseinander (nehmen plötzlich die volle Breite ein). Aber die bedingten Kommentare bei IE funktionieren beim Mac IE 5.2 auch nicht, von daher sieht der das JavaScript garnicht. Allerdings natürlich auch nicht die Icons.