Javascript IE中的非目标绝对定位元素

Javascript IE中的非目标绝对定位元素,javascript,css,internet-explorer,css-position,Javascript,Css,Internet Explorer,Css Position,我有一堆绝对定位的元素通过javascript生成到一个div中。 每个元素的位置在垂直方向上各不相同。但是IE每3个元素添加一个额外的垂直像素,然后每2个元素添加一个,然后每3个元素添加一个 等等,一张图片解释道: 我已将背面的功能块涂成红色,正确的功能块涂成绿色。 Chrome能够正确地呈现它(Firefox也是如此): 当我使用IE开发者工具时,我可以看到CSS设置正确: 我曾尝试向元素添加zoom:1,但这似乎没有什么不同 添加元素的代码如下所示: var element =

我有一堆绝对定位的元素通过javascript生成到一个div中。 每个元素的位置在垂直方向上各不相同。但是IE每3个元素添加一个额外的垂直像素,然后每2个元素添加一个,然后每3个元素添加一个

等等,一张图片解释道:

我已将背面的功能块涂成红色,正确的功能块涂成绿色。 Chrome能够正确地呈现它(Firefox也是如此):

当我使用IE开发者工具时,我可以看到CSS设置正确:

我曾尝试向元素添加
zoom:1
,但这似乎没有什么不同

添加元素的代码如下所示:

var element = document.createElement("a");
element.style.fontSize = "6pt";
element.style.width = "20px";
element.style.height = "20px";
element.style.position = "absolute";
element.style.backgroundColor = "red";
element.style.zoom = "1";
element.style.display = "block";
var tofs = (columns * 2 + r * 20 - (c * 2));
var lofs = (c * 14 + (r + offset) * 9);
trace(c + "," + r + ": " + lofs + "," + tofs);
element.style.top = tofs + "px";
element.style.left = lofs + "px";
element.style.textIndent = "-10000px";
element.style.overflow = "hidden";
element.innerText = t;
element.selectable = "no";
setBackgroundForSeat(t, element);
target.append(element);
当检测到IE时,我尝试过每3个然后2个元素调整一次偏移量,但这不起作用:与下一个元素的实际视觉差异变成
1px
,而不是所需的
2px
(如果没有hack,它是
3px

我已经没有主意了。有人吗


更新:这里有一个JS摆弄描述的行为

我知道IE工具栏告诉您它正确设置了CSS,但它可能在实际值上撒谎。从您的代码中,看起来您将获得浮点值,并且IE在绘制对象时似乎产生舍入错误


在使用像素值之前,您可以尝试将其强制转换为整数,但这可能会在所有浏览器中产生不需要的结果。

这很奇怪。尝试计算
底部
位置,可能同时设置
顶部
底部
会使IE表现不同?尽管6pt<20px,尝试将行高和/或字体大小设置为较小的值。JSFIDLE也会很有帮助,不是字体大小。我试过摆弄它,但没有用。我会看看我是否能摆弄一把JS小提琴。我添加了一个JS小提琴的例子。我没有得到浮点值
r
c
是整数(“行”和“列”)。
偏移量
也是如此。所以这不是问题所在。