There are many cross-browser issues and transparency is one of the weird issues among them. All the browsers treat transparency in a different way to overcome this issue we need to define three different properties. The below properties are specific to a browser.
Here is what each of those CSS properties is for:
- opacity: 0.5; This is the “most important” one because it is the current standard in CSS. This will work in most versions of Firefox, Safari, and Opera. This would be all you need if all browsers supported current standards. Which, of course, they don’t.
- filter:alpha(opacity=50); This one you need for IE.
- -moz-opacity:0.5; You need this one to support way old school versions of the Mozilla browsers like Netscape Navigator.
- -khtml-opacity: 0.5; This is for way old versions of Safari (1.x) when the rendering engine it was using was still referred to as KTHML, as opposed to the current WebKit.
- filter:progid:DXImageTransform.Microsoft.Alpha; This is for IE 5 or later.
- -ms-filter: “progid:DXImageTransform.Microsoft.Alpha”; this one you need for IE8
CSS fix for PNG transparency in IE6 and Mozilla
Semi-transparent backgrounds are nice. They would be more popular, but Internet Explorer doesn’t support .png transparency. There are a few clunky workarounds. Here’s another that’s a little less clunky.
for this technique you have to need 2 images.
trans-bg.png (image should be transparent).
border:solid 3px #00ff00;
/* Mozilla ignores crazy MS image filters, so it will skip the following */
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='/ trans-bg.png');
/* IE ignores styles with [attributes], so it will skip the following. */
<div style="float:left;background-image:url(/background.jpg);border:solid 3px #000;padding:10px;">
<a target=”_blank” href="http://www.trendyshowcase.com"> Latest Websites Gallery</a>