AlphaImageLoader und relative Pfadangaben

Ihr kennt sicher alle die Möglichkeit über das CSS-Attribut AlphaImageLoader im IE transparente PNGs anzeigen zu lassen. Prima. Zu diesem Thema ist mir was interessantes aufgefallen, nachdem ich zuvor fast eine halbe Stunde einen Fehler gesucht habe, der gar nicht existiert hat. Bei einem aktuellen Projekt von mir existieren verschiedene Verzeichnistiefen in der URL, so in der Art: ”www.seite.de/”, “www.seite.de/portfolio/”, “www.seite.de/portfolio/kategorie/” und so weiter. Auf jeder Seite ist irgendwo das Firmenlogo positioniert, dass über eine mit Conditional Comments eingebunde separate Stylesheet-Datei definiert wird. Das sah zunächst ungefähr so aus:

#logo {
background: none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’../img/logo.png’, sizingMethod=’crop’);
}

Auf der Startseite hat das auch wunderbar funktioniert, nur auf den Folgeseiten wurde das Bild nicht angezeigt. Nach langem Suchen dachte ich, es könnte vielleicht an der Verzeichnistiefe der Seite liegen. Und genau so war es.

Komischerweise nimmt der Befehl AlphaImageLoader die HTML-Seite als Ausgangsbasis für die Pfade und nicht wie gewöhnlich die Stylesheet-Datei in der der Befehl steht. Wieder einmal unverständliche Logik aus dem Hause Microsoft.

Veröffentlicht am 01.01.2006 um 18:56 Uhr
· ·

Kommentare

Flo

01.01.2006 um 18:56 Uhr

Na, mit dieser Logik müssen wir wohl lernen zu leben. danke für die beobachtung.

Sebastian

01.01.2006 um 18:56 Uhr

Soetwas ist mir an anderen Stellen auch schon öfters passiert, deshalb nehme ich auch meistens absolute Pfade. Damit tritt das Problem erst gar nicht auf und es macht eigentlich auch keine Umstände.

Sebastian

Maurice

01.01.2006 um 18:56 Uhr

Sicher ist das eine einfach Lösung des Problems. Für mich ist es aber trotzdem unverständlich, warum Microsoft bewusst eine solche Inkonsistenz schafft. Vom proprietären Befehl an sich mal ganz abgesehen.

Außerdem sind absolute Pfade innerhalb von CSS-Dateien nicht unbedingt besonders elegant. Wenn man die fertige Seite auf einen Live-Server hochlädt muss man mühsam jeden einzelnen Pfad innerhalb der CSS-Datei anpassen. Das ist einfach unnötige Mehrarbeit.