Apakah ada cara untuk mengedit file SVG di Illustrator di mana Anda dapat menentukan kelas CSS untuk setiap jalur?
Saya sudah tahu di Illustrator bahwa jika Anda memberi nama layer nama yang sebenarnya, Illustrator akan menggunakan nama itu sebagai path ID, yang tidak masalah jika Anda tidak berencana untuk menggunakan kembali ikon lebih dari satu kali di halaman yang sama.
Solusi saya saat ini adalah dengan hanya menggunakan metode ID, tetapi kemudian mengonversi ID ke kelas di editor kode saya, tapi itu cukup menjengkelkan harus dilakukan setiap kali saya menghasilkan sprite SVG saya.
Jika saat ini tidak memungkinkan di Illustrator, apakah ada aplikasi lain yang memungkinkan Anda menentukannya? Atau mungkin paket Grunt atau Gulp?
Sepertinya Anda mungkin dapat melakukannya dengan Inkscape dengan peretasan , jadi saya mungkin melihat itu jika tidak ada solusi bagus lainnya di luar sana.
sumber
Jawaban:
Saya melakukan ini dengan tugas Grunt. Dengan menggunakan "grunt-text-replace" saya dapat melewati SVG minified saya (svgmin) melalui ekspresi reguler kustom yang menggantikan semua referensi kelas yang kacau dengan kelas yang tepat.
Di Illustrator, deklarasikan layer / nama objek sebagai class = "tree" misalnya. Ini akan diekspor oleh Illustrator sebagai id = "class =" tree "" . Tugas kasar di bawah ini akan membereskannya dan menjadikannya class = "tree" . Saya juga menempel di bawah beberapa subtugas lain yang akan melakukan pembersihan ID (disarankan).
Kemudian Anda dapat memanggil tugas ini dalam Gruntfile Anda sebagai:
sumber
Sepertinya tautan yang dipasang Ian Dunn mungkin adalah tiket Anda. Berikut kutipan dari halaman itu :
Illustrator dapat mengekspor gaya grafis sebagai CSS dalam elemen gaya dan menerapkannya melalui kelas dalam kode SVG. Ini adalah bagaimana Anda dapat menghasilkan kelas dalam SVG yang diekspor. Bergantung pada apa yang ingin Anda lakukan untuk kelas-kelas itu, Anda bisa mendefinisikannya di file CSS lain dan menghapus definisi gaya dari SVG yang diekspor.
Halaman tertaut menyatakan ini, tetapi demi kelengkapan, Illustrator hanya akan menghasilkan elemen gaya dan kelas jika Anda mengatur
CSS Properties: Style Element
di area Advanced (Anda mungkin perlu mengklikMore Options
) dari Dialog Opsi SVG:Saya juga mencatat bahwa kode yang dihasilkan tidak akan pernah cukup sempurna untuk semua situasi. Kode tulisan tangan cenderung lebih ringan dan lebih mudah dibaca manusia (jika memang itu yang Anda inginkan). Saya akan merekomendasikan membaca dokumen Quibik pengguna Wikimedia tentang membersihkan file SVG dengan tangan dan melihat grunt-svgmin .
sumber
Saya baru saja mengalami masalah ini dan menemukan solusi berikut (untuk Illustrator CC):
Terapkan bernama "Gaya Grafis" ke jalur yang ingin Anda beri nama dan ekspor SVG dengan CSS Internal. Sebagai contoh, Gaya Grafis bernama ikon saya akan menentukan
my-icon
kelas internal dan menerapkan kelas itu ke jalur yang benar.Contoh dengan tangkapan layar:
Buat Gaya Grafis baru:
Ekspor sebagai ... SVG:
Keluaran:
<defs><style>.my-icon{ fill:#000; }</style></defs> <path class="my-icon">...</path>
Sumber: https://www.viget.com/articles/5-tips-for-saving-svg-for-the-web-with-illustrator
CC: ilustrator menggunakan Gaya Grafis yang didefinisikan untuk membuat kelas bernama (pintar, berguna)
sumber
Di Illustrator 21.0.0 (2017) dan mungkin di versi sebelumnya:
Elemen-elemen dalam SVG akan diberi atribut class dengan nilai "my-style". Kemudian Anda dapat menggunakan CSS eksternal untuk mengganti gaya.
Perhatikan bahwa jika nama gaya Anda berisi spasi, itu akan dikonversi menjadi tanda hubung.
sumber
Cara sederhana untuk melakukannya, ini mirip dengan tugas Grunt, tetapi bahkan lebih mudah:
Untuk semua objek yang ingin Anda buat kelas, beri nama misalnya: "myClassmainCircle" dan "myClassmainStar". Setelah mengekspor ganti semua: 'id = "myClass' dengan 'class ="'
Hasilnya adalah: class = "mainCirle" class = "mainStar"
sumber