2010-09-08 14 views
11

Così, ho il div con questi parametri:Come centrare l'immagine con una dimensione sconosciuta all'interno di div?

container { 
position:fixed; 
background-color: rgba(50,50,50,0.7); 
width:100%; 
height:100%; 
display:none;} 

Esso contiene l'immagine con dimensioni sconosciute (la dimensione è dinamica e può essere diverso).

Ho bisogno di allineare l'immagine verticalmente e orizzontalmente.

prega, aiutare

+0

Forse il tuo CSS ha un errore di battitura, ma voglio assicurarmi che tu capisca che il tuo selettore di classe dovrebbe essere preceduto da un punto, come in '.container {...}' – Robusto

+0

Naturalmente, lo so :) il mio #container non è una classe, è id. – Oshibka404

+1

Se si tratta di un ID, è necessario inserirlo con #, come nel commento. Sto solo dicendo. – Robusto

risposta

25

Il metodo immagine di sfondo lavorerà, con background-position: Centro, purtroppo si perde il controllo del ridimensionamento dell'immagine.

È possibile impostare l'immagine come segue:

position:absolute; 
margin:auto; 
top:0; 
bottom:0; 
left:0; 
right:0; 

PS. Tieni presente che questo sarà centrato rispetto al più vicino posizionato genitore.

+0

Grazie! Funziona :) – Oshibka404

+0

Funziona per un'immagine, ma non funziona per un DIV.Sembra necessario un hard-coded CSS width/height per centrarlo. Notate come se rimuovete l'attributo style e lasciate solo la larghezza/altezza HTML sul div, non centrerà. No, per il tag img. Perché questa incoerenza? https://jsfiddle.net/L1rk46xy/ – Triynko

+0

perfetto. dinamico. –

0

Il modo più semplice cross-browser potrebbe essere quella di impostare l'immagine dinamica come una proprietà di sfondo sul #container:

<div id="container" style="background: url(path/to/image.png) no-repeat 50% 50%"></div> 
4

Aggiungere il seguente:

I primi due le linee si centrano verticalmente, l'ultima orizzontalmente.

display: table-cell; 
vertical-align: middle ; 
text-align: center; 

maggiori informazioni si possono trovare qui: http://www.w3.org/Style/Examples/007/center

0

Ciò centrare verticalmente e orizzontalmente.

#container { 
    text-align: center; 
    vertical-align: middle; 
    display: table-cell; 
} 

http://jsfiddle.net/nfBDT/

0

Credo che il modo più semplice è quello di fare questo:

.container img { 
    display:block; 
    margin:auto; 
} 

regolare .container per soddisfare il vostro div (non so se il vostro è stato una classe o un ID)

oh non ho letto tutto della tua domanda.

questo sembra funzionare:

<style type="text/css"> 
.wraptocenter { 
    display: table-cell; 
    text-align: center; 
    vertical-align: middle; 
    width: ...; 
    height: ...; 
} 
.wraptocenter * { 
    vertical-align: middle; 
} 
/*\*//*/ 
.wraptocenter { 
    display: block; 
} 
.wraptocenter span { 
    display: inline-block; 
    height: 100%; 
    width: 1px; 
} 
/**/ 
</style> 
<!--[if lt IE 8]><style> 
.wraptocenter span { 
    display: inline-block; 
    height: 100%; 
} 
</style><![endif]--> 

pieno credito: http://www.brunildo.org/test/img_center.html

Problemi correlati