在我的页面上,我使用了很多 CSS3 渐变。我想为 IE 和 Opera 提供一些 SVG 后备。
为 CSS3 线性渐变创建 SVG 后备非常简单。我使用以下代码:
<svg xmlns="http://www.w3.org/2000/svg">
<linearGradient id="g" gradientTransform="rotate(90,.5,.5)">
<stop stop-color="black" offset="0"/>
<stop stop-color="white" offset="1"/>
</linearGradient>
<rect x="0" y="0" width="100%" height="100%" fill="url(#g)"/>
</svg>
这相当于这个css:
background:-webkit-linear-gradient(black,white);
background: -moz-linear-gradient(black,white);
background: -o-linear-gradient(black,white);
background: linear-gradient(black,white);
现在,当谈到 CSS3 径向渐变时,事情变得有点复杂了。我没有运气为 CSS3 径向渐变创建 SVG 等效项,如下所示:
background:-webkit-radial-gradient(50% 10%,circle,rgba(255,255,255,.3) 10%,rgba(255,255,255,0) 90%);
background: -moz-radial-gradient(50% 10%,circle,rgba(255,255,255,.3) 10%,rgba(255,255,255,0) 90%);
background: -o-radial-gradient(50% 10%,circle,rgba(255,255,255,.3) 10%,rgba(255,255,255,0) 90%);
background: radial-gradient(circle at 50% 10%,rgba(255,255,255,.3) 10%,rgba(255,255,255,0) 90%);
到目前为止,我已经设法想出了这个:
<svg xmlns="http://www.w3.org/2000/svg">
<radialGradient id="g">
<stop stop-opacity=".3" stop-color="white" offset=".1"/>
<stop stop-opacity="0" stop-color="white" offset=".9"/>
</radialGradient>
<rect x="0" y="0" width="100%" height="100%" fill="url(#g)"/>
</svg>
但它给了我不同的结果。
如何在 CSS3 中产生与原始渐变相同的渐变?
这是两个渐变的演示:http: //jsfiddle.net/QuMnA/