1

IE7のポジショニングとマージンに問題があります。絶対位置と自動マージンのあるdivがあります。

position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
margin: auto;

このdivは、相対位置の親の中央に配置する必要があります。しかし、IE7ではこれは機能していません。動作するコードの例を次に示しますhttp://jsfiddle.net/3zwkA/

4

3 に答える 3

3

親のdivを完全に中央に配置したい場合は、次のようにする必要があります。

.child {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 50px;
    height: 50px;
    margin-left:-25px;
    margin-top:-25px;
    border: 1px yellow solid;
}

更新されたjsfiddleを参照してください

于 2013-02-08T16:03:10.933 に答える
2

CSSの垂直方向の中央揃えは、特にIE7(またはIE6)のサポートも必要な場合にPITAです。それを行うには多くの方法がありますが、それぞれに何らかの欠点があります。あなたの方法はリンクされた記事の方法4に対応し、IE<8で誤動作することが知られています。

ただし、幅と高さが固定されている要素の場合、より堅牢な方法(記事の方法2)は、要素を配置しtop: 50%; left: 50%、上下の余白から幅の半分を差し引くことです。これはすべてのブラウザで機能します。ここで、フィドルがあります。

于 2013-02-08T16:03:10.920 に答える
2

私の個人的な「ハック」は、左と上を使用して要素を配置し、負のマージンを使用して正しく移動することです。

position: absolute;
top: 50%;
left: 50%;
width: 50px;
height: 50px;
margin: -25px 0 0 -25px;  //move it left by half the width
于 2013-02-08T16:11:04.210 に答える