Unfortunatly i don't have a machine that I can test IE9 on yet (still in XP) and browsershots still doesn't do IE9 yet. Could someone tell me if IE9 supports css gradients? Here is a page which has gradients applied. Does it work?
http://www.webdesignerwall.com/demo/css3-dropdown-menu/css-gradient-dropdown.html
It does not.
See here: http://caniuse.com/#search=gradient
It will support SVG as a background though, which is currently used to make gradients for Opera.
IE9 currently lacks CSS3 gradient support. However, here is a nice workaround solution using PHP to return an SVG (vertical linear) gradient instead, which allows us to keep our design in our stylesheets.
<?
header('Content-type: image/svg+xml; charset=utf-8');
echo '<?xml version="1.0"?>
';
$from_stop = isset($_GET['from']) ? $_GET['from'] : '000000';
$to_stop = isset($_GET['to']) ? $_GET['to'] : '000000';
?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0" preserveAspectRatio="none" width="100%" height="100%">
<defs>
<linearGradient id="linear-gradient" x1="0%" y1="0%" x2="0%" y2="100%" spreadMethod="pad">
<stop offset="0%" stop-color="#<?=$from_stop?>" stop-opacity="1"/>
<stop offset="100%" stop-color="#<?=$to_stop?>" stop-opacity="1"/>
</linearGradient>
</defs>
<rect width="100%" height="100%" style="fill: url(#linear-gradient);"/>
</svg>
Simply upload it to your server and call the URL like so:
gradient.php?from=f00&to=00f
This can be used in conjunction with your CSS3 gradients like this:
.my-color {
background-color: #f00;
background-image: url(gradient.php?from=f00&to=00f);
background-image: -webkit-gradient(linear, left top, left bottom, from(#f00), to(#00f));
background-image: -webkit-linear-gradient(top, #f00, #00f);
background-image: -moz-linear-gradient(top, #f00, #00f);
background-image: linear-gradient(top, #f00, #00f);
}
If you need to target below IE9, you can still use the old proprietary 'filter' method:
.ie7 .my-color, .ie8 .my-color {
filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr="#ff0000", endColorStr="#0000ff");
}
Of course you can amend the PHP code to add more stops on the gradient, or make it more sophisticated (radial gradients, transparency etc.) but this is great for those simple (vertical) linear gradients.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With