Hallo,
Schlechtere Alternative:
Könnte man notfalls statt
<img src="null.gif" width="400" height="300" border="0" alt="MSIE-PNG"
style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='graphik.png', sizingMethod='scale')">auch
<img src="graphik.png" width="400" height="300" border="0" alt="MSIE-PNG"
style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='graphik.png', sizingMethod='scale')">schreiben? Dann wären nämlich alle Probleme gelöst (von der umständlichen Schreibweise mal abgesehen).
Also ohne es ausprobieren zu wollen, glaube ich nicht das das funktioniert wenn Du dem IE ein png statt des (100% transparenten) gifs anbietest. Dieses wird ja als _nichtsichtbarer_ Platzhalter in der Größe der Originaldatei eingesetzt. Und das ja nur weil der IE auf WindowsSystemen die Transparenz von 24bit PNGs nicht darstellen kann.
PNGs ohne Transparenz kannst Du ganz normal für alle Browser gleich notieren, ohne diesen IE-filter-Kram ;-).
Wenn Du transparente PNGs einsetzen möchtest die auch der IE korrekt anzeigt solltest (oder mußt?) Du vorher den Clientbrowser ermitteln und nur wenn es ein IE auf einem WindowsSystem ist diesen Filterkram in das ImageTag einbauen.
Es gibt da eine sehr gute Beispielseite (in Englisch) die auch gleich noch eine fertige (PHP-)Funktion für dieses Problem anbietet.
Wenn Du also viele transparente PNGs einsetzen willst und über die Möglichkeit PHP einzusetzen verfügst, ist das eine sehr bequeme und komfortable Vorgehensweise *g*.
Viele Grüße,
Horst
Ach ja, hätt' ich beinahe den Link vergessen:
http://koivi.com/ie-png-transparency/
(Man sollte die Seite natürlich am besten mit einem Windows-IE besuchen)