Flexbox is the most obvious choice, though if browser support becomes and issue, CSS Table does this as easy as Flexbox does.
Updated (Thanks to Gaby aka G. Petrioli)
Firefox, for some reason, seems to no longer honor min-height
on a table
. Luckily table
elements grows with their content, so by simple change min-height
to height
it will work.
div.row {
display: table;
width: 100%;
border: 1px dotted black;
height: 65px;
}
div.content {
display: table-cell;
vertical-align: middle;
}
<div class="row">
<div class="content">
This is a case where we have a small text;
</div>
</div>
<div class="row">
<div class="content">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum sagittis felis ultricies fermentum elementum. Duis sollicitudin, ligula in posuere sagittis, nibh ex imperdiet ante, quis efficitur est nisl quis nulla. Donec pharetra feugiat arcu sed hendrerit. Integer aliquet porta erat, quis aliquet eros. Sed in pulvinar felis, eget lobortis dui. Vestibulum vitae imperdiet orci, in varius magna. Praesent venenatis, eros quis tristique accumsan, justo tellus tempus metus, vitae pellentesque nisl risus eu diam. Suspendisse lobortis ex et fringilla mattis.
</div>
</div>