Kita bisa kombinasikan list-style-imagedengan svgs, yang bisa kita inline di css ! Metode ini menawarkan kendali luar biasa atas "peluru", yang bisa menjadi apa saja.
Untuk mendapatkan lingkaran merah, cukup gunakan css berikut:
ul {
list-style-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" width="10" height="10"><circle fill="red" cx="5" cy="5" r="2"/></svg>');
}
Tapi ini baru permulaan. Ini memungkinkan kita melakukan hal gila yang kita inginkan dengan peluru itu. lingkaran atau persegi panjang itu mudah, tetapi apa pun yang bisa Anda gambar dengan svgAnda bisa menempel di sana! Lihat contoh bullseye di bawah ini:
ul {
list-style-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" width="10" height="10"><circle fill="red" cx="5" cy="5" r="5"/></svg>');
}
ul ul {
list-style-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" width="10" height="10"><rect fill="red" x="0" y="0" height="10" width="10"/></svg>');
}
ul ul ul {
list-style-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" width="10" height="10"><circle fill="red" cx="5" cy="5" r="3"/></svg>');
}
ul ul ul ul {
list-style-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" width="10" height="10"><rect fill="red" x="2" y="2" height="4" width="4"/></svg>');
}
ul.bulls-eye {
list-style-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10" width="10" height="10"><circle fill="red" cx="5" cy="5" r="5"/><circle fill="white" cx="5" cy="5" r="4"/><circle fill="red" cx="5" cy="5" r="2"/></svg>');
}
ul.multi-color {
list-style-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 12" width="15" height="15"><circle fill="blue" cx="6" cy="6" r="6"/><circle fill="pink" cx="6" cy="6" r="4"/><circle fill="green" cx="6" cy="6" r="2"/></svg>');
}
<ul>
<li>
Big circles!
<ul>
<li>Big rectangles!</li>
<li>b
<ul>
<li>Small circles!</li>
<li>c
<ul>
<li>Small rectangles!</li>
<li>b</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>b</li>
</ul>
<ul class="bulls-eye">
<li>Bulls</li>
<li>eyes.</li>
</ul>
<ul class="multi-color">
<li>Multi</li>
<li>color</li>
</ul>
Atribut lebar / tinggi
Beberapa browser memerlukan widthdan heightatribut untuk disetel pada <svg>, atau mereka tidak menampilkan apa pun. Pada saat penulisan, versi terbaru Firefox menunjukkan masalah ini. Saya telah menetapkan kedua atribut dalam contoh.
Pengodean
Sebuah komentar baru-baru ini mengingatkan saya pada pengkodean untuk data-uri. Ini adalah masalah bagi saya baru-baru ini, dan saya dapat berbagi sedikit informasi yang telah saya teliti.
Spesifikasi data-uri , yang mereferensikan spesifikasi URI , mengatakan bahwa svg harus dikodekan sesuai dengan spesifikasi URI . Itu berarti semua jenis karakter harus dikodekan, misalnya <menjadi %3C.
Beberapa sumber menyarankan pengkodean base64, yang seharusnya memperbaiki masalah pengkodean, namun ini akan meningkatkan ukuran SVG secara tidak perlu, sedangkan pengkodean URI tidak akan. Saya merekomendasikan pengkodean URI.
Info lebih lanjut:
dukungan-browser: > ie8
trik css di svgs
mdn pada svgs