From http://coding.smashingmagazine.com/2013/08/09/absolute-horizontal-vertical-centering-css/