IE9 is a great browser; the problem is using old filter styles.
They were never good, and they were really only left in IE9 for reasons of outdated support. There are many quirks with them, including one that is pretty well known.
Your problem is that IE9 does not support standard CSS gradients, so the question is what to do instead of filter if you want to use them?
There are different answers, but the best is CSS3Pie .
This is a small javascript library that allows you to use standard CSS gradients in IE9 (and all other versions of IE from IE6 onwards). It also adds border-radius and box-shadow for versions of IE that don't support them anyway.
This is unobtrusive and does not cause unnecessary overhead in other browsers.
CSS3Pie uses the vector graphics vector IE, VML to render its gradients, so it is not affected by the filter error.
If you really wanted to avoid using Javascript, you could create a VML or SVG element for yourself with a gradient. This can be done in CSS using a URI-encoded image (example here ). But itβs much easier to let CSS3Pie do it for you.
The only solutions available are either loading the old-school background image, or simply providing a solid background color as a fallback option.
In any case, you should probably provide a backup plain color, but for this problem my CSS3pie money is the best solution.
Hope this helps.
Spudley
source share