Я делаю набор кнопок, которые используют динамические градиенты.Я позаботился о Firefox 3.6+ и WebKit, используя их собственные CSS-расширения, и все, что мне нужно сделать, - это поддержать Opera, iOS и IE9, используя background-image: url ("Gradient.svg").
Это относительно просто, я сделал SVG-файл, связал его и заставил работать.Однако я делаю набор, поэтому мне нужно как минимум 6 градиентов.Когда я обычно делаю это в изображениях, я создаю спрайт для быстрого доступа по HTTP.Я не уверен, как добиться этого в SVG - могу ли я использовать один файл и обращаться к разным частям его XML с помощью #identifiers, как это делает 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, когда я могу сделать это с одним.