IE9 में वर्तमान में CSS3 ढाल समर्थन का अभाव है। हालांकि, यहां PHP का उपयोग करके एसवीजी (वर्टिकल लीनियर) ग्रेडिएंट को वापस करने के लिए एक अच्छा वर्कअराउंड सॉल्यूशन दिया गया है, जो हमें अपने स्टाइलशीट में अपना डिजाइन रखने की अनुमति देता है।
<?php
$from_stop = isset($_GET['from']) ? $_GET['from'] : '000000';
$to_stop = isset($_GET['to']) ? $_GET['to'] : '000000';
header('Content-type: image/svg+xml; charset=utf-8');
echo '<?xml version="1.0"?>
';
?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100%" height="100%">
<defs>
<linearGradient id="linear-gradient" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" stop-color="#<?php echo $from_stop; ?>" stop-opacity="1"/>
<stop offset="100%" stop-color="#<?php echo $to_stop; ?>" stop-opacity="1"/>
</linearGradient>
</defs>
<rect width="100%" height="100%" fill="url(#linear-gradient)"/>
</svg>
बस इसे अपने सर्वर पर अपलोड करें और URL को ऐसे ही कॉल करें:
gradient.php?from=f00&to=00f
इसका उपयोग आपके CSS3 ग्रेडिएंट के साथ संयोजन के रूप में किया जा सकता है:
.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);
}
यदि आपको IE9 से नीचे लक्ष्य करने की आवश्यकता है, तो आप अभी भी पुराने मालिकाना 'फ़िल्टर' विधि का उपयोग कर सकते हैं:
.ie7 .my-color, .ie8 .my-color {
filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr="#ff0000", endColorStr="#0000ff");
}
बेशक आप ग्रेडिएंट पर अधिक स्टॉप जोड़ने के लिए PHP कोड में संशोधन कर सकते हैं, या इसे और अधिक परिष्कृत (रेडियल ग्रेडिएंट्स, पारदर्शिता आदि) कर सकते हैं, लेकिन यह उन सरल (वर्टिकल) लीनियर ग्रेडिएंट्स के लिए बहुत अच्छा है।