Mam prostą stronę internetową z zawartością Lipsum, która jest wyśrodkowana na stronie. Strona działa dobrze w Chrome i Firefox. Jeśli zmniejszę rozmiar okna, zawartość wypełnia okno, aż nie może, a następnie dodaje pasek przewijania i wypełnia zawartość poza ekranem, w dół.
Jednak strona nie jest wyśrodkowana w IE11. Mogę wyśrodkować stronę w IE, wyginając ciało, ale jeśli to zrobię, zawartość zacznie znikać z ekranu w górę i obcina górę zawartości.
Poniżej znajdują się dwa scenariusze. Zobacz powiązane Skrzypce. Jeśli problem nie jest od razu widoczny, zmniejsz rozmiar okna wyników, tak aby było zmuszone do wygenerowania paska przewijania.
Uwaga: ta aplikacja jest przeznaczona tylko dla najnowszych wersji przeglądarek Firefox, Chrome i IE (IE11), które obsługują rekomendację kandydata Flexbox , więc kompatybilność funkcji nie powinna stanowić problemu (teoretycznie).
Edycja : podczas używania pełnoekranowego interfejsu API do pełnoekranowego zewnętrznego elementu div, wszystkie przeglądarki prawidłowo wyśrodkowują, używając oryginalnego CSS. Jednak po wyjściu z trybu pełnoekranowego IE powraca do wyśrodkowania w poziomie i wyrównania do góry w pionie.
Edycja : IE11 używa implementacji Flexbox innej niż producent. Aktualizacje układu elastycznego pudełka („Flexbox”)
Centruje i zmienia rozmiar poprawnie w Chrome / FF, nie wyśrodkowuje, ale poprawnie zmienia rozmiar w IE11
Skrzypce: 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%;
}
Wyśrodkowuje się wszędzie, odcina od góry, gdy jest mniejszy
Skrzypce: 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
dla IE ..