失敗した

考えが浅かった。

IEで透過pngを背景画像に敷き詰めるために、背景画像をもつ要素の最初の子として div要素 + vml:rect + vml:fill を追加していたが、このやり方では、padding を設定するとこうなってしまう。

解決方法は多分2つ

  1. paddingを無視して背景を配置する。つまり、親要素に対する offsetLeft, offseTop を算出し div要素のleft, top に還元し、親要素のcliendWidth(またはoffsetWidth), clientHeight(またはoffsetHeight)をdiv要素のサイズにする
    • この方式の問題点は、実装が複雑すぎること
  2. 最初の子要素としてではなく、shim と同じ方法で配置する(shim = IE6でドラッグするとselectboxが突き抜けるバグを回避するため、ドラッグ要素の真後ろにiframeを配置するトリック)
    • この方式の問題点は、追従性と負荷

一度svnにコミットしたあとで、これらをトライしてみる。