Подтвердить что ты не робот

Как центрировать элемент "позиция: абсолютный" в IE 9,10,11

Как центрировать элемент "position: absolute" в IE 9, 10, 11, мой пример не работает в Internet Explorer. Также эта "позиция: абсолютная, левая: 50%, margin-left: -20px;", манера меня не устраивает, так как макет реагирует.

.box{
    position: absolute;
    top: 150px;
    right: 0;   
    left: 0;
    margin: auto;       
}

<body>
<div class="container">
<div class="box">
</div>
</div>
</body>
4b9b3361

Ответ 1

<body>
<div class="container">
<div class="box">
</div>
</div>
</body>

CSS

.box{
    position: absolute;
    top:0;
    right: 0;   
    left: 0;
    bottom:0;   //specify all including bottom:0
    margin: auto;
    height:200px;
    width:200px;       
}

DEMO

Ответ 2

Просто дайте ему фиксированную ширину и высоту и удалите верх: 150px

Ответ 3

Здесь отлично работает Jsfiddle

.box{
position: absolute;
top: 150px;
right: 0;   
left: 0;
margin: auto;   
border: 2px solid red;    
width: 50px;
height: 50px;
}

Ответ 4

Я просто боролся с этим сам, и конкретный ключ для меня менял свойство max-width как свойство width. Добавление max-width не нарушает его, но оно полагается на свойство width в IE, по-видимому, где в Firefox он работал только с максимальным набором.

Я надеюсь, что это поможет кому-то еще!

Ответ 5

Вам не нужно устанавливать свойство bottom (даже в IE), чтобы центрировать этот элемент по горизонтали.

Однако, если вы хотите вертикально центрировать элемент, вам понадобится нижнее свойство в сочетании с автоматической маркой сверху и снизу.

Если ваш элемент будет располагаться только горизонтально, а "bottom" установлен на 0, то в вашем коде есть что-то противоречащее, заставляющее вас использовать это свойство. Я видел это раньше в Bootstraps Ecosystem, не применяя правильную иерархию контейнера → строка и т.д.