Un po 'in ritardo, ma se qualcuno di voi sta impazzendo nel tentativo di utilizzare SVG in linea come sfondo , i suggerimenti di fuga sopra non funzionano. Per uno, non funziona in IE e, a seconda del contenuto del tuo SVG, la tecnica causerà problemi in altri browser, come FF.
Se base64 codifica lo svg (non l'intero URL, solo il tag svg e il suo contenuto!) Funziona in tutti i browser. Ecco lo stesso esempio di jsfiddle in base64: http://jsfiddle.net/vPA9z/3/
Il CSS ora ha questo aspetto:
body { background-image:
url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMCcgaGVpZ2h0PScxMCc+PGxpbmVhckdyYWRpZW50IGlkPSdncmFkaWVudCc+PHN0b3Agb2Zmc2V0PScxMCUnIHN0b3AtY29sb3I9JyNGMDAnLz48c3RvcCBvZmZzZXQ9JzkwJScgc3RvcC1jb2xvcj0nI2ZjYycvPiA8L2xpbmVhckdyYWRpZW50PjxyZWN0IGZpbGw9J3VybCgjZ3JhZGllbnQpJyB4PScwJyB5PScwJyB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJy8+PC9zdmc+");
Ricorda di rimuovere qualsiasi URL che fuoriesca prima di convertirlo in base64. In altre parole, l'esempio sopra mostrava color = '# fcc' convertito in color = '% 23fcc', dovresti tornare a #.
Il motivo per cui base64 funziona meglio è che elimina tutti i problemi con virgolette singole e doppie e escape dell'URL
Se stai usando JS, puoi usare window.btoa()
per produrre il tuo svg base64; e se non funziona (potrebbe lamentarsi di caratteri non validi nella stringa), puoi semplicemente usare https://www.base64encode.org/ .
Esempio per impostare uno sfondo 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>
Con JS puoi generare SVG al volo, anche modificandone i parametri.
Uno degli articoli migliori sull'uso di SVG è qui: http://dbushell.com/2013/02/04/a-primer-to-front-end-svg-hacking/
Spero che questo ti aiuti
Mike