Als je met transparante plaatjes in PHP wilt werken kom je al snel uit bij het PNG formaat. Tot mijn grote verbazing ondersteunt IE niet alle features van PNG. Na een tijd zoeken op het internet vond ik hier toch een oplossing om png's ook in ie goed af te beelden.
Er moet een stylesheet aan te pas komen.
voor IE browsers:
Voor niet IE browsers:
Waarom bij de tweede een stylesheet gebruikt is heb ik nog niet uitgezocht. Hij werkt namelijk ook zonder.
Om een en ander te vergemakkelijken heb ik onderstaande php functie ingebakken in de pagina's waar ik veelvuldig png gebruik.
Op de plek van het plaatje staat er vervolgens:
Zoals je kunt zien is dit natuurlijk geen ideale oplossing. MS schijnt al vanaf IE ersie 4 te beloven dat zze volledige ondersteuing voor PNG zullen inbouwen tot op heden is daar nog niets van te merken. Daarom is er door ene Aaron Adams een petitie gestart. Ik weet niet of MS er ooit naar luistert, maar kwaad kan het niet. Je kunt hier tekenen als je net als ik van mening bent dat er iets moet veranderen.
Er moet een stylesheet aan te pas komen.
voor IE browsers:
code:
1
2
| <img src="spacer.gif" style="filter:progid:DXImageTransform. Microsoft.AlphaImageLoader(src='plaatje.png', sizingMethod='scale');"> |
Voor niet IE browsers:
code:
1
| [img]"plaatje.png"[/img] |
Waarom bij de tweede een stylesheet gebruikt is heb ik nog niet uitgezocht. Hij werkt namelijk ook zonder.
Om een en ander te vergemakkelijken heb ik onderstaande php functie ingebakken in de pagina's waar ik veelvuldig png gebruik.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| $spacer = "http://volledige pad/spacer.gif"; function pngimg($img){ global $_ENV, $spacer; $size = getimagesize($img); if (eregi('MSIE', $_ENV['HTTP_USER_AGENT']) || eregi('Internet Explorer', $_ENV['HTTP_USER_AGENT'])){ $imgcode = "<img src=\"".$spacer."\" ".$size[3]; $imgcode.= " style=\"filter:progid:DXImageTransform."; $imgcode.= "Microsoft.AlphaImageLoader(src='".$img; $imgcode.= "', sizingMethod='scale');\">"; } else { $imgcode = "<img src=\"".$img."\" ".$size[3]; $imgcode.= " style=\"filter:alpha(opacity=0);\">"; } return $imgcode; } |
Op de plek van het plaatje staat er vervolgens:
PHP:
1
| <?=pngimg("plaatje.png")?> |
Zoals je kunt zien is dit natuurlijk geen ideale oplossing. MS schijnt al vanaf IE ersie 4 te beloven dat zze volledige ondersteuing voor PNG zullen inbouwen tot op heden is daar nog niets van te merken. Daarom is er door ene Aaron Adams een petitie gestart. Ik weet niet of MS er ooit naar luistert, maar kwaad kan het niet. Je kunt hier tekenen als je net als ik van mening bent dat er iets moet veranderen.
edit:
Heb eea over meer regels verspreid om GOT layout te behouden.
Heb eea over meer regels verspreid om GOT layout te behouden.
Le peintre de l'espace se jette dans le vide! (Y.Klein 1960)