Katakanlah saya punya HTML ini:
<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>
dan CSS ini:
li { text-align:center; display:inline-block; padding:0.1em 1em }
img { width:64px; display:block; margin:0 auto }
Hasilnya bisa dilihat di sini: http://jsfiddle.net/YMN7U/1/
Sekarang bayangkan saya ingin memecah ini menjadi tiga kolom, setara dengan menyuntikkan <br>
setelah ketiga <li>
. (Sebenarnya melakukan hal itu secara semantik dan sintaksis tidak valid.)
Saya tahu cara memilih yang ketiga <li>
dalam CSS, tetapi bagaimana cara memaksa pemecah baris setelahnya? Ini tidak bekerja:
li:nth-child(4):after { content:"xxx"; display:block }
Saya juga tahu bahwa kasus khusus ini dimungkinkan dengan menggunakan float
alih-alih inline-block
, tetapi saya tidak tertarik menggunakan solusi float
. Saya juga tahu bahwa dengan blok lebar tetap ini dimungkinkan dengan mengatur lebar pada induk ul
menjadi sekitar 3x lebar itu; Saya tidak tertarik dengan solusi ini. Saya juga tahu bahwa saya dapat menggunakan display:table-cell
jika saya menginginkan kolom yang nyata; Saya tidak tertarik dengan solusi ini. Saya tertarik pada kemungkinan memaksa jeda dalam konten inline.
Sunting : Agar jelas, saya tertarik pada 'teori', bukan solusi untuk masalah tertentu. Bisakah CSS menyuntikkan satu baris di tengah display:inline(-block)?
elemen, atau apakah itu mustahil? Jika Anda yakin itu tidak mungkin, itu adalah jawaban yang dapat diterima.