Ein bisschen spät, aber wenn einer von Ihnen verrückt geworden ist und versucht hat, Inline-SVG als Hintergrund zu verwenden , funktionieren die oben genannten Vorschläge nicht ganz. Zum einen funktioniert es nicht im IE, und je nach Inhalt Ihres SVG verursacht die Technik Probleme in anderen Browsern wie FF.
Wenn Sie das svg mit base64 codieren (nicht die gesamte URL, nur das svg-Tag und seinen Inhalt!), Funktioniert es in allen Browsern. Hier ist das gleiche jsfiddle-Beispiel in base64: http://jsfiddle.net/vPA9z/3/
Das CSS sieht jetzt so aus:
body { background-image:
url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMCcgaGVpZ2h0PScxMCc+PGxpbmVhckdyYWRpZW50IGlkPSdncmFkaWVudCc+PHN0b3Agb2Zmc2V0PScxMCUnIHN0b3AtY29sb3I9JyNGMDAnLz48c3RvcCBvZmZzZXQ9JzkwJScgc3RvcC1jb2xvcj0nI2ZjYycvPiA8L2xpbmVhckdyYWRpZW50PjxyZWN0IGZpbGw9J3VybCgjZ3JhZGllbnQpJyB4PScwJyB5PScwJyB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJy8+PC9zdmc+");
Denken Sie daran, alle entweichenden URLs zu entfernen, bevor Sie zu base64 konvertieren. Mit anderen Worten, das obige Beispiel zeigte color = '# fcc' konvertiert in color = '% 23fcc'. Sie sollten zu # zurückkehren.
Der Grund, warum base64 besser funktioniert, besteht darin, dass alle Probleme mit einfachen und doppelten Anführungszeichen und dem Entkommen von URLs beseitigt werden
Wenn Sie JS verwenden, können Sie damit window.btoa()
Ihr base64-SVG erstellen. und wenn es nicht funktioniert (es könnte sich über ungültige Zeichen in der Zeichenfolge beschweren), können Sie einfach https://www.base64encode.org/ verwenden .
Beispiel zum Festlegen eines Div-Hintergrunds:
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>
Mit JS können Sie SVGs im laufenden Betrieb generieren und sogar deren Parameter ändern.
Einer der besseren Artikel zur Verwendung von SVG ist hier: http://dbushell.com/2013/02/04/a-primer-to-front-end-svg-hacking/
Hoffe das hilft
Mike