No presente exemplo, a imagem não está centrada. Por quê? Meu navegador é o Google Chrome v10 no Windows 7, não o IE.
<img src="/img/logo.png" style="margin:0px auto;"/>
No presente exemplo, a imagem não está centrada. Por quê? Meu navegador é o Google Chrome v10 no Windows 7, não o IE.
<img src="/img/logo.png" style="margin:0px auto;"/>
Respostas:
adicione display:block;
e funcionará. As imagens são embutidas por padrão
Para esclarecer, a largura padrão de um block
elemento é auto
, o que naturalmente preenche toda a largura disponível do elemento que o contém.
Ao definir a margem como auto
, o navegador atribui metade do espaço restante a margin-left
e a outra metade a margin-right
.
margin:auto
centralizar um item no fluxo. ( display:block
ou display:table
, position:static
ou position:relative
, etc.)
0px auto
para apenas auto
ele ainda não funcionará.
Em algumas circunstâncias (como versões anteriores do IE, Gecko, Webkit) e herança, elementos com position:relative;
impedirá margin:0 auto;
de trabalhar, mesmo se top
, right
, bottom
, e left
são não definido.
Definir o elemento como position:static;
(o padrão) pode corrigi-lo nessas circunstâncias. Geralmente, os elementos de nível de bloco com uma largura especificada respeitarão margin:0 auto;
o posicionamento relative
ou static
.
margin: 0 auto
funciona bem em elementos relativamente posicionados, desde que sejam elementos de bloco sem flutuação e com uma largura especificada ...
float
e display
possam alterar esse comportamento.
Você pode centralizar a largura automática div usando display:table;
div{
margin: 0px auto;
float: none;
display: table;
}
No meu caso, o problema era que eu havia definido a largura mínima e máxima sem a própria largura .
position:static
, ter um width:
conjunto fixo e ser um display:block
elemento
Sempre que não adicionamos largura e adicionamos margin:auto
, acho que não funcionará. É por experiência própria. A largura dá a ideia de onde exatamente ele precisa para fornecer margens iguais.
existe uma alternativa para margin-left:auto; margin-right: auto;
ou margin:0 auto;
para aqueles que usam position:absolute;
isto é como:
você define a posição esquerda do elemento para 50% ( left:50%;
), mas isso não irá centralizá-lo corretamente para que o elemento seja centralizado corretamente, você precisa dar-lhe um margem de menos a metade de sua largura, que centralizará seu elemento perfeitamente
aqui está um exemplo: http://jsfiddle.net/35ERq/3/