If a website uses a great deal of CSS3, it makes sense to create compatibility with IE via a CSS3 JavaScript shim. But if your site only uses a few CSS3 values (as the current incarnation of this blog does, in the feature bar) loading 20K of JavaScript to make IE work is overkill, and a significant waste of resources.
Microsoft has long supported its own way of creating many visual effects that are now featured in CSS3, ever since IE 5.5. The problem is that the filters are rather long, complex, proprietary (supported only in IE) and somewhat difficult to understand; I find it easiest to use various tools to convert CSS3 into MS-specific filters, and then call those generated values with conditional comments.
Gradients
CSS3 gradients are not supported in any current version of IE, including IE9 (although they will be supported in IE10). However, simple (one color start, one color end, no stops) gradients can be made by using DXImageTransform.Microsoft.Gradient. I use ColorZilla’s Ultimate CSS Gradient generator to create the code from its PhotoShop-like slider interface.
rgba / hsla
IE9 supports rgba, but earlier versions of the browser do not. However, you can use a variant of DXImageTransform.Microsoft.Gradient to create the same result (colours with partial transparency) for IE. I use a small web-based application created by Michael Bester for the conversion from rgba to Microsoft proprietary code; another popular solutions is Lea Verou’s PHP function to do the same thing with just a single extra CSS declaration.
Opacity
Opacity effects are relatively easy to replicate in IE. You don’t even need to use a generator; just cut and paste the code below and change the value as needed (the Microsoft version of the filter measures opacity between 0 and 100, rather than 0 and 1):
filter: alpha(opacity=50);
IE9 follows the standard CSS3 value.
Pro CSS3 Animation, Apress, 2013