IE7のポジショニングとマージンに問題があります。絶対位置と自動マージンのあるdivがあります。
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
margin: auto;
このdivは、相対位置の親の中央に配置する必要があります。しかし、IE7ではこれは機能していません。動作するコードの例を次に示しますhttp://jsfiddle.net/3zwkA/
IE7のポジショニングとマージンに問題があります。絶対位置と自動マージンのあるdivがあります。
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
margin: auto;
このdivは、相対位置の親の中央に配置する必要があります。しかし、IE7ではこれは機能していません。動作するコードの例を次に示しますhttp://jsfiddle.net/3zwkA/
親のdivを完全に中央に配置したい場合は、次のようにする必要があります。
.child {
position: absolute;
top: 50%;
left: 50%;
width: 50px;
height: 50px;
margin-left:-25px;
margin-top:-25px;
border: 1px yellow solid;
}
更新されたjsfiddleを参照してください
CSSの垂直方向の中央揃えは、特にIE7(またはIE6)のサポートも必要な場合にPITAです。それを行うには多くの方法がありますが、それぞれに何らかの欠点があります。あなたの方法はリンクされた記事の方法4に対応し、IE<8で誤動作することが知られています。
ただし、幅と高さが固定されている要素の場合、より堅牢な方法(記事の方法2)は、要素を配置しtop: 50%; left: 50%
、上下の余白から幅の半分を差し引くことです。これはすべてのブラウザで機能します。ここで、フィドルがあります。
私の個人的な「ハック」は、左と上を使用して要素を配置し、負のマージンを使用して正しく移動することです。
position: absolute;
top: 50%;
left: 50%;
width: 50px;
height: 50px;
margin: -25px 0 0 -25px; //move it left by half the width