webForumDet fria alternativet

PNG i IE

Design & grafik

24 svar · 1 266 visningar · startad av learn

Medlem sedan jan. 20051 130 inlägg
Frågan#1

Jag använder denna metod för att mina PNG-bilder ska bli bra i IE(<-hata). Men så fort jag byter ut den bild som följer med i exemplet mot en av mina egna PNG-bilder så funkar det inte, bilden visas då helt enkelt inte längre... Ngn som kan förstå sig på varför..?? Tack!

Medlem sedan nov. 20014 054 inlägg
#2

Ingen anning, syns det bara ett [x] i IE, eller? DÅ kanske de blir fel sökväg, vad vet jag.. hehe. :)

Medlem sedan jan. 20051 130 inlägg
#3

Nepp, sökvägen är korrekt.. Verkar som att det skulle va ngt fel på själva bilden, kan det vara så..?

Bilden i fråga funkar dock att visa i "vanliga" fall...

Medlem sedan jan. 20051 130 inlägg
#4

Vi tar det från början,

För det första så måste jag bara uttala mitt hat gentemot Internet Explorer, det är ju inte direkt första ggn de fäller krokben för mig. x(

Nu är det så att jag väldigt gärna vill använda en PNG-bild med transparens! Finns det något säkert sätt att få den att fungera i IE? Eller bör man undvika denna typ av bild? Kan någon förklara för mig både hurvida det är "säkert" eller inte, samt hur jag gör rent programmeringsmässigt. Kanske något skript-tips?

Tack, så oerhört mkt, i förväg! :)

Medlem sedan maj 2004325 inlägg
#5

Du har inga bilder eller sånt som vi kan få undersöka?

Medlem sedan jan. 20051 130 inlägg
#6

Det var inte bilden det var fel på... Om bilderna ligger i exakt samma mapp som filen så funkar det... Men nu vill jag ju ha bildera i en annan mapp! Som sagt:

learn skrev:

Nu är det så att jag väldigt gärna vill använda en PNG-bild med transparens! Finns det något säkert sätt att få den att fungera i IE? Eller bör man undvika denna typ av bild? Kan någon förklara för mig både hurvida det är "säkert" eller inte, samt hur jag gör rent programmeringsmässigt. Kanske något skript-tips?

Medlem sedan okt. 200589 inlägg
#7

Hoppas att du är medveten om att du måste spara bilden i PNG-24-format om du ska använda genomskinlighet/transparency. ;)

Medlem sedan jan. 20051 130 inlägg
#8

pimpN skrev:

Hoppas att du är medveten om att du måste spara bilden i PNG-24-format om du ska använda genomskinlighet/transparency. ;)

Jäpp :)

Snälla, ngn ge mig ett skript som funkar!

Medlem sedan okt. 20041 556 inlägg
#9

Skapa en .js-fil enligt röd kod. Lägg in blå kod på sidor där du vill använda transparenta png-filer.

[blue]<!--[if gte IE 5.5000]>
	<![if lt IE 7]>
		<script type="text/javascript" src="pngfix.js"></script>
	<![endif]>
<![endif]-->[/blue]

[red][b]//pngfix.js[/B]
function correctPNG() 
   {
   for(var i=0; i<document.images.length; i++)
      {
	  var img = document.images[i]
	  var imgName = img.src.toUpperCase()
	  if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
	     {
		 var imgID = (img.id) ? "id='" + img.id + "' " : ""
		 var imgClass = (img.className) ? "class='" + img.className + "' " : ""
		 var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
		 var imgStyle = "display:inline-block;" + img.style.cssText 
		 if (img.align == "left") imgStyle = "float:left;" + imgStyle
		 if (img.align == "right") imgStyle = "float:right;" + imgStyle
		 if (img.parentElement.href) imgStyle = "cursor:pointer;" + imgStyle		
		 var strNewHTML = "<span " + imgID + imgClass + imgTitle
		 + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
	     + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
		 + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
		 img.outerHTML = strNewHTML;
		 i = i-1;
	     }
      }
   };
window.attachEvent("onload", correctPNG);

[/RED]
Medlem sedan jan. 20051 130 inlägg
#10

Det funkade ju..! Tack!

Men hur pass säkert är detta då, ärligt talat? Någon som har erfarenhet av detta, kan jag lite på att koden alltid funkar??

Koden kommer alltid köras (i IE) då bilden alltid ska synas, blir sidan betydligt mer segladdad??

Tack igen!

Medlem sedan okt. 200589 inlägg
#11

learn skrev:

Det funkade ju..! Tack!

Men hur pass säkert är detta då, ärligt talat? Någon som har erfarenhet av detta, kan jag lite på att koden alltid funkar??

Koden kommer alltid köras (i IE) då bilden alltid ska synas, blir sidan betydligt mer segladdad??

Tack igen!

Eftersom det är ett javascript kommer det inte att fungera då dessa är inaktiverade. Du kan köra med detta:

1. Skapa en Internet Explorer-specifik CSS-fil vid namn url(style.css) all

@import url(style.css);

.foo {
background-image: none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bar.png', sizingMethod='scale');
}

2. Lägg till följande i din vanliga CSS-fil som har namnet style.css

.foo { background: url(bar.png) }

// Oliver Olofsson

Medlem sedan okt. 200589 inlägg
#12

learn skrev:

Det funkade ju..! Tack!

Men hur pass säkert är detta då, ärligt talat? Någon som har erfarenhet av detta, kan jag lite på att koden alltid funkar??

Koden kommer alltid köras (i IE) då bilden alltid ska synas, blir sidan betydligt mer segladdad??

Tack igen!

Eftersom det är ett javascript kommer det inte att fungera då dessa är inaktiverade. Du kan köra med detta:

1. Skapa en Internet Explorer-specifik CSS-fil vid namn url(style.css) all

[red]@import url(style.css);

.foo {
background-image: none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bar.png', sizingMethod='scale');
}[/red]

2. Lägg till följande i din vanliga CSS-fil som har namnet style.css

[red].foo { background: url(bar.png) }[/red]

Edit: OBS! Fråga mig inte varför src='bar.png' fuckar sig i den första kodsnutten ;/

// Oliver Olofsson

Medlem sedan aug. 20039 340 inlägg
#13

Detta är ananrs i princip den enklaste och mest transparenta ( ;) ) lösning som jag känner till. Låter dig helt enkelt länka till png-filerna som vanligt, och byta bild med hjälpa av src-attributet, och det funkar ändå.

Medlem sedan jan. 20051 130 inlägg
#14

Ok, tack nitro! Ska kika på det lite senare, återkommer ;)

Medlem sedan okt. 200589 inlägg
#15

learn skrev:

Ok, tack nitro! Ska kika på det lite senare, återkommer ;)

möhö.. jag har samma metod, men med en enklare förklaring ;)
:OO

Medlem sedan aug. 20039 340 inlägg
#16

pimpN skrev:

möhö.. jag har samma metod, men med en enklare förklaring ;)
:OO

Förklara gärna vad du menar med "samma metod" och "enklare förklaring"!

Medlem sedan okt. 200589 inlägg
#17

Förklara gärna vad du menar med "samma metod" och "enklare förklaring"!

"filter:progid:DXImageTransform.Microsoft.AlphaIm.. osv" samt "några korta, överskådliga rader".

Medlem sedan aug. 20039 340 inlägg
#18

Jag tycker annars att webfx's metod är enklare. Scrolla ner på sidan, så ser du att det finns färdig kod som man kan klistra in på sin sida, som gör att man kan använda png-bilder helt som vanligt, typ <img src="bild.png" />
Din metod sabbar ju för övrigt för alla andra webbläsare, som redan har stöd inbyggt...

Medlem sedan okt. 200589 inlägg
#19

nitro2k01 skrev:

Din metod sabbar ju för övrigt för alla andra webbläsare, som redan har stöd inbyggt...

Absolut inte. Kolla lite närmare på koden.

Medlem sedan aug. 20039 340 inlägg
#20

pimpN skrev:

Absolut inte. Kolla lite närmare på koden.

Ok, du har rätt, men däremot antar jag att man måste ha en div istället för en img, ange storleken manuellt på varje bild samt lägga till varje bild manuellt i CSS. Webfx's kod liksom bara fungerar rakt av.

277 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)