Tukar SVG menjadi data URI yang boleh terus ditampal ke dalam HTML atau CSS — Base64 dan bentuk URL-encoded yang biasanya lebih kecil, bersebelahan.
SVGBase64data URICSS
SVG → Base64
☞ berjalan sepenuhnya dalam pelayar anda — tiada apa-apa dimuat naik
Lepaskan SVG anda di sini
atau klik untuk pilih — SVG sahaja
Data URI Base64
Boleh digunakan di mana-mana URL boleh digunakan. Sentiasa kira-kira satu pertiga lebih besar daripada fail asalnya.
Data URI URL-encoded
Imej yang sama, biasanya lebih kecil daripada Base64 — dan masih boleh dibaca, yang membantu ketika menyahpepijat CSS.
Tag img HTML
Latar CSS
satu permintaan kurang
Kenapa membenamkan SVG sebagai data URI
Data URI meletakkan imej di dalam HTML atau CSS itu sendiri, jadi pelayar tidak pernah membuat permintaan kedua untuknya. Bagi ikon kecil, itulah beza antara muncul serta-merta dan muncul sesaat terlambat.
Harganya ialah caching: ikon yang dibenamkan akan dimuat turun semula bersama setiap halaman yang memuatkannya, dan tidak boleh di-cache secara berasingan. Benamkan segelintir ikon yang penting untuk paparan pertama, dan biarkan selebihnya sebagai fail.
tiga langkah
Cara mengekod SVG sebagai Base64
01
Lepaskan SVG
Pilih fail .svg — ia kekal pada peranti anda.
02
Pilih bentuknya
Salin data URI Base64 atau yang URL-encoded.
03
Tampalkan
Guna tag img atau peraturan latar CSS yang sudah siap.
jawapan pantas
Soalan lazim SVG ke Base64
Base64 atau URL-encoded — yang mana patut saya guna?
Bagi SVG, URL-encoded biasanya lebih kecil kerana SVG ialah teks manakala Base64 menambah kira-kira 33% pada apa sahaja yang disentuhnya. URL-encoded juga boleh dibaca, jadi anda dapat mengecam bentuk yang dimaksudkan di dalam helaian gaya. Guna Base64 apabila ada peringkat dalam aliran kerja yang merosakkan aksara mentahnya.
Kenapa data URI saya lebih besar daripada failnya?
Base64 mengekod tiga bait menjadi empat aksara, jadi satu pertiga pertambahan itu tidak dapat dielakkan. Lalukan fail itu melalui pengoptimum SVG dahulu — metadata editor dan koordinat berketepatan berlebihan selalunya memakan lebih banyak ruang berbanding pengekodan itu sendiri.
Bolehkah saya gunakannya dalam latar CSS?
Boleh — blok CSS itu sedia untuk ditampal. Ia menggunakan bentuk URL-encoded di dalam tanda petik berganda, dan itulah sebabnya pengekod menukar tanda petik berganda milik SVG kepada tanda petik tunggal.
Ikon itu tidak muncul dalam CSS saya
Hampir selalu kerana ada `#` yang tidak dikodkan. Warna seperti `#fff` memotong URL pada titik itu, dan semua yang selepasnya dianggap serpihan. Keluaran di sini sudah melepaskannya dengan betul — masalah ini biasanya timbul apabila data URI disunting secara manual selepas itu.
Adakah fail saya dimuat naik?
Tidak. Pengekodan hanyalah kerja rentetan biasa yang dilakukan dalam pelayar anda.