Sedikit terlambat, tetapi jika ada di antara Anda yang sudah gila mencoba menggunakan inline SVG sebagai latar belakang , saran melarikan diri di atas tidak cukup berhasil. Untuk satu, itu tidak berfungsi di IE, dan tergantung pada konten SVG Anda teknik ini akan menyebabkan masalah di browser lain, seperti FF.
Jika Anda base64 mengkodekan svg (bukan seluruh url, hanya tag svg dan isinya!) Ia bekerja di semua browser. Berikut adalah contoh jsfiddle yang sama di base64: http://jsfiddle.net/vPA9z/3/
CSS sekarang terlihat seperti ini:
body { background-image:
url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMCcgaGVpZ2h0PScxMCc+PGxpbmVhckdyYWRpZW50IGlkPSdncmFkaWVudCc+PHN0b3Agb2Zmc2V0PScxMCUnIHN0b3AtY29sb3I9JyNGMDAnLz48c3RvcCBvZmZzZXQ9JzkwJScgc3RvcC1jb2xvcj0nI2ZjYycvPiA8L2xpbmVhckdyYWRpZW50PjxyZWN0IGZpbGw9J3VybCgjZ3JhZGllbnQpJyB4PScwJyB5PScwJyB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMDAlJy8+PC9zdmc+");
Ingatlah untuk menghapus URL yang keluar sebelum mengonversi ke base64. Dengan kata lain, contoh di atas menunjukkan color = '# fcc' dikonversi ke color = '% 23fcc', Anda harus kembali ke #.
Alasan mengapa base64 bekerja lebih baik adalah karena menghilangkan semua masalah dengan tanda kutip tunggal dan ganda serta url yang lolos
Jika Anda menggunakan JS, Anda dapat menggunakan window.btoa()
untuk menghasilkan base64 svg Anda; dan jika itu tidak berhasil (mungkin mengeluh tentang karakter yang tidak valid dalam string), Anda cukup menggunakan https://www.base64encode.org/ .
Contoh untuk mengatur latar belakang 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>
Dengan JS, Anda dapat membuat SVG dengan cepat, bahkan mengubah parameternya.
Salah satu artikel yang lebih baik tentang penggunaan SVG ada di sini: http://dbushell.com/2013/02/04/a-primer-to-front-end-svg-hacking/
Semoga ini membantu
Mike