Vertikal-center-Elemente in IE9 mit CSS
Ich habe versucht, verwenden Sie den folgenden code zum zentrieren einer <div>
in einem anderen <div>
durch die Verwendung von CSS, aber es funktioniert nur in Chrome, nicht mit IE9 und Firefox 13.0.1.
Das folgende ist meine HTML Datei:
<!DOCTYPE HTML>
<html>
<head>
<link type="text/css" rel="stylesheet" href="test.css">
<title>test</title>
</head>
<body>
<div class="container">
<div class="center">abc</div>
</div>
</body>
</html>
Folgende ist meine CSS-Datei:
.container{
position: relative;
border: 1px solid black;
width: 600px;
height: 400px;
position: relative;
}
.center {
border: 1px solid blue;
width: 300px;
height: 200px;
position: absolute;
margin-left: 50%;
margin-top: 50%;
top: -100px;
left: -150px;
}
Fand ich eine andere einfachere problem. Wenn ich den code entfernen top: -100px
im obigen CSS-Datei, die untere Grenze der innere div soll genau decken die äußeren div-unteren Rand, da die inneren div-Höhe ist 200px und dem äußeren div die Höhe 400px, und legen Sie dann das innere div margin-top: 50%
. Beide divs' unteren Grenzen sollten zusammen sein, aber Sie sind nicht.
Ich fand auch heraus, dass margin-top:50%
hängt von äußeren div-Breite. Wenn die Breite länger ist, dann margin-top: 50%
wird der innere div-gehen weiter nach unten. Es ist so komisch. Wer kennt die Gründe?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bei Verwendung von Prozentsätzen für die Margen, die Prozentangaben immer in relation zu der Breite des enthaltenden Elements (Quelle).
Tauschen Sie Ihre
margin-top
fürtop
undmargin-left
fürleft
, und es sollte funktionieren:http://jsfiddle.net/rcnWy/1/
position: absolute;
und hinzufügenmargin: 100px 150px;
.