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

Почему не маржинальная: auto и margin-bottom: авто работают так же, как их левые и правые копии?

Если я устанавливаю свойства поля margin в div так:

div { margin-left: auto; margin-right: auto; }

Я получаю div, который расположен по горизонтали на странице, так.

Однако, если я изменил CSS на это:

div { margin-top: auto; margin-bottom: auto; }

мой div не вертикально центрирован. Мне не нужно знать обходное решение (множество решений доступны), но я хотел бы знать причину такого поведения. Почему же маргинальные и краевые дни не работают одинаково? Что мне не хватает?

4b9b3361

Ответ 1

Короткий ответ - это так говорит спецификация.

10.6.2 Встроенные замещенные элементы, замещенные на уровне блока элементы в нормальном потоке, замененные элементы inline-block в нормальном потоке и плавающие заменяемые элементы

Если "margin-top" или "margin-bottom" являются "auto", их используемое значение равно 0.

http://www.w3.org/TR/CSS2/visudet.html#Computing_heights_and_margins