我正在制作一组使用动态渐变的按钮。我已经通过使用其专有的CSS扩展照顾了Firefox 3.6+和WebKit,我需要做的就是使用background-image:url(“gradient.svg”)来支持Opera,iOS和IE9。一个SVG文件,内部有很多SVG渐变
这是相对容易的,我做了一个SVG文件,将其链接起来,并得到它的工作。但是,我正在制作一套,所以我需要至少6个渐变。当我通常在图像中执行此操作时,我创建了一个用于快速HTTP访问的精灵。我不知道如何在SVG中实现这一点 - 我可以使用一个文件并使用#identifiers访问XML的不同部分,就像XBL一样吗?
我目前SVG:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="select-gradient" x1="0" x2="0" y1="0" y2="1">
<stop offset="0%" stop-color="rgb(231,244,248)"/>
<stop offset="100%" stop-color="rgb(207,233,241)"/>
</linearGradient>
<style type="text/css">
rect {
fill: url(#select-gradient);
}
</style>
</defs>
<rect x="0" y="0" rx="6" ry="6" height="100%" width="100%"/>
</svg>
然后我有CSS:
.button-1 {
background-image: url("gradient-1.svg");
}
.button-2 {
background-image: url("gradient-2.svg");
}
我想要做这样的事情:
.button-1 {
background-image: url("gradient.svg#gradient1");
}
.button-2 {
background-image: url("gradient.svg#gradient2");
}
它甚至有可能?你能帮我吗?我真的不想推6个XML文件,我可以用它来做。
你试过了吗?它失败了吗?如果是,如何/与哪个错误信息? – MvanGeest 2010-06-19 14:19:37
@Mvan:错误讯息?从HTML和CSS? – Joey 2010-06-19 14:26:15
我看到Firefox给出CSS警告。我猜。 ... – MvanGeest 2010-06-19 15:12:32