最近、同様の問題がありました。この問題にはもっと洗練された解決策があるかもしれませんが、私が問題を解決した方法は、Javascript/jQuery を使用して条件付きで要素のスタイルを設定することでした。残念ながら、これには HTML マークアップを変更して、中央に配置する要素にクラス .vCenterIE7 (またはその他) を追加し、要素を中央に配置する要素に別のクラス .vCenterIE7Rel を追加する必要があります。
また、これはユーザーが IE7 を使用しているかどうかを検出するための完全に信頼できる方法ではないこともわかっています (modernizr の方が信頼性が高いです)。
脚本:
function vCenterIE7() {
if (navigator.userAgent.toLowerCase().indexOf('msie 7') > -1) {
var els = $('.vCenterIE7');
for (var i = 0; i < els.length; i++) {
var c = els.eq(i);
var b = c.closest('.vCenterIE7Rel');
var mtop = b.height() / 2;
mtop -= c.height() / 2;
c.css('margin-top',mtop);
}
}
}