В этом примере изображение не центрировано. Зачем? Мой браузер - это 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 правильно центрировался.
Как заметил Росс, это не работает со встроенными элементами.