Using pseudo elements to vertically align any content

HTML

<div class="center-contain">
        <div class="center-this"> Everything in this div will be centered in IE8 or greater</div>
    </div>

CSS

.center-contain{
        background: yellow;
        display:block;
        height: 300px;
        white-space: nowrap; /* prevents linebreaking */
        overflow: hidden; /* hides overflow */
    }
    .center-contain:after{
        content: '';
        display: inline-block;
        height: inherit;
        vertical-align: middle;
        width:0;
    }
    .center-contain > .center-this{
        background: red;
        display: inline-block;
        width:100%;
        white-space: normal; /* enables linebreaking */
    }