Я использую следующий CSS, чтобы центрировать div в середине моей страницы:
.someWrapper {
width: 100%;
height: 100%;
position: relative;
}
.centredDiv {
width: (some width);
height: (some height)
position: absolute;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
Я тестировал это в Chrome, Firefox и Safari, и он работает по назначению. Тем не менее, в Internet Explorer (тестирование на IE11), когда он центрирует div в середине окна, IE, похоже, считает, что все еще есть невидимый "призрак div" 50% и 50% вниз, который не был преобразован.
Это приводит к созданию целого пучка белого переполнения и ненужных полос прокрутки в нижнем правом углу экрана. Если я включу переполнение: скрытое, это может устранить проблему, но это не выполнимый вариант на моем веб-сайте.
Итак, почему IE делает это и есть ли простой способ обойти его?
EDIT: Следующий код иллюстрирует проблему. Откройте код в Chrome или Firefox, нет переполнения. Откройте его в IE (тестирование в IE11), и вы увидите переполнение, вызывающее пустое пространство и полосы прокрутки вниз и вправо.
<!DOCTYPE HTML>
<html>
<head>
<style>
html, body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
#wrapper {
width: 100%;
height: 100%;
position: relative;
}
#centred {
width: 90%;
height: 90%;
position: absolute;
top: 50%;
left: 50%;
background-color: red;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
</style>
</head>
<body>
<div id="wrapper">
<div id="centred">
Hello world!
</div>
</div>
</body>
</html>