img-tag - png transparent im IE6

mediaroad

Mitglied
Hallo zusammen,

ich habe eine Frage zu dem allleidigen Thema "png im IE6 transparent".

Ich habe schon Stunden gegooglet und auch viel gefunden, nur leider passt alles nicht wirklich zu meinem Problem und demnach such ich jetzt hier nach einer Lösung und hoffe ihr könnt mir weiter helfen.

Also ich habe einen ganz normalen DIV, wo ich im HTML-Code als img src="*.png" habe. Dieses Bild soll anklickbar sein.

Jetzt habe ich das mit filter: progid: DXImageTransform.Microsoft.AlphaImageLoader(src='*.png', sizingMethod='scale'); in der CSS versucht. Jedoch muss man da einen Pfad zu dem Bild angeben. Ich will das auf alle Bilder in dem DIV beziehen.

Dann habe ich eine *.htc Datei angelegt. Das sieht auch am besten aus, jedoch macht der hier einen Rahmen mit einem Kreuz in der linken oberen Ecke. Ich weiß nicht wie ich diesen Rahmen weg bekomme. Darüber steht zwar auch was im Netz, aber keine Lösung.

Ich würde mich freuen, wenn mir einer von euch helfen könnte. Und bitte habt Nachsicht, dass ich dieses Thema schon wieder poste :)

Ich danke schonmal im voraus.
 
Das kann ich dir nicht beantowrten. Ich hab diese *.htc -Datei irgendwo im Netz gefunden aber nicht unter dem Link den du meinst. Ich habe schon soviel gefunden und versucht. Hab den Durchblick ein wenig verloren :)

also hier mein Code von der *.htc Datei

HTML:
<public:component>
<public:attach event="onpropertychange" onevent="propertyChanged()" />
<script>

var supported = /MSIE (5\.5)|[6789]/.test(navigator.userAgent) && navigator.platform == "Win32";
var realSrc;
var blankSrc = "blank.gif";

if (supported) fixImage();

function propertyChanged() {
   if (!supported) return;

   var pName = event.propertyName;
   if (pName != "src") return;
   // if not set to blank
   if ( ! new RegExp(blankSrc).test(src))
      fixImage();
};

function fixImage() {
   // get src
   var src = element.src;

   // check for real change
   if (src == realSrc) {
      element.src = blankSrc;
      return;
   }

   if ( ! new RegExp(blankSrc).test(src)) {
      // backup old src
      realSrc = src;
   }

   // test for png
   if ( /\.png$/.test( realSrc.toLowerCase() ) ) {
      // set blank image
      element.src = blankSrc;
      // set filter
      element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" +
                                     src + "',sizingMethod='scale')";
   }
   else {
      // remove filter
      element.runtimeStyle.filter = "";
   }
}

</script>
</public:component>

Der Pfad müsste eigentlich stimmen. Hab auch versucht es hin und her zu schieben. Aber irgendwie weiß ich nicht mehr wo mein gedanklicher fehler liegt.
Vielleicht liegt es auch daran, dass ich das in meiner CSS eingebaut hab und nicht direkt auf der Seite mit dem Code

Hier meine CSS Einbindung

Code:
#subnavi img{
	behavior:url(../iepngfix.htc)
}

Ich habe die htc-Datei und das blank.gif auf der gleichen Dokument Ebene. Die CSS liegt in einem andren Ordner und das HTML Dakument nochmal in einem anderen Ordner...sehr verwirrend;)

Ich hoffe du verstehst mein Problem und kannst es anhand meiner Beschreibung nachvollziehen.
 
Wenn sich das HTML-Doc und die HTC-Datei in unterschiedlichen Verzeichnisebenen befinden, mußt du in der HTC-Datei den Pfad zur Grafik "blank.gif" anpassen, denn dieser muß immer relativ zum HTML-Dokument sein - also:
Code:
var blankSrc = "../blank.gif";
oder:
Code:
var blankSrc = "../file/blank.gif";

http://www.twinhelix.com/css/iepngfix/demo hat gesagt.:
My PNGs are transparent but have a funny border or red "X" icon.
Check that the blankImg variable is set correctly in the .HTC file, again this should be relative to the HTML document containing the PNGs.

mfg Maik
 
Ich danke dir..es funktioniert. Ich musste einfach nur den Pfad anpassen. Ich dachte der Pfad muss in Verbindung zur *.htc-Datei stehen. Naja falsch gedacht, und dann sitz man so lange an einer Lösung, dabei ist es nur so eine Kleinigkeit. :mad:
Hauptsache es funktioniert!

Schönen Tag dir noch
 

Neue Beiträge

Zurück