2016-05-27 3 views
3

Допустим, у меня есть div с width: 300px и height: 200px
Я хочу, чтобы любое изображение внутри этой div быть сосредоточены как горизонтально, так и вертикально, независимо от того, если изображение больше или меньше, чем div;CSS центр любое изображение в DIV

Для изображений меньшего размера margin: 0 auto работает хорошо, но выше изображение выступает вправо и не центрируется.

Для больших изображений это работает:

height: 100%; 
top: 50%; 
left: 50%; 
transform: translate(-50%, -50%); 

Я не мог найти любую комбинацию этих и не нашел решение, как прекрасно центровку изображения.

+0

Но вы все еще хотите, чтобы прокрутить, чтобы увидеть всю картину или просто "урожай" Посмотреть. – DaniP

+1

Возможный дубликат [Центрирование изображения в div] (http://stackoverflow.com/questions/2134333/centering-an-image-within-a-div) – TylerH

ответ

6

Добавить position: absolute в img и position: relative к div

.el { 
 
    position: relative; 
 
    width: 100px; 
 
    height: 100px; 
 
    border: 1px solid black; 
 
    margin: 50px 150px; 
 
} 
 
img { 
 
    opacity: 0.4; 
 
    top: 50%; 
 
    left: 50%; 
 
    transform: translate(-50%, -50%); 
 
    position: absolute; 
 
}
<div class="el"> 
 
    <img src="http://placehold.it/350x150"> 
 
    <img src="http://placehold.it/50x50/000000/ffffff"> 
 
</div>

2

Попробуйте

div{ 
    display: flex; 
    align-items: center; 
    justify-content: center 
} 
+1

... но просто имейте в виду проблемы совместимости браузера http://caniuse.com/#feat=flexbox –

+0

Хорошо, что ** может ** работать, но совместимость говорит до свидания. –