Avatar billede mtrolle Nybegynder
20. juni 2003 - 18:35 Der er 14 kommentarer og
1 løsning

Transparent .png billede i IE

Hejsa!

Jeg bruger i et nyt design et .png billede, hvor en stor del af det er gennemsigtigt.
Mit problem er, at det rigtigt nok er gennemsigtigt i mange browsere, men i IE virker det bare ikke som ønsket!
Min partner siger man godt kan lave en png billede som også er gennemsigtigt i IE, evt. med noget CSS eller noget.

Nogle der ved hvordan jeg skal skrive koden eller hvad jeg skal gøre? Kan det være rigtigt jeg kun kan bruge .gif billeder til IE?


//mtrolle
Avatar billede boris Mester
20. juni 2003 - 18:36 #1
Er du nu helt sikker på, at det er rigtigt transparent?
Avatar billede gumphfy Nybegynder
20. juni 2003 - 18:38 #2
jeg skulle ikke mene at det er nødvendigt at skulle bruge .gif filer i IE, men jeg ved at det virker!
Avatar billede Slettet bruger
20. juni 2003 - 18:40 #3
IE har et kendt problem med PNG billeder. Den eneste løsning er at bruge GIF filer.

Du kan ændre opacity på et billede med CSS, men det kommer ikke til at virke på samme måde som et "rigtigt" billede.
Avatar billede mtrolle Nybegynder
20. juni 2003 - 18:43 #4
Microsoft kan bare ikke finde ud af at lave en ordenlig browser!
Nå, men så må jeg jo lave det om til gif-format!

el_barto smid et svar!
Avatar billede Slettet bruger
20. juni 2003 - 18:44 #5
Ellers tak :)

Og nej, MS har på det punkt jokket godt i spinaten.
Avatar billede kimiwan Nybegynder
20. juni 2003 - 18:48 #6
> Microsoft kan bare ikke finde ud af at lave en ordenlig browser!

nåja, det er da den næstbedste på markedet ;o)
Avatar billede mtrolle Nybegynder
20. juni 2003 - 20:05 #7
kimiwan skrev:
>nåja, det er da den næstbedste på markedet ;o)

Øhhh, siger hvem???
Avatar billede edutasia Nybegynder
20. juni 2003 - 20:23 #8
Du kan godt bruge transparente png-billeder i MSIE - de skal blot loades gennem det filter, der hedder AlphaImageLoader. Her er en rigtig nem måde at gøre det på:

1. Indsæt dit billede som sædvanligt. NB: Du SKAL sætte width og height, for at det her skal virke.

2. Tilføj følgende css-regel i dit stylesheet:

  img {behavior: url(pngalpha.htc)}

3. Kopier følgende, indsæt det i en tom tekst-fil og gem det som "pngalpha.htc". Hvis du vælger et andet navn og/eller at placere filen i en undermappe, så ret url'en under punkt 2.

---------- kopier herfra

<public:component lightWeight="true">
<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 && /\.png$/i.test(src)) {
        element.src = blankSrc;
        return;
    }

    if ( ! new RegExp(blankSrc).test(src)) {
        // backup old src
        realSrc = src;
    }
   
    // test for png
    if (/\.png$/i.test(realSrc)) {
        // 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>

---------- kopier hertil

4. Lav en gennemsigtig gif-fil på 1 x 1 px og gem den som "blank.gif". Hvis du vælger et andet navn og/eller at placere filen i en undermappe, så tilret variablen "blankSrc" i behavior-filen i punkt 3.

5. Nu sker der følgende, når din side loades: Behavior'en kigger på, om der er png-filer i dokumentet. Hvis der er, sætter den deres src til at være den gennemsigtige "blank.gif", loader png-filen gennem AlphaImageLoader og lægger den ovenpå, så den er det eneste, du ser.

Det lyder mere besværligt, end det er: Du skal trods alt blot gemme behaviour-filen, lave gif-filen, samt tilføje en ny css-regel én gang for alle - så spiller det hele helt automatisk...
Avatar billede kimiwan Nybegynder
20. juni 2003 - 21:09 #9
mtrolle: siger jeg
Avatar billede mtrolle Nybegynder
20. juni 2003 - 23:28 #10
ARGH! Jeg kunne kysse dig edutasia!!!
Point er 100% fortjent!
Avatar billede edutasia Nybegynder
21. juni 2003 - 10:49 #11
Tak for point... men kysset vil jeg nok helst have til gode :)
Avatar billede killer_r Nybegynder
21. januar 2006 - 18:41 #12
Det lyder helt fantastisk det der... Men jeg har lige siddet og leget med det... Og jeg kan altså ikke få det til at virke... Virker det ikke i dag eller er det bare mig der er en hat...?!
Avatar billede killer_r Nybegynder
21. januar 2006 - 18:50 #13
Det vil sige... Det der sker er at billedet "forsvinder"... Dvs. det ser ud som om at den loader det "blanke" billede, men PNG-billedet bliver ikke loadet ind ovenpå...
Avatar billede edutasia Nybegynder
23. januar 2006 - 10:40 #14
killer_r -> Har du husket at sætte width og height på billedet? Gerne med inline style, fx: <img style="height:50px; width:120px" src="filnavn.png" alt="xx"/>
Avatar billede killer_r Nybegynder
23. januar 2006 - 19:57 #15
Ja, det har jeg... Jeg har godt nok ikke brugt inline styles, men alm. height og width-attributter...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester