Transparente PNG im IE. Verbesserungen?

  • Hallo, ich habe ein kleines Problem mit (halb)transparenten PNG-Dateien in IE6-IE8. Ich habe mir folgende Lösung gebastelt:
    JavaScript-Datei:
    /res/fixpng.js

    CSS-Datei:
    /res/fixpng.css

    Code
    @CHARSET "UTF-8";
    
    
    
    
    .pngImage{ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="/res/trans.gif"); }

    Einbinden im HTML-Header:

    Code
    <!-- PNGfix -->
    <!--[if IE 6 | IE 7 | IE 8]>
      <script defer="defer" type="text/javascript" src="/res/fixpng.js" charset="UTF-8"></script>
      <![if IE 7 | IE 8]>
        <link rel="stylesheet" type="text/css" href="/res/fixpng.css">
      <![endif]>
    <![endif]-->

    Verwendung auf der Seite:


    In der Lösung sehe ich einige Vorteile:
    - Keine Inline-Style-Angaben im <img> oder <div> nötig.
    - AlphaImageLoader liest Bildsource direct aus <img src>; der Pfad zum Bild wird nur an einer einzigen Stelle direkt am Bild selbst angegeben.
    - <img> muß lediglich der class "pngImage" zugeordnet werden.
    - Der reine CSS-Fix funktioniert auch dann, wenn Java-Script deaktiviert ist.


    Allerdings Unterscheidet es sich damit immer noch ein wenig von der Darstellung im Firefox und ich würde gerne wissen, ob es hier noch andere Ansätze gibt.
    - Es gibt ja auch den Style "-ms-filter", jedoch habe ich da keine Änderung gegenüber "-filter" gesehen.
    - Ganz ohne Fix haben die PNGs in IE7-8 dicke schwarze Ränder
    - Ohne JavaScript-Fix mit CSS-Fix sind alle PNGs in IE7-8 ein wenig dunkler als im Firefox.
    - Ohne Fixes sehen die PNGs im IE6 richtig aus, aber es gibt Probleme mit Hintergrundbildern.
    - Mit JavaScript- und CSS-Fix sehen voll sichtbare Bilder (opacity 100%) genauso aus wie im Firefox, bei reduzierter opacity (z.B. 70%) sind im IE6-8 die Bilder/Schatten ein wenig dunkler als im Firefox. Liegt dies am anderen Renderer (AlphaImageLoader) oder kann man da noch was drehen?


    Im IE9 sieht übrigens alles genauso aus wie im Firefox