Для создания сжимаемой картинки с соблюдением пропорций по ширине и высоте в flexbox, можно использовать свойство flex
и свойство max-width
. Вот пример решения:
<div class="flex-container"> <img src="your-image.jpg" alt="Your Image" class="flexible-image"> </div>
.flex-container { display: flex; align-items: center; justify-content: center; } .flexible-image { flex: 1; /* Распределяем доступное пространство */ max-width: 100%; /* Ограничиваем ширину картинки до 100% родительского контейнера */ height: auto; /* Автоматически рассчитываем высоту картинки, соблюдая пропорции */ }
В данном примере мы используем flex-container
для создания flexbox контейнера, который будет центрировать содержимое по горизонтали и вертикали. Картинка находится внутри flexbox контейнера с классом flexible-image
.
В CSS-правилах для .flexible-image
мы задаем flex: 1
, чтобы сделать картинку расширяемой и заполняющей доступное пространство. Затем мы устанавливаем max-width: 100%
, чтобы ограничить ширину картинки до 100% ширины родительского контейнера. При этом высота картинки автоматически рассчитывается соблюдая пропорции изображения, благодаря свойству height: auto
.
Таким образом, при изменении размеров родительского контейнера или экрана, картинка будет сжиматься и растягиваться, с соблюдением пропорций и без искажений.