Css'de satır içi yapabileceğimiz s list-style-imageile birleştirebilirizsvg ! Bu yöntem, her şeye dönüşebilen "mermiler" üzerinde inanılmaz bir kontrol sağlar.
Kırmızı bir daire elde etmek için aşağıdaki css'yi kullanmanız yeterlidir:
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>');
}
Ama bu sadece başlangıç. Bu, o mermilerle istediğimiz her çılgın şeyi yapmamızı sağlıyor. daireler veya dikdörtgenler kolaydır, ancak çizebileceğiniz her şey svgoraya yapıştırılabilir! Aşağıdaki bullseye örneğine bakın:
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>
Genişlik / yükseklik özellikleri
Bazı tarayıcılar widthve heightözniteliklerin üzerinde ayarlanmasını gerektirir <svg>veya hiçbir şey göstermezler. Yazım sırasında, Firefox'un son sürümleri bu sorunu sergilemektedir. Örneklerde her iki özelliği de ayarladım.
Kodlamalar
Son zamanlarda yapılan bir yorum bana data-uri'nin kodlamalarını hatırlattı. Bu son zamanlarda benim için acı bir noktaydı ve araştırdığım bazı bilgileri paylaşabilirim.
Veri uri spek hangi referanslar, URI Spec , svg göre kodlanmış gerektiğini söyler URI spec . Bu, her türden karakterin kodlanması gerektiği anlamına gelir, örneğin <olur %3C.
Bazı kaynaklar, kodlama sorunlarını çözmesi gereken base64 kodlamasını önerir, ancak bu, SVG'nin boyutunu gereksiz şekilde artırırken, URI kodlaması bunu yapmaz. URI kodlamasını öneririm.
Daha fazla bilgi:
tarayıcı desteği: > ie8
svgs'de css hileleri
svgs üzerinde mdn