Trochę późno, ale jeśli któryś z was oszalał, próbując użyć wbudowanego SVG jako tła , powyższe sugestie ucieczki nie działają. Po pierwsze, nie działa w IE, a w zależności od zawartości pliku SVG technika spowoduje problemy w innych przeglądarkach, takich jak FF.
Jeśli base64 kodujesz plik svg (nie cały adres URL, tylko znacznik svg i jego zawartość!), Działa on we wszystkich przeglądarkach. Oto ten sam przykład jsfiddle w base64: http://jsfiddle.net/vPA9z/3/
CSS wygląda teraz tak:
body { background-image:
url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMCcgaGVpZ2h0PScxMCc+PGxpbmVhckdyYWRpZW50IGlkPSdncmFkaWVudCc+PHN0b3Agb2Zmc2V0PScxMCUnIHN0b3AtY29sb3I9JyNGMDAnLz48c3RvcCBvZmZzZXQ9JzkwJScgc3RvcC1jb2xvcj0nI2ZjYycvPiA8L2xpbmVhckdyYWRpZW50PjxyZWN0IGZpbGw9J3VybCgjZ3JhZGllbnQpJyB4PScwJyB5PScwJyB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJy8+PC9zdmc+");
Pamiętaj, aby usunąć wszelkie znaki ucieczki przed konwersją na base64. Innymi słowy, powyższy przykład pokazał color = '# fcc' przekonwertowany na color = '% 23fcc', powróć do #.
Powodem, dla którego base64 działa lepiej, jest to, że eliminuje wszystkie problemy z pojedynczymi i podwójnymi cudzysłowami oraz ucieczką adresów URL
Jeśli używasz JS, możesz użyć go window.btoa()
do wygenerowania pliku svg base64; a jeśli to nie działa (może narzekać na nieprawidłowe znaki w ciągu), możesz po prostu użyć https://www.base64encode.org/ .
Przykład ustawienia tła div:
var mySVG = "<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10'><linearGradient id='gradient'><stop offset='10%' stop-color='#F00'/><stop offset='90%' stop-color='#fcc'/> </linearGradient><rect fill='url(#gradient)' x='0' y='0' width='100%' height='100%'/></svg>";
var mySVG64 = window.btoa(mySVG);
document.getElementById('myDiv').style.backgroundImage = "url('data:image/svg+xml;base64," + mySVG64 + "')";
html, body, #myDiv {
width: 100%;
height: 100%;
margin: 0;
}
<div id="myDiv"></div>
Dzięki JS możesz generować pliki SVG w locie, nawet zmieniając jego parametry.
Jeden z lepszych artykułów na temat korzystania z SVG znajduje się tutaj: http://dbushell.com/2013/02/04/a-primer-to-front-end-svg-hacking/
Mam nadzieję że to pomoże
Mikrofon