สมมติว่าฉันมี HTML นี้:
<h3>Features</h3>
<ul>
<li><img src="alphaball.png">Smells Good</li>
<li><img src="alphaball.png">Tastes Great</li>
<li><img src="alphaball.png">Delicious</li>
<li><img src="alphaball.png">Wholesome</li>
<li><img src="alphaball.png">Eats Children</li>
<li><img src="alphaball.png">Yo' Mama</li>
</ul>
และ CSS นี้:
li { text-align:center; display:inline-block; padding:0.1em 1em }
img { width:64px; display:block; margin:0 auto }
สามารถดูผลลัพธ์ได้ที่นี่: http://jsfiddle.net/YMN7U/1/
ทีนี้ลองนึกดูว่าฉันต้องการแยกสิ่งนี้ออกเป็นสามคอลัมน์ซึ่งเท่ากับการฉีด a <br>
หลังจากสาม<li>
อัน (จริง ๆ แล้วการทำเช่นนั้นจะไม่ถูกต้องทางความหมายและ syntactically)
ฉันรู้วิธีเลือกตัวที่สาม<li>
ใน CSS แต่ฉันจะบังคับให้ตัวแบ่งบรรทัดหลังจากนั้นได้อย่างไร สิ่งนี้ไม่ทำงาน:
li:nth-child(4):after { content:"xxx"; display:block }
ผมยังไม่ทราบว่ากรณีนี้โดยเฉพาะอย่างยิ่งเป็นไปได้โดยใช้float
แทนแต่ผมไม่ได้สนใจในการแก้ปัญหาโดยใช้inline-block
float
ฉันรู้ว่าด้วยบล็อกความกว้างคงที่นี้เป็นไปได้โดยการตั้งค่าความกว้างบนพาเรนต์เป็นul
ประมาณ 3x ฉันไม่สนใจวิธีนี้ ฉันก็รู้ว่าฉันสามารถใช้display:table-cell
ถ้าฉันต้องการคอลัมน์จริง; ฉันไม่สนใจวิธีนี้ ฉันสนใจในความเป็นไปได้ของการบังคับให้แบ่งเนื้อหาอินไลน์
แก้ไข : เพื่อความชัดเจนฉันสนใจ 'ทฤษฎี' ไม่ใช่วิธีแก้ปัญหาเฉพาะ CSS สามารถฉีดเส้นแบ่งตรงกลางdisplay:inline(-block)?
องค์ประกอบหรือเป็นไปไม่ได้ หากคุณมั่นใจว่าเป็นไปไม่ได้นั่นเป็นคำตอบที่ยอมรับได้