เพื่อสรุปคำตอบอื่น ๆ ที่นี่ - หากคุณต้องการควบคุมช่องว่างระหว่างสัญลักษณ์แสดงหัวข้อย่อยและข้อความใน<li>
รายการอย่างละเอียดตัวเลือกของคุณคือ:
(1) ใช้ภาพพื้นหลัง:
<style type="text/css">
li {
list-style-type:none;
background-image:url(bullet.png);
}
</style>
<ul>
<li>Some text</li>
</ul>
ข้อดี:
- คุณสามารถใช้ภาพใดก็ได้ที่คุณต้องการสำหรับสัญลักษณ์แสดงหัวข้อย่อย
- คุณสามารถใช้ CSS
background-position
เพื่อจัดตำแหน่งภาพได้ทุกที่ที่คุณต้องการเมื่อเทียบกับข้อความโดยใช้พิกเซล, ems หรือ%
ข้อเสีย:
- เพิ่มไฟล์ภาพพิเศษ (แม้ว่าจะเล็ก) ลงในหน้าของคุณเพิ่มน้ำหนักหน้า
- หากผู้ใช้เพิ่มขนาดตัวอักษรในเบราว์เซอร์สัญลักษณ์แสดงหัวข้อจะยังคงขนาดเดิม นอกจากนี้ยังมีแนวโน้มที่จะได้รับตำแหน่งไกลออกไปเมื่อขนาดตัวอักษรเพิ่มขึ้น
- หากคุณกำลังพัฒนาเลย์เอาต์ที่ 'ตอบสนอง' โดยใช้เปอร์เซ็นต์ความกว้างเท่านั้นอาจเป็นเรื่องยากที่จะรับสัญลักษณ์แสดงตำแหน่งที่คุณต้องการในช่วงความกว้างของหน้าจอ
2. ใช้ช่องว่างภายใน<li>
แท็ก
<style type="text/css">
ul {padding-left:1em}
li {padding-left:1em}
</style>
<ul>
<li>Some text</li>
</ul>
ข้อดี:
- ไม่มีภาพ = ไฟล์ที่จะดาวน์โหลดน้อย 1 ไฟล์
- โดยการปรับช่องว่างภายในบน
<li>
คุณสามารถเพิ่มพิเศษได้มากพื้นที่แนวนอนระหว่างกระสุนและข้อความตามที่คุณต้องการ
- หากผู้ใช้เพิ่มขนาดข้อความระยะห่างและสัญลักษณ์แสดงหัวข้อควรปรับสัดส่วน
ข้อเสีย:
- ไม่สามารถย้ายสัญลักษณ์แสดงหัวข้อย่อยไปที่ข้อความได้ใกล้เคียงกว่าเบราว์เซอร์เริ่มต้น
- จำกัด เฉพาะรูปร่างและขนาดของกระสุนชนิดในตัวของ CSS
- สัญลักษณ์แสดงหัวข้อต้องมีสีเดียวกับข้อความ
- ไม่มีการควบคุมตำแหน่งแนวตั้งของสัญลักษณ์แสดงหัวข้อย่อย
(3) ตัดข้อความใน<span>
องค์ประกอบเพิ่มเติม
<style type="text/css">
li {
padding-left:1em;
color:#f00; /* red bullet */
}
li span {
display:block;
margin-left:-0.5em;
color:#000; /* black text */
}
</style>
<ul>
<li><span>Some text</span></li>
</ul>
ข้อดี:
- ไม่มีภาพ = ไฟล์ที่จะดาวน์โหลดน้อย 1 ไฟล์
- คุณสามารถควบคุมตำแหน่งของกระสุนได้มากกว่าด้วยตัวเลือก (2) - คุณสามารถเลื่อนไปใกล้กับข้อความมากขึ้น (แม้ว่าจะมีความพยายามอย่างดีที่สุดของฉันดูเหมือนว่าคุณไม่สามารถเปลี่ยนตำแหน่งแนวตั้งได้โดยการเพิ่ม
padding-top
ไปที่<span>
คนอื่นอาจมี. วิธีแก้ปัญหาสำหรับสิ่งนี้แม้ว่า ... )
- สัญลักษณ์แสดงหัวข้อย่อยอาจเป็นสีที่แตกต่างกับข้อความ
- หากผู้ใช้เพิ่มขนาดตัวอักษรสัญลักษณ์แสดงหัวข้อควรปรับสัดส่วน (ให้คุณตั้งค่าช่องว่างภายใน & ขอบเป็น EMS ไม่ใช่ px)
ข้อเสีย:
- ต้องใช้องค์ประกอบที่ไม่เป็นที่ต้องการ (ซึ่งอาจทำให้คุณเสียเพื่อนไปมากกว่านั้นในชีวิตจริง) แต่มันน่ารำคาญสำหรับผู้ที่ชอบรหัสของพวกเขาจะมีประสิทธิภาพและเป็นไปได้น้อยที่สุดและเป็นการละเมิดการนำเสนอและเนื้อหา HTML / CSS ที่ควรเสนอ)
- ไม่มีการควบคุมขนาดและรูปร่างของกระสุน
นี่คือความหวังสำหรับฟีเจอร์สไตล์ลิสต์ใหม่ใน CSS4 ดังนั้นเราจึงสามารถสร้างสัญลักษณ์แสดงหัวข้อย่อยที่ชาญฉลาดโดยไม่ต้องใช้รูปภาพหรือมาร์กอัป :)