Saat SVG langsung disertakan dalam dokumen menggunakan <svg>
tag, Anda dapat menerapkan gaya CSS ke SVG melalui lembar gaya dokumen. Namun, saya mencoba menerapkan gaya ke SVG yang disematkan (menggunakan <object>
tag).
Apakah mungkin untuk menggunakan sesuatu seperti kode berikut?
object svg {
fill: #fff;
}
Jawaban:
Jawaban singkatnya: tidak, karena gaya tidak berlaku di seluruh batas dokumen.
Namun, karena Anda memiliki file
<object>
tag, Anda dapat memasukkan stylesheet ke dalam dokumen svg menggunakan skrip.Sesuatu seperti ini, dan perhatikan bahwa kode ini mengasumsikan bahwa
<object>
telah dimuat sepenuhnya:Dimungkinkan juga untuk memasukkan
<link>
elemen untuk mereferensikan stylesheet eksternal:Opsi lainnya adalah menggunakan metode pertama, untuk menyisipkan elemen gaya, dan kemudian menambahkan aturan @import, mis
styleElement.textContent = "@import url(my-style.css)"
.Tentu saja Anda dapat langsung menautkan ke stylesheet dari file svg juga, tanpa melakukan skrip apa pun. Salah satu dari berikut ini seharusnya berfungsi:
atau:
Pembaruan 2015: Anda dapat menggunakan plugin jquery-svg untuk menerapkan skrip js dan gaya css ke SVG yang disematkan.
sumber
Anda dapat melakukan ini tanpa javsscrpt dengan meletakkan blok gaya dengan gaya Anda di dalam file SVG itu sendiri.
sumber
Jika satu-satunya alasan menggunakan tag untuk menyertakan SVG adalah karena Anda tidak ingin kode sumber Anda berantakan dengan markup dari SVG, Anda harus melihat injektor SVG seperti SVGInject .
Injeksi SVG menggunakan Javascript untuk memasukkan file SVG sebaris ke dalam dokumen HTML Anda. Hal ini memungkinkan kode sumber HTML bersih sekaligus membuat SVG dapat ditata sepenuhnya dengan CSS. Contoh dasarnya terlihat seperti ini:
sumber