要素の子を取得し、CSS を使用してそれらを垂直方向に配置する次のスクリプトを作成しました。このスクリプトは、IE を除く、私がテストしたすべての主要なブラウザーでうまく機能します。
要素の位置の値を変更しているので、コンテナ オブジェクトの幅と高さを設定し、スクリプトが完了すると、子の上部と左側が同じ場所に表示されるようにします。IE は、offsetTop/offsetLeft をうまく処理できません。
コンテナーのサイズを維持する:
element.style.width = element.offsetWidth + 'px';
element.style.height = element.offsetHeight + 'px';
子供の位置を保つ:
child.style.top = child.offsetTop + 'px';
child.style.left = child.offsetLeft + 'px';
子供のアライメント:
child.style.top = parent.offsetHeight / 2 - child.offsetHeight / 2 + 'px';
何か案は?
アルゴリズムの改善も喜んで受け入れられます。