Próbuję utworzyć listę numerowaną, gdzie każdy element li
zawiera obraz i blok tekstu. Numer listy, obraz i blok tekstu powinny być wyrównane w pionie wzdłuż poziomej linii środkowej. Blok tekstowy może składać się z wielu linii. Oto bardzo szorstki ilustracji:CSS: czy istnieje sposób pionowego wyrównania liczb/punktorów przed każdym elementem listy?
Najbliżej mam osiągnięty jest następujący, który wyrównuje list-numer na dole (przetestowane w Chrome 15, Firefox 8, IE9). Zobacz także jsfiddle mockup.
<style type="text/css">
li div { display: inline-block }
li div div { display: table-cell; vertical-align: middle }
</style>
<ol>
<li><div><div><img src=widget.png></div><div>Caption Text Here</div></div></li>
</ol>
Czy istnieje międzyplatformowy sposób robienia tego bez konieczności samodzielnego numerowania?
Edytuj. Jeszcze jedno wymaganie: jeśli szerokość kontenera jest bardzo mała (np. Podczas przeglądania na urządzeniu mobilnym), blok tekstu musi pozostać po prawej stronie obrazu. Wokół zdjęcia nie powinno się zawijać tekstu.
Dziękuję bardzo za odpowiedź, ale to nie spełnia wymogu wielowierszowego pola tekstowego. – dlh
Naprawdę tylko niewielka zmiana ... nadal za pomocą 'vertical-align: middle;' http://jsfiddle.net/Wexcode/uGuD8/1/ – Wex
Ale jeśli twój blok tekstu jest szerszy niż zmieści się w kontenerze nadrzędnym, cały blok tekstu zostanie wyświetlony poniżej obrazu. Chciałbym, aby tekst znajdował się po prawej stronie obrazu, niezależnie od szerokości kontenera. – dlh