Ответ 1
Измените height
и width
на max-height
и max-width
. Изображение не будет больше, чем родительский.
.thumbnail img {
max-height: 100%;
max-width: 100%;
}
У меня есть список изображений, я хочу, чтобы изображения масштабировались в их контейнеры, которые имеют одинаковый размер. например:
Я создал jsfiddle
<div class="container">
<div class="row">
<div class="col-xs-3">
<a href="#" class="thumbnail">
<img src="http://exmoorpet.com/wp-content/uploads/2012/08/cat.png">
</a>
</div>
<div class="col-xs-3">
<a href="#" class="thumbnail">
<img src="http://www.nose2tail.co.uk/cat-matlock-derbyshire.jpg">
</a>
</div>
<div class="col-xs-3">
<a href="#" class="thumbnail">
<img src="http://www.us.onsior.com/images/3_1/cat-3_1-01.png">
</a>
</div>
<div class="col-xs-3">
<a href="#" class="thumbnail">
<img src="https://www.petfinder.com/wp-content/uploads/2012/11/155293403-cat-adoption-checklist-632x475-e1354290788940.jpg" >
</a>
</div>
</div>
</div>
Как я могу это сделать? И в моем примере я определил высоту: 100px;, это приводит к нечувствительности, если я изменяю размер браузера, высота div останется неизменной. Если возможно, я хочу, чтобы этот список изображений реагировал.
Измените height
и width
на max-height
и max-width
. Изображение не будет больше, чем родительский.
.thumbnail img {
max-height: 100%;
max-width: 100%;
}
.thumbnail {
height: 100px;
display: table;
}
.thumbnail img {
height: 100%;
width: 100%;
display: table-cell;
vertical-align: middle;
}
В 2017 году вы можете использовать flex. Кроме того, вы получите изображения, центрированные в контейнере эскизов: обновленная скрипка
.thumbnail {
height: 300px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
border: solid 1px blue;
}
.thumbnail img {
max-width: 100%;
max-height: 100%;
display: block;
margin: 0 auto;
border: solid 1px red;
}
Это должно помочь, по крайней мере, для вашего примера. Могут быть некоторые случаи, когда это не сработает. В этом случае вам нужно найти js-решение.
.thumbnail img {
height: 100%;
width: auto;
}
.thumbnail img {
height: 100%;
width: 100%;
}
Используйте это.
.thumbnail {
height: 100%;
}
.thumbnail img {
max-height: 100%;
max-width: 100%;
border: 1px solid red;
}
(Я добавлю ответ, хотя это старый вопрос. У меня была такая же проблема, пока я не добавил класс thumbnail
к ссылке с изображением и выглядел немного глубже. Никаких добавленных CSS не было.)
Возможно, что-то изменилось. В Bootstrap 3.3.7. есть это (неминифицированный css, строка 5019):
.thumbnail > img,
.thumbnail a > img {
margin-left: auto;
margin-right: auto;
}
И это (неориентированный css, строка 1124):
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
display: block;
max-width: 100%;
height: auto;
}
Итак, все должно работать прямо из коробки, если вы добавили класс thumbnail
в ссылку изображения. (Вам нужно удалить оба из них, и все сломается.) И он работает с добавленным css или без него:
.thumbnail img {
max-height: 100%;
max-width: 100%;
}
Добавленный css переопределяет стили Bootstraps, по крайней мере для меня, поскольку добавленный стиль включен после собственных стилей Bootstraps. (Но он лишний.)