我花了很长时间在网上搜索并自己进行试验。最后,我偶然发现了此处记录的解决方案:
http://css-tricks.com/centering-in-the-unknown/
...它采用了垂直对齐:中间和使用伪类:before创建的“幽灵元素”(垂直对齐工作所需) ,以避免非语义标记。
HTML:
<div class="wrapper">
    <div class="centered">
        This div will be centered.
    </div>
</div>
CSS:
.wrapper {
    width: 100%;
    height: 100%;
    text-align: center;
}
.wrapper:before {
    content: '';
    display: inline-block;
    width: 0px;
    height: 100%;
    vertical-align: middle;
}
.centered {
    display: inline-block;
    vertical-align: middle;
    width: 650px;
}
要在整个浏览器窗口中居中上述内容,需要以下 CSS:
html {
    height: 100%;
}
body {
    height: 100%;
    margin: 0px;
    padding: 0px;
}
笔记:
- 此解决方案不适用于 -IE7
- 原始解决方案在 ghost 元素上使用width: 1px和margin-right: -0.25em 。我已替换为width: 0px