Katakan seseorang meminta anda menambah sempadan berganda ke beberapa bentuk SVG geometri rawak. Atas sebab tertentu, anda tidak boleh menggunakan mana -mana editor grafik - mereka perlu dijana semasa runtime - jadi anda perlu menyelesaikannya dengan CSS atau dalam sintaks SVG.
Soalan pertama anda mungkin: Adakah terdapat apa-apa seperti gaya strok: dua kali ganda dalam SVG?
Nah, jawapannya belum lagi dan tidak begitu mudah. Tetapi saya akan mencuba untuk melihat kaedah apa yang boleh saya dapati. Saya akan meneroka kemungkinan tiga bentuk asas yang berbeza: bulatan, segi empat tepat, dan poligon. Menunjuk yang boleh menyimpan warna telus di tengah -tengah dua baris.
Amaran Spoiler: Semua hasil mempunyai kelemahan mereka, sekurang -kurangnya dengan CSS dan SVG, tetapi biarkan saya memandu anda melalui niat saya.
Ini tidak berfungsi dengan pelbagai bentuk, tetapi mereka adalah penyelesaian yang paling mudah.
Ciri-ciri CSS menggariskan dan bayang-bayang kotak hanya digunakan untuk kotak sempadan bentuk atau SVG, dan kedua-duanya adalah penyelesaian yang hebat hanya untuk dataran dan segi empat tepat . Mereka juga membenarkan warna fleksibel menggunakan sifat tersuai.
Ia hanya mengambil dua baris CSS dengan garis besar, ditambah pula dengan warna latar belakang kelihatan melalui bentuk.
Box-shadow hanya memerlukan satu baris CSS, tetapi kita perlu memastikan bahawa setiap bentuk mempunyai SVG sendiri kerana kita tidak boleh memohon box-shadow terus ke bentuk. Satu lagi perkara yang perlu dipertimbangkan ialah kita perlu menggunakan warna latar belakang dalam perisytiharan itu.
Kecerunan radial SVG hanya berfungsi pada lingkaran ☺️. Kita boleh secara langsung menggunakan kecerunan pada strok, tetapi lebih baik menggunakan pembolehubah kerana kita perlu mengisytiharkan warna berkali -kali dalam kod.
Ini akan berfungsi dengan semua bentuk, tetapi kod itu boleh menjadi kembung atau kompleks.
Akhirnya, satu penyelesaian untuk semua bentuk! Kita mesti mempunyai setiap bentuk dalam
Ini adalah penyelesaian yang sangat fleksibel. Kami boleh membuat penapis dan menambahkannya ke bentuk melalui atribut penapis SVG. Bahagian rumit di sini adalah penapis itu sendiri. Kami memerlukan tiga lukisan, satu untuk sempadan luar, satu untuk banjir latar belakang, dan yang terakhir untuk melukis bentuk di bahagian depan. Hasilnya kelihatan lebih baik daripada menggunakan drop-shadow, tetapi sempadan masih pixelated.
Terdapat beberapa pilihan yang mungkin di sini.
Penyelesaian ini memerlukan transformasi. Kami meletakkan satu angka ke atas yang lain, di mana angka utama mempunyai warna mengisi dan warna strok, dan angka lain tidak mengisi, strok merah, dan berskala dan diposisikan semula ke pusat. Kami menentukan bentuk kami pada
Saya dapati penyelesaian yang bijak dalam senarai mel WWW-SVG oleh Doug Schepers yang menggunakan SVG
Hanya supaya anda mempunyai mereka semua di satu tempat. Beritahu saya, anda boleh memikirkan penyelesaian lain yang mungkin!
Atas ialah kandungan terperinci Cara menambah sempadan berganda ke bentuk SVG. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!