offsetLeft中的一个像素错误(Firefox)

时间:2016-07-21 17:36:41

标签: javascript firefox

假设我有一个像这样的简单结构:

<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。

0 个答案:

没有答案