เราสามารถรวมlist-style-image
กับsvg
s ซึ่งเราสามารถอินไลน์ใน css ได้ ! วิธีนี้ช่วยให้สามารถควบคุม "กระสุน" ได้อย่างไม่น่าเชื่อซึ่งสามารถกลายเป็นอะไรก็ได้
หากต้องการรับวงกลมสีแดงให้ใช้ css ต่อไปนี้:
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>');
}
แต่นี่เป็นเพียงจุดเริ่มต้น สิ่งนี้ทำให้เราสามารถทำสิ่งที่บ้าคลั่งที่เราต้องการได้ด้วยกระสุนเหล่านั้น วงกลมหรือสี่เหลี่ยมเป็นเรื่องง่าย แต่อะไรก็ตามที่คุณวาดด้วยsvg
คุณสามารถติดอยู่ในนั้นได้! ดูตัวอย่างเป้ากางเกงด้านล่าง:
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>
แอตทริบิวต์ความกว้าง / ความสูง
บางเบราว์เซอร์ต้องการwidth
และheight
ตั้งค่าแอตทริบิวต์<svg>
หรือไม่ก็ไม่แสดงอะไรเลย ในขณะที่เขียน Firefox เวอร์ชันล่าสุดแสดงปัญหานี้ ฉันได้ตั้งค่าคุณสมบัติทั้งสองในตัวอย่างแล้ว
การเข้ารหัส
ความคิดเห็นล่าสุดทำให้ฉันนึกถึงการเข้ารหัสสำหรับ data-uri นี่เป็นจุดที่เจ็บปวดสำหรับฉันเมื่อไม่นานมานี้และฉันสามารถแบ่งปันข้อมูลเล็กน้อยที่ฉันค้นคว้าได้
ข้อมูลจำเพาะข้อมูล URIซึ่งอ้างอิงข้อมูลจำเพาะ URIกล่าวว่า SVG ควรได้รับการเข้ารหัสตามสเป็ค URI นั่นหมายความว่าทุกประเภทของตัวอักษรที่ควรได้รับการเข้ารหัสเช่นกลายเป็น<
%3C
แหล่งข้อมูลบางแห่งแนะนำการเข้ารหัส base64 ซึ่งควรแก้ไขปัญหาการเข้ารหัสอย่างไรก็ตามจะเพิ่มขนาด SVG โดยไม่จำเป็นในขณะที่การเข้ารหัส URI จะไม่ ฉันแนะนำให้เข้ารหัส URI
ข้อมูลเพิ่มเติม:
การสนับสนุนเบราว์เซอร์: > ie8.0
เทคนิค css บน svgs
mdn บน svgs