失敗した
考えが浅かった。
IEで透過pngを背景画像に敷き詰めるために、背景画像をもつ要素の最初の子として div要素 + vml:rect + vml:fill を追加していたが、このやり方では、padding を設定するとこうなってしまう。
解決方法は多分2つ
- paddingを無視して背景を配置する。つまり、親要素に対する offsetLeft, offseTop を算出し div要素のleft, top に還元し、親要素のcliendWidth(またはoffsetWidth), clientHeight(またはoffsetHeight)をdiv要素のサイズにする
- この方式の問題点は、実装が複雑すぎること
- 最初の子要素としてではなく、shim と同じ方法で配置する(shim = IE6でドラッグするとselectboxが突き抜けるバグを回避するため、ドラッグ要素の真後ろにiframeを配置するトリック)
- この方式の問題点は、追従性と負荷
一度svnにコミットしたあとで、これらをトライしてみる。