You can use either table-cell , as suggested by w3debugger, or you can use css quick hack to align vertically:
.yourclass{ position:absolute; top: 50%; transform: translateY(-50%) }
But this requires that the parent .yourclass element be position:relative and have the type display:block; . If your parent is a block, it will occupy the height of the block that is inside it, so the avatar that is next to .yourclass should also be display:block ,
I edited your example:
HTML:
<div class="header"> <div class="avatar"> <img src="http://i.imgur.com/pBcut2e.jpg" /> </div><div class="info"> <div class="name">Important person here </div> <div class="position">CHIEF DIGITAL STRATEGIST & CO-FOUNDER</div> </div> </div>
CSS
.header { width: 500px; background: aqua; margin: 0 auto; padding: 10px; position: relative; } .avatar img { width: 30%; border-radius: 50%; } .info{ box-sizing: border-box; padding: 0 40px; width: 70%; position:absolute; right: 0; vertical-align: top; top: 50%; transform: translateY(-50%) }
Live Preview:
https://jsbin.com/gogewefizo/1/edit?html,css,output
source share