Ответ 1
Он больше не центрирован, потому что теперь он течет на странице так же, как и элементы inline
(очень похожие на элементы img
). Вы должны text-align: center
содержать элемент, чтобы центрировать inline-block
div
.
У меня есть "контейнер" div
, на который я дал margin:auto;
, который работал нормально, пока я дал ему конкретный width
, но теперь я изменил его на inline-block
и margin:auto;
isnt working
#container {
border: 1px solid black;
height: 500px;
width: 650px;
}
.MtopBig {
margin-top: 75px;
}
.center {
margin-left: auto;
margin-right: auto;
text-align: center;
}
#container {
border: 1px solid black;
display: inline-block;
padding: 50px;
}
.MtopBig {
margin: 75px auto;
position: relative;
}
.center {
text-align: center;
}
Он больше не центрирован, потому что теперь он течет на странице так же, как и элементы inline
(очень похожие на элементы img
). Вы должны text-align: center
содержать элемент, чтобы центрировать inline-block
div
.
Что означает "auto":
Использование auto
для горизонтального поля даст команду элементу заполнить доступное пространство (источник: http://www.hongkiat.com/blog/css-margin-auto/).
Почему "display: inline-block" не центрируется:
Нет доступного горизонтального пространства в встроенной настройке. До и после этого есть другие встроенные элементы (символы), которые занимают собственное пространство. Следовательно, элемент будет действовать так, как если бы горизонтальный запас был равен нулю.
Почему 'display: block' центры:
При использовании в качестве элемента с display: block
, установленным для него, доступное горизонтальное пространство будет представлять собой полную ширину родительского элемента минус ширина самого элемента. Это имеет смысл, потому что display: block
резервирует это горизонтальное пространство (тем самым делая его "доступным" ). Обратите внимание, что элементы с display: block
не могут располагаться рядом друг с другом. Единственное исключение возникает, если вы используете float
, но в этом случае вы также получаете (ожидаемое) поведение с нулевой маржей, так как это отключает горизонтальную "доступность".
Решение для элементов inline-block:
Элементы с display: inline-block
должны подходить как символы. Центрирование символов/текста можно сделать, добавив text-align: center
к их родительскому объекту (но вы, вероятно, знали это уже...).
Для элементов со свойством display: inline-block; Вычисленное значение "auto" для "margin-left" или "margin-right" становится используемым значением "0".