它经常发生,我想在另一个垂直和水平方向居中一个 CSS 框。满足以下约束的最简单方法是什么?
- 盒子应该精确居中,而不是近似居中。
- 该技术应该适用于现代浏览器和 IE 版本回到 8
- 该技术不应依赖于明确知道居中内容或包含框的宽度或高度。
- 我通常知道容器比内容大,但支持更大的内容(然后对称溢出)会很好......
- 容器的底层内容必须仍然能够响应点击和悬停,除非被居中内容遮挡
我目前使用 4 个(!)嵌套 div 来实现这一点,css 如下:
.centering-1 {
position:absolute;
top:0; left:0; right:0; bottom:0;
text-align:center;
visibility:hidden;
}
.centering-2 {
height:100%;
display:inline-table;
}
.centering-3 {
display:table-cell;
vertical-align:middle;
}
.centering-content {
visibility:visible;
}
您可以将其视为 jsbin 片段。然而,这种方法虽然可行,但由于包装器 div 的数量很大,感觉有点矫枉过正,而且它不适用于比容器大的内容。如何在 CSS 中居中?