Ich bin im Projekt auf eine Situation gestoßen, die mich lange Zeit beunruhigt hat. Warum sind einige Symbole desselben PNG8-Bildes im IE6 verschwunden? Damals vermutete ich, dass es sich um ein Cache- oder Host-Problem handelte. Das wiederholte Öffnen und Schließen des Browsers schlug immer noch fehl, und nach wiederholten Tests fand ich schließlich die Ursache.
Das Problem liegt im PNG8-Bild selbst. Das folgende Beispiel simuliert die Situation beim Surfen mit IE6. Sie werden feststellen, dass die vier Symbole in der zweiten Zeile unsichtbar sind. Demo
Es stellt sich heraus, dass die vier Symbole unten auf 90 % „Alpha-Transparenz“ angepasst wurden (FW kann „Alpha-Transparenz“ beim Exportieren von PNG8 beibehalten, PS jedoch nicht).
Die von Alpha durchscheinenden Symbole können in allgemeiner Browsersoftware oder in den Browsern FF, Chrome, Safari, Opera, IE7 und höher, außer IE6, normal durchsucht werden.
Tatsächlich gibt es eine Möglichkeit, IE6 dazu zu bringen, die „Alpha-Transparenz“ von PNG8 zu unterstützen. Die Methode ist dieselbe wie beim PNG32-IE-Filter. Demo
Aus den obigen Ergebnissen haben wir erfahren, dass es die „Alpha-Transparenz“ von png8 war, die das Problem verursachte. Und dieses Mal unterscheidet sich PNG8 von PNG32 dadurch, dass Browser, die PNG-Transparenz nicht unterstützen (wie ie6), automatisch auf vollständig transparent (wie GIF) herabgestuft werden, anstatt einen grauen Hintergrund wie PNG32 zu haben.