У меня два изображения. Один - 630x419; другой - 200x300.
Я каждый из этих изображений отображается внутри контейнера div с фиксированной шириной на контейнере. Я масштабирую изображения до ширины: 100% внутри контейнера div. Оба изображения масштабируются, чтобы заполнить ширину div, но изображение, которое выше его ширины (200x300), переполняется ниже нижней части контейнера div. Я установил переполнение в скрытое, но то, что я хотел бы сделать, - это вертикальное центрирование изображения в div, чтобы я мог видеть центр изображения вместо верхней части изображения, не испортив масштабирование или отображение первого образ.
Пример JSFiddle здесь: http://jsfiddle.net/P7xNg/1/
.container {
padding: 9px;
border: 1px solid #B8B8B8;
width: 262px;
margin: 10px;
}
.container img {
display: block;
width: 100%;
}
.image-box {
overflow: hidden;
height: 172px;
}
<div class="container">
<div class="image-box">
<img src="http://i.imgur.com/lG43Qgd.jpg" />
</div>
</div>
<div class="container">
<div class="image-box">
<img src="http://i.imgur.com/bMfYu6M.jpg" />
</div>
</div>
.image-box {
overflow: hidden;
height: 172px;
position: relative;
margin-left: auto;
margin-right: auto;
overflow: hidden;
}
.image-box img {
position: absolute;
margin: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
Один из вариантов - использовать изображение в качестве фона для вашего .image-box
а не включать <img>
в качестве дочернего элемента .image-box
. Вам просто нужно установить:
background-image: url(blah);
background-size: 100%;
background-position: center center;
Однако полученный HTML не так чист, как это, вероятно, потребует некоторых встроенных стилей, которые, как правило, не самые лучшие.
Вы имеете дело с двумя очень разными ориентациями изображения. Первый - ландшафт в природе, а весы - тонкие, учитывая сделанный вами контейнер. Второй - портрет в природе, и высота/ширина затрудняют установку контейнера для него.
Там нет ни одного набора стилей, которые я могу видеть, чтобы они работали так, как вы хотите (если вы не обрезали изображение # 2 в ландшафтную ориентацию в графическом редакторе).
Добавьте несколько встроенных стилей CSS на свое второе изображение (в HTML):
<div class="container">
<div class="image-box">
<img src="http://i.imgur.com/bMfYu6M.jpg" style="margin-top:-120px;"/>
</div>
</div>
Это помогло мне.
Если вы обнаружите, что у вас есть много таких "портретных" образов, то это может стоить вам при создании класса в вашем CSS, например, как.img-портрет или что-то еще, и применять его к тем, с которыми у вас возникают проблемы, избавите вас от всех встроенных стилей, которые вам нужно будет сделать:
Как <img src="http://i.imgur.com/bMfYu6M.jpg" class="img-portrait">
или что-то подобное.
Хорошее простое решение для вас здесь.
Все, что вам нужно сделать, это вместо использования тега img создать div с размером, которым вы хотите, чтобы изображение было. Например; 200px x 200px. Затем выделите изображение, которое вы хотите использовать в качестве фонового изображения для этого div, а затем, например, сметите изображение с помощью -100px.
Ниже приведен пример:
<div class="container">
<div class="image-box">
<div style="width:100%;height:200px;background-image:url(my-image.jpg);background-repeat:no-repeat;background-position:-100px 0px;
</div>
</div>
Надеюсь, это поможет!