2013-06-27 10 views
5

Jak wycentrować img w tagu nadrzędnym div, który jest ustawiony na overflow: hidden. Chodzi o to, że chcę przyciąć obraz, ale klip po lewej/prawej stronie, aby pokazać środkową część obrazu.Obraz w centrum CSS w obciętym div rodzicielskim

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

Następnie style coś takiego:

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

-50% byłaby szerokość rodzica, ale chcę szerokość samego img.

Obsługiwany przez Firefoksa CSS jest akceptowalny.

+0

sprawdź mój odebrać lub http://jsfiddle.net/Us3Qh/ roztworu swoje pytanie – softsdev

Odpowiedz

13

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

Zastosowanie text-align, line-height, vertical-align, a marża ujemna. img wirtualnie zredukowany do zera, sam się wyśrodkuje.

.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; 
} 

uzyskać tylko w poziomie:

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

Moja skrzynka opakowanie nie posiada stałą wysokość, to dostosowuje się do jego wysokość zewnętrznego diva. –

+0

, więc usuń wysokość linii i ustaw margines jako: margin: 0 -100%; po prostu użyj połowy tego :), wartości horyzontalne, które są dla Ciebie ważne. zbyt dużo informacji zabija informacje? ;) –

+0

@GCyrillus czy wiesz, czy ta technika jest kompatybilna z przeglądarką/urządzeniem? – Lando

0

Spróbuj dodać

display:block; 
margin:0px auto; 

do ".wrapper img"

1

Hi proszę sprawdzić example

jej rozwiązać problem

HTML

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

CSS

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