If you have been coding HTML and CSS for any length of time you have most likely encountered a design that wanted to to align something vertically within it's container. Unless you want to add a ton of tables to your site this isn't always an easy task to accomplish. I know that I have struggled with it on more than one occasion.
Did you know that you can set divs to display: table and table-cell? I sure didn't but you can and it works really well but there doesn't seem to be a blanket solution that works everywhere every time you need to align something vertically. It would seem that they key to understanding how to do this lays within understanding your css and assessing your unique situation.
Much thanks to this guy over at VanSEO for his very thorough and informative article on the various solutions out there. This is an extremely comprehensive guide and should you encounter this problem in your next implementation I highly recommend you check it out.http://www.vanseodesign.com/css/vertical-centering/