I′m trying to align an image and a text vertically:
+-------------------------+ -- Viewport
| Text text text |
| +-----+ text text text |
| |IMAGE| text text text |
| +-----+ text text text |
| text text text |
+-------------------------+
This works fine, if the text is not wrapped. If the Text is wider than the viewport-width, it does not work anymore. I think this is caused by setting display: inline-block:
<a href="#">
<img style="display: inline-block; vertical-align: middle; margin-right: 8px;" src="images/arrow_black.png" />
<span style="display: inline-block; vertical-align: middle;">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonum eirmod tempor invidunt ut labore et dolore
</span>
</a>
The result:
+---------------------------------------------------------------------+ -- Viewport
| |
| +-----+ |
| |IMAGE| text text text text text text text text text text text text |
| +-----+ |
| |
+---------------------------------------------------------------------+
+-------------------------+ -- Viewport
| +-----+ Text text text |
| |IMAGE| text text text |
| +-----+ text text text |
| text text text text |
+-------------------------+
If I try to float the elements, the image will always be on top, but not vertical-aligend in the middle of the text:
<a href="#">
<img style="display: block; vertical-align: middle; margin-right: 8px; float: left;" src="/images/arrow_black.png" />
<span style="display: block; overflow: auto;">
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</span>
</a>
The result:
+-------------------------+ -- Viewport
| +-----+ Text text text |
| |IMAGE| text text text |
| +-----+ text text text |
| text text text |
| text text text |
| text text text |
+-------------------------+
I′ve seen several solutions for this problem, using html-tables or css-tables (display: table and display: table-cell), but this is not an option, because it must work with all types of browsers (desktop and mobile).
To that, I do not know any sizes. Neither of the image nor of the text. So I can't use any "margin- or padding-Solution".
EDIT: I′ve created a demo-fiddle (based on the one NGLN has created, BTW: Thanks for that!) that show the result i′m looking for. But I try to archive this without using display: table-cell... any ideas?
See Question&Answers more detail:
os