2013-06-27 10 views
5

Come è possibile centrare un img in un tag padre div impostato su overflow: hidden. Cioè, quello che voglio è ritagliare l'immagine ma ritagliare sia a sinistra che a destra in modo che venga visualizzata la parte centrale dell'immagine.Immagine centro CSS in un div genitore troncato

<div class='wrapper'> 
    <img/> 
</div> 

Poi stili qualcosa di simile:

.wrapper { 
    position: absolute; 
    /* position details here */ 
    overflow: hidden; 
} 
.wrapper img { 
    height: 100%; 
    margin-left: -??; //what here? 
} 

-50% sarebbe la larghezza del genitore, ma voglio che la larghezza della IMG stesso.

CSS supportato da CSS è accettabile.

+0

leggi la mia risposta o soluzione http://jsfiddle.net/Us3Qh/ della tua domanda – softsdev

risposta

13

http://codepen.io/gcyrillus/pen/BdtEj

uso text-align, line-height, vertical-align e margine negativo. img praticamente ridotto a zero, si centrerà.

.wrapper { 
    width:300px; 
    text-align:center; 
    line-height:300px; 
    height:300px; 
    border:solid; 
    margin:2em auto; 
    overflow:visible; /* let's see what we slice off */ 
} 
img {margin:-100%;vertical-align:middle; 

    /* to show whats been cut off */ 
    position:relative; 
    z-index:-1; 
} 

Solo orizzontale:

.wrapper { 
     width:300px; 
     text-align:center; 
     border:solid; 
     margin:2em auto; 
     overflow:hidden 
    } 
    img { 
     margin:0 -100%; 
     vertical-align:middle; 
    } 
+0

La mia scatola di spostamento non ha un'altezza fissa, si adatta alla sua altezza div esterna. –

+0

quindi rimuovere l'altezza della riga e impostare il margine come: margine: 0 -100%; usa solo la metà :), i valori orizzontali che ti interessano. troppe informazioni uccidono informazioni? ;) –

+0

@GCyrillus sai se questa tecnica è cross browser/dispositivo compatibile? – Lando

0

tenta di aggiungere

display:block; 
margin:0px auto; 

a ".wrapper img"

1

Hi si prega example

sua risolvere il problema

HTML

<div class='wrapper'> 
    <img border="3"/> 
</div> 

CSS

.wrapper { 
    /*position: absolute;*/ 
    /* position details here */ 
    overflow: hidden; 
    text-align:center 
} 
.wrapper img { 
    height: 100%; 
} 
Problemi correlati