почему {margin:auto;} не дает автоматических полей сверху и снизу?

Возможный дубликат:
Почему margin-top: auto и margin-bottom:auto не работают так же, как их левый и правый аналоги?

когда вы используете {margin:auto;}, он дает вам автоматическое поле с обеих сторон объекта, но вы не получаете их сверху и снизу объекта, почему это?

Например, если бы я хотел централизовать элемент в середине страницы, мне пришлось бы использовать {width:250px; height:250px; position: fixed; top: 50%; left: 50%; margin-top: -125px; margin-left: -125px;}

Surly margin auto должен обрабатывать это как для верхнего/нижнего, так и для левого/правого поля?


person sam    schedule 03.06.2012    source источник
comment
Это один из тех вопросов, которые мы, ветераны, всегда имели в виду, но подавляли его как мда, не имеет значения +1.   -  person Madara's Ghost    schedule 03.06.2012
comment
Когда вы используете margin:auto;, вы также используете position? Это зависит от position и без него.   -  person Sarfraz    schedule 03.06.2012
comment
@sarfra - Нет, только одно или другое   -  person sam    schedule 03.06.2012
comment
Это тот же вопрос: stackoverflow.com/questions/6775273/, хотя принятый ответ - это просто так сказано в спецификации - установить margin-top и margin-bottom равны 0 при использовании auto. (по-прежнему +1 от меня, потому что почему?)   -  person Faust    schedule 03.06.2012
comment
@BoltClock: потому что было бы невероятно полезно, чтобы margin:auto работал вертикально, как и горизонтально. Подумайте обо всех опубликованных здесь вопросах о том, как вертикально центрировать контент в div. Центрирование блока переменной высоты внутри другого блока может быть довольно сложной задачей.   -  person Faust    schedule 03.06.2012
comment
@Faust: Этот другой вопрос также спрашивает почему - возможно, вам также следует +1, если это еще не сделано. (Я удалил свой предыдущий комментарий, так как понял, что он не имеет смысла, и также проголосовал за вопрос.)   -  person BoltClock    schedule 03.06.2012