JavaScriptを介してdivに生成される絶対配置要素がたくさんあります。各要素の配置は上下に 2px ずつ異なります。ただし、IE は 3 要素ごとに追加の垂直ピクセルを追加し、次に 2 要素ごとに 1 つ追加し、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);
1px
IE が検出されたときに 3 要素ごとに 2 要素ごとにオフセットを調整しようとしましたが、うまくいきませ2px
ん3px
。
アイデアが尽きた。誰か?
更新:これは、説明されている動作を備えた JS フィドルです。http://jsfiddle.net/uGHDh/5/