In questo esempio l'immagine non è centrata. Perché? Il mio browser è Google Chrome v10 su Windows 7, non IE.
<img src="/img/logo.png" style="margin:0px auto;"/>
In questo esempio l'immagine non è centrata. Perché? Il mio browser è Google Chrome v10 su Windows 7, non IE.
<img src="/img/logo.png" style="margin:0px auto;"/>
Risposte:
aggiungi display:block;
e funzionerà. Le immagini sono in linea per impostazione predefinita
Per chiarire, la larghezza predefinita per un block
elemento è auto
, che ovviamente riempie l'intera larghezza disponibile dell'elemento contenitore.
Impostando il margine su auto
, il browser assegna metà dello spazio rimanente a margin-left
e l'altra metà a margin-right
.
margin:auto
centrare un elemento nel flusso. ( display:block
o display:table
, position:static
o position:relative
, ecc.)
0px auto
in solo auto
non funziona.
In alcune circostanze (come le versioni precedenti di Internet Explorer, Gecko, Webkit) e l'ereditarietà, elementi con position:relative;
impediranno margin:0 auto;
di lavorare, anche se top
, right
, bottom
, e left
non sono impostati.
L'impostazione dell'elemento su position:static;
(impostazione predefinita) può risolverlo in queste circostanze. In generale, gli elementi a livello di blocco con una larghezza specificata verranno rispettati margin:0 auto;
utilizzando relative
o il static
posizionamento.
margin: 0 auto
funziona bene su elementi relativamente posizionati purché siano elementi blocco senza float e una larghezza specificata ...
float
e display
possano cambiare quel comportamento.
Puoi centrare il div larghezza automatica usando display:table;
div{
margin: 0px auto;
float: none;
display: table;
}
Nel mio caso il problema era che avevo impostato la larghezza minima e massima senza la larghezza stessa.
position:static
, avere un width:
insieme fisso ed essere un display:block
elemento
Ogni volta che non aggiungiamo larghezza e aggiungiamo margin:auto
, immagino che non funzionerà. È dalla mia esperienza. La larghezza dà l'idea di dove esattamente deve fornire margini uguali.
c'è un'alternativa a margin-left:auto; margin-right: auto;
o margin:0 auto;
per quelli che usano position:absolute;
questo è come:
imposti la posizione sinistra dell'elemento al 50% ( left:50%;
) ma questo non lo centrerà correttamente in modo che l'elemento sia centrato correttamente devi dargli un margine di meno metà della sua larghezza, che centrerà perfettamente il tuo elemento
ecco un esempio: http://jsfiddle.net/35ERq/3/