PNG is cool. It has better compression algorithm than GIF. It can support more than 256 colors. Best of all, it can support alpha transparency channels (32-bit). Unfortunately, IE (up to version 6.0) doesn't like it.
There has been many attempts to fix this matter, such as using Javascript, Internet Explorer CSS extensions, etc. None is good enough, in my opinion. Fortunately, I've found one solution, not to force IE to display the alpha channels, but to make the PNG degrades well in IE instead.
As some of you may know, IE tends to render the alpha channels of any 32-bit PNG images, as in greyish color. Here's an example:
If you are using IE (up to version 6.0), you'll notice the greyish color of the alpha channels.
But wait till you see this second image:
This second image is a 32-bit PNG with alpha channels. Do you notice any greyish colors? Well, the technique is simple. Note that there are absolutely no Javascripts and CSS hacks used. The trick comes from within the file itself.
I use a software called TweakPNG, by Jason Summers. Here are the steps:
You may edit the "bkGD" chunk to any color, depending on your web site, as IE will display this color as the background color with no transparency bit, instead of the greyish alpha channels. Other PNG-supported browsers will display the image normally, with alpha channels, by ignoring the "bkGD" chunk.
A much better method has been found by Kevin A. Freitas, which is called the PNG Magic. This method forces IE to render the transparency bits of the image, but not alpha-transparently. No hacks at all, and can be applied with a simple software called PNGquant. Here's an example:
Okay, this example above looks a bit jaggy in IE, but with a bit of tweaking, it can look better:
Both examples will be displayed normally with alpha channels in other PNG-supported browsers.