我花了很长时间在网上搜索并自己进行试验。最后,我偶然发现了此处记录的解决方案:
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