The vertical-align property in css is a bit redundant. That property will only align inline elements and not box elements like a div.
You could change the div element to be emulated as a table level element:
Code:
display: table-cell; vertical-align: middle;