Я проверял это в IE8 , Firefox, Chrome. Это не работает в IE7.
Если вам нужно, чтобы это работало в <= IE7, я думаю, самое простое решение - отказаться от чистого CSS и использовать javascript для вертикального позиционирования. </p>
Live Demo
HTML:
<div id="container">
<div id="content">
<input type="button" value="click me" onclick="javascript:document.getElementById('content').innerHTML += 'i i i i i i i i i i i i i i i i i i i i i i i i i<br />';" /><br />
i i i i i i i i i i i i i i i i i i i i i i i i i<br />
i i i i i i i i i i i i i i i i i i i i i i i i i<br />
i i i i i i i i i i i i i i i i i i i i i i i i i<br />
i i i i i i i i i i i i i i i i i i i i i i i i i<br />
</div>
</div>
CSS:
html, body {
margin: 0;
padding: 0;
border: 0;
width: 100%;
height: 100%
}
body {
display: table
}
#container {
width: 100%;
display: table-cell;
vertical-align: middle
}
#content {
background: red;
width: 90%;
margin: 0 auto;
min-height: 150px
}