Tworzę zestaw przycisków z dynamicznymi gradientami. Zadbałem o Firefoksa 3.6+ i WebKit, używając zastrzeżonych rozszerzeń CSS, a wszystko, co muszę zrobić, to obsługa Opera, iOS i IE9 za pomocą background-image: url ("gradient.svg").Jeden plik SVG, wiele gradientów SVG wewnątrz
Jest to stosunkowo łatwe, zrobiłem plik SVG, połączyłem go i uruchomiłem. Jednak robię zestaw, więc potrzebuję co najmniej 6 gradientów. Kiedy normalnie robię to na obrazach, tworzę ikonkę dla szybkiego dostępu HTTP. Nie jestem pewien, jak to osiągnąć w SVG - czy mogę użyć jednego pliku i uzyskać dostęp do różnych części jego kodu XML za pomocą #identifiers, takich jak XBL?
Mój obecny 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>
A potem mam CSS:
.button-1 {
background-image: url("gradient-1.svg");
}
.button-2 {
background-image: url("gradient-2.svg");
}
chcę zrobić coś takiego:
.button-1 {
background-image: url("gradient.svg#gradient1");
}
.button-2 {
background-image: url("gradient.svg#gradient2");
}
Czy to w ogóle możliwe? Czy możesz mi pomóc? Naprawdę nie chcę wypychać 6 plików XML, kiedy mogę to zrobić za pomocą jednego.
Czy próbowałeś? Czy to się nie udało? Jeśli tak, w jaki sposób/z jakim komunikatem o błędzie? – MvanGeest
@Mvan: Komunikaty o błędach? Z HTML i CSS? – Joey
Widziałem Firefoksa z ostrzeżeniami CSS. Zgaduję. ... – MvanGeest