假设我有一个像这样的简单结构:
<div class="a">
<div class="b"></div>
</div>
我想同时为#a
和#b
提供固定的宽度和高度,然后将中心#b
放在#a
中:
#a { width: 199px, height: 199px; position: relative; }
#b { width: 100px; height: 100px; position: absolute;
top: 0; bottom: 0; left: 0; right: 0; margin: auto }
这里唯一的技巧是它不能完全居中,因为差异是99px并且不能均匀分割,因此在某处会有单像素移位。问题是屏幕显示了一件事,但JavaScript报告了另一件事。如果我阅读offsetLeft
的{{1}},我会看到50px,但是当我在屏幕截图上实际测量它时,它是49px。 (#b
似乎没问题,虽然在真正的应用程序中我似乎也得到了一个像素的错误)。
这里是JSFiddle。
这是Firefox 47.0。