Saya memiliki kode berikut:
<span>
<svg height="32" version="1.1" width="32" xmlns="http://www.w3.org/2000/svg" style="overflow: hidden; position: relative; left: -0.0166626px; top: -0.983337px;">
<desc></desc>
<defs/>
<path style="" fill="#333333" stroke="none" d="M15.985,5.972C8.422,5.972,2.289999999999999,10.049,2.289999999999999,15.078C2.289999999999999,17.955,4.302999999999999...............1,27.68,22.274Z"/>
</svg>
</span>
Apakah mungkin untuk mengubah warna isian lintasan SVG dengan CSS atau cara lain tanpa benar-benar mengubahnya di dalam tag path?
<symbol>
dan<use>
. Lihat jawaban ini .Jawaban:
Ya, Anda bisa menerapkan CSS ke SVG, tetapi Anda harus mencocokkan elemen, seperti saat mendesain HTML. Jika Anda hanya ingin menerapkannya ke semua jalur SVG, Anda dapat menggunakan, misalnya:
CSS eksternal tampaknya menggantikan
fill
atribut jalur , setidaknya di browser berbasis WebKit dan Gecko yang saya uji. Tentu saja, jika Anda menulis, katakan,<path style="fill: green">
maka itu akan menimpa CSS eksternal juga.sumber
<svg>
tag.<use href="external.svg#objId" />
dan CSS lokal Anda masih akan berlaku sampai batas tertentu.fill: #000;
bukanbackground: #000;
.jika Anda ingin mengubah warna dengan melayang di elemen, coba ini:
sumber
Jika Anda masuk ke kode sumber file SVG Anda dapat mengubah pengisian warna dengan memodifikasi properti fill.
Gunakan editor teks favorit Anda, buka file SVG dan mainkan.
sumber
Anda meletakkan css ini untuk lingkaran svg.
sumber
Saya menemukan sumber daya yang luar biasa tentang trik-css: https://css-tricks.com/using-svg/
Ada beberapa solusi yang dijelaskan di sana.
Saya lebih suka yang membutuhkan suntingan minimal ke svg sumber, dan juga tidak memerlukannya untuk dimasukkan ke dalam dokumen html. Opsi ini menggunakan
<object>
tag.Tambahkan file svg ke html Anda menggunakan
<object>
; Saya juga mendeklarasikan atribut htmlwidth
danheight
. Menggunakan lebar ini dan ketinggian dokumen svg tidak diskalakan, saya mengatasinya dengan menggunakantransform: scale(...)
pernyataan css untuksvg
tag dalam file svg css terkait.Buat file css untuk dilampirkan ke dokumen svn Anda. Jalur svg sumber saya diskalakan ke 16px, saya meningkatkannya menjadi 64 dengan faktor empat. Itu hanya memiliki satu jalur jadi saya tidak perlu memilihnya secara lebih spesifik, namun jalur tersebut memiliki atribut isian jadi saya harus menggunakan
!IMPORTANT
untuk memaksa css untuk mengambil preseden.Edit file svg target Anda, sebelum
<svg
tag pembuka , untuk memasukkan stylesheet; Perhatikan bahwa href relatif terhadap url file svg.sumber
Anda dapat menggunakan sintaks ini tetapi akan membutuhkan beberapa perubahan pada file SVG. Dan hapus semua fill / stroke dari SVG itu sendiri.
icon.svg
icon.html
sumber
currentColor
Dimungkinkan untuk mengubah warna isian jalur svg. Lihat di bawah untuk cuplikan CSS:
Untuk menerapkan warna untuk semua jalur:
svg > path{ fill: red }
Untuk menerapkan jalur d pertama:
svg > path:nth-of-type(1){ fill: green }
Untuk menerapkan jalur d kedua:
svg > path:nth-of-type(2){ fill: green}
Untuk menerapkan jalur d berbeda, ubah hanya nomor jalur:
svg > path:nth-of-type(${path_number}){ fill: green}
Untuk mendukung CSS di Angular 2 hingga 8, gunakan konsep enkapsulasi:
sumber
Masukkan semua svg Anda:
Dalam Css:
Untuk menggunakan pseudo-class:
Penjelasan
root = halaman html.
--svgcolor = variabel.
span.github = memilih elemen span dengan github kelas, ikon svg di dalam dan menetapkan hover pseudo-class.
sumber