Alpha Image Loader für PNGs im IE6

Obwohl Microsoft schon für den Internet Explorer 4 die Unterstützung für PNG implementierte, ließen sie jedoch die Unterstützung für transparente PNGs aus. Im Internet Explorer 5 wurde dies nicht nachgeholt, und im Internet Explorer 6 auch nicht. Erst jetzt mit Version 7 kam endlich die Einsicht. Leider ist der IE7 nur ein optionales Windows Update, weswegen viele Leute den neuartigen und, wie ich finde, gelungenen Browser, noch nicht und auch in Zukunft nicht nutzen werden.

Auf GIF-Dateien zurückgreifen ist nicht gut, da GIFs keine Halbtransparenzen und auch kein Antialiasing unterstützen. Wie also lassen sich PNGs im Internet Explorer darstellen?

Es gibt eine Lösung, wenngleich diese auch alles andere als valide ist: Der Alpha Image Loader.

Mit Version 5.5 des Internet Explorers wurde diese Funktion eingeführt, die es ermöglicht, transparente PNGs als Hintergrund für einen DIV-Layer zu nutzen. Was man tut ist, DirectX einen Filter erstellen lassen, der ein normales Bild sichtbar macht und dann mit Hilfe des Alpha Image Loaders dieses Bild mit einem transparenten PNG ersetzt. Sehr smoothe Lösung, die Microsoft sich da ausgedacht hat. Aber gut, es funktioniert.

Hier der Befehl:

#divlayer {

filter:progid:
DXImageTransform.Microsoft.AlphaImageLoader(
src='websheet.png', sizingMethod='scale');

}

Natürlich funktioniert das nur im Internet Explorer. Um den Hintergrund für moderne Browser anzugeben, müsst ihr zusätzlich einen Hack verwenden. Schreibt direkt hinter die oben gezeigte Definition folgendes:

html > body #divlayer {

background: url('websheet.png');

}

Der Internet Explorer wird den Zusatz html -> body nicht verstehen und den Codeblock ignorieren, während ein moderner Browser den Codeblock versteht und den Hintergrund auf herkömmliche Art und Weise anzeigen kann.