У меня есть Flexbox div
с 12 изображениями внутри. Я хочу, чтобы width
каждого изображения было 25%
этого div
. Это изображение должно иметь height
= 133,33%
из width
. И если изображение имеет размеры, которые не равны моим 3 * 4, изображение должно быть масштабировано, чтобы соответствовать моим 3 * 4. Так как я могу этого достичь? Я думаю, что мне нужен инструмент, как calc(width*4/3)
.
Мои CSS и HTML:
.image-grid {
display: flex;
flex-wrap: wrap;
justify-content: space-around;
align-items: center;
width: 100%;
}
.image-grid .image-wrapper {
width: 25%;
height: 133.3333%; // nothing happens if I delete this line. Flexbox?
}
.image-grid .image {
display: block;
width: 100%;
object-fit: cover;
}
<div class="image-grid">
<div class="image-wrapper"><img src="assets/img/portfolio-1.jpg" alt="" class="image"></div>
<div class="image-wrapper"><img src="assets/img/portfolio-2.jpg" alt="" class="image"></div>
<div class="image-wrapper"><img src="assets/img/portfolio-3.jpg" alt="" class="image"></div>
<div class="image-wrapper"><img src="assets/img/portfolio-4.jpg" alt="" class="image"></div>
<div class="image-wrapper"><img src="assets/img/portfolio-5.jpg" alt="" class="image"></div>
<div class="image-wrapper"><img src="assets/img/portfolio-6.jpg" alt="" class="image"></div>
<div class="image-wrapper"><img src="assets/img/portfolio-7.jpg" alt="" class="image"></div>
<div class="image-wrapper"><img src="assets/img/portfolio-8.jpg" alt="" class="image"></div>
<div class="image-wrapper"><img src="assets/img/portfolio-9.jpg" alt="" class="image"></div>
<div class="image-wrapper"><img src="assets/img/portfolio-10.jpg" alt="" class="image"></div>
<div class="image-wrapper"><img src="assets/img/portfolio-11.jpg" alt="" class="image"></div>
<div class="image-wrapper"><img src="assets/img/portfolio-12.jpg" alt="" class="image"></div>
</div>
Мой код прекрасно работает с изображениями точно 3 * 4, но если изображение имеет другие размеры, я получаю это
Хорошо, решение найдено. Просто установите отступ обертки как 133,33% вместо высоты (и установите позицию моего img как абсолютную). Это то, что я бы назвал «хитростью» или «взломом», но это решает мою проблему довольно четко. Подробнее здесь: описание