Um pouco tarde, mas se algum de vocês estiver ficando louco tentando usar o SVG embutido como pano de fundo , as sugestões de escape acima não funcionam. Por um lado, ele não funciona no IE e, dependendo do conteúdo do seu SVG, a técnica causará problemas em outros navegadores, como o FF.
Se você base64 codificar o svg (não o URL inteiro, apenas a tag svg e seu conteúdo!), Ele funcionará em todos os navegadores. Aqui está o mesmo exemplo do jsfiddle em base64: http://jsfiddle.net/vPA9z/3/
O CSS agora se parece com isso:
body { background-image:
url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMCcgaGVpZ2h0PScxMCc+PGxpbmVhckdyYWRpZW50IGlkPSdncmFkaWVudCc+PHN0b3Agb2Zmc2V0PScxMCUnIHN0b3AtY29sb3I9JyNGMDAnLz48c3RvcCBvZmZzZXQ9JzkwJScgc3RvcC1jb2xvcj0nI2ZjYycvPiA8L2xpbmVhckdyYWRpZW50PjxyZWN0IGZpbGw9J3VybCgjZ3JhZGllbnQpJyB4PScwJyB5PScwJyB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJy8+PC9zdmc+");
Lembre-se de remover qualquer URL que escape antes de converter para base64. Em outras palavras, o exemplo acima mostrou color = '# fcc' convertido em color = '% 23fcc', você deve voltar para #.
O motivo pelo qual o base64 funciona melhor é que elimina todos os problemas com aspas simples e duplas e escape de URL
Se você estiver usando JS, poderá window.btoa()
produzir sua base64 svg; e se não funcionar (pode se queixar de caracteres inválidos na string), você pode simplesmente usar https://www.base64encode.org/ .
Exemplo para definir um fundo 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>
Com o JS, você pode gerar SVGs dinamicamente, alterando até seus parâmetros.
Um dos melhores artigos sobre o uso do SVG está aqui: http://dbushell.com/2013/02/04/a-primer-to-front-end-svg-hacking/
Espero que isto ajude
Mike