В этом примере изображение не центрировано. Зачем? Мой браузер - это Google Chrome v10 в Windows 7, а не IE.
<img src="/img/logo.png" style="margin:0px auto;"/>
В этом примере изображение не центрировано. Зачем? Мой браузер - это Google Chrome v10 в Windows 7, а не IE.
<img src="/img/logo.png" style="margin:0px auto;"/>
Ответы:
добавьте, display:block;и он будет работать. По умолчанию изображения встроены
Чтобы уточнить, ширина по умолчанию для blockэлемента равна auto, что, конечно, заполняет всю доступную ширину содержащего элемента.
Устанавливая для поля значение auto, браузер назначает половину оставшегося места для, margin-leftа другую половину margin-right.
margin:autoцентрирования элемента в потоке. ( display:blockили display:table, position:staticили position:relativeи т. д.)
0px autoэто просто, autoэто все равно не сработает.
display: flex; align-items: center; justify-content: centerи теперь ваш контент центрирован по горизонтали и вертикали. Или переместите это в align-self: center; justify-self: centerсам контент. css-tricks.com/snippets/css/a-guide-to-flexbox
В некоторых случаях (например, более ранних версиях IE, Gecko, Webkit) и наследования, элементы с position:relative;помешают margin:0 auto;работать, даже если top, right, bottomи leftне установлены.
Установка элемента на position:static;(по умолчанию) может исправить это в этих обстоятельствах. Как правило, элементы уровня блока с заданной шириной будет соблюдать с margin:0 auto;использованием либо relativeили staticпозиционирования.
margin: 0 autoотлично работает с относительно позиционированными элементами, если они являются блочными элементами без поплавка и заданной шириной ...
floatи, displayмогут изменить это поведение.
Вы можете центрировать div с автоматической шириной, используя display:table;
div{
margin: 0px auto;
float: none;
display: table;
}
В моем случае проблема заключалась в том, что я установил минимальную и максимальную ширину без самой ширины .
position:static, иметь фиксированный width:набор и быть display:blockэлементом
Когда мы не добавляем ширину и не добавляем margin:auto, я думаю, это не сработает. Это из моего опыта. Ширина дает представление о том, где именно нужно обеспечить равные поля.
есть альтернатива margin-left:auto; margin-right: auto;или margin:0 auto;для тех, которые используют position:absolute;это как:
вы устанавливаете левую позицию элемента на 50% (left:50%; ), но это не будет центрировать его правильно, чтобы элемент был центрирован правильно, вам нужно дать ему край минус половина его ширины, который идеально центрирует ваш элемент
вот пример: http://jsfiddle.net/35ERq/3/
Я помню, как однажды я потратил много времени, пытаясь центрировать div, используя margin: 0 auto.
У меня было display: inline-blockна нем, когда я его удалил, div правильно центрировался.
Как заметил Росс, это не работает со встроенными элементами.