Ich habe eine einfache Webseite mit einigen Lipsum-Inhalten, die auf der Seite zentriert sind. Die Seite funktioniert gut in Chrome und Firefox. Wenn ich die Größe des Fensters verkleinere, füllt der Inhalt das Fenster, bis es nicht mehr möglich ist, und fügt dann eine Bildlaufleiste hinzu und füllt den Inhalt außerhalb des Bildschirms nach unten.
Die Seite wird jedoch nicht in IE11 zentriert. Ich kann die Seite im IE zentrieren, indem ich den Körper biege. Wenn ich dies jedoch tue, wird der Inhalt vom Bildschirm nach oben verschoben und schneidet den oberen Rand des Inhalts ab.
Nachfolgend sind die beiden Szenarien aufgeführt. Siehe die zugehörigen Geigen. Wenn das Problem nicht sofort erkennbar ist, reduzieren Sie die Größe des Ergebnisfensters, sodass eine Bildlaufleiste generiert werden muss.
Hinweis: Diese Anwendung zielt nur auf die neuesten Versionen von Firefox, Chrome und IE (IE11) ab, die alle die Kandidatenempfehlung von Flexbox unterstützen. Daher sollte die Funktionskompatibilität (theoretisch) kein Problem darstellen.
Bearbeiten : Wenn Sie die Vollbild-API zum Vollbild des äußeren Bereichs verwenden, zentrieren alle Browser korrekt mit dem ursprünglichen CSS. Beim Verlassen des Vollbildmodus wird der IE jedoch wieder horizontal zentriert und vertikal oben ausgerichtet.
Bearbeiten : IE11 verwendet eine nicht herstellerspezifische Implementierung von Flexbox. Aktualisierungen des Layouts der flexiblen Box ("Flexbox")
Zentriert und ändert die Größe in Chrome / FF korrekt, zentriert nicht, ändert jedoch die Größe in IE11 korrekt
Geige: http://jsfiddle.net/Dragonseer/3D6vw/
html, body
{
height: 100%;
width: 100%;
}
body
{
margin: 0;
}
.outer
{
min-width: 100%;
min-height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.inner
{
width: 80%;
}
Zentriert überall korrekt und schneidet bei Verkleinerung von oben ab
Geige: http://jsfiddle.net/Dragonseer/5CxAy/
html, body
{
height: 100%;
width: 100%;
}
body
{
margin: 0;
display: flex;
}
.outer
{
min-width: 100%;
min-height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.inner
{
width: 80%;
}
-ms-flexbox
für IE verwenden ..