Масштабирование изображения в CSS: сохраним пропорции

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для идеального расположения изображения в контейнере используйте CSS-свойства max-width и max-height, установив их значения в 100%, и дополните их свойством object-fit: contain. Пример кода:

HTML
Скопировать код
<div style="width: 300px; height: 200px; overflow: hidden;">
  <img src="image.jpg" style="max-width: 100%; max-height: 100%; object-fit: contain;" alt="">
</div>

Этот подход сохранит пропорции, не позволяя изображению выходить за границы контейнера.

Кинга Идем в IT: пошаговый план для смены профессии

Подробное исследование

Использование object-fit и object-position

Если требуется, чтобы изображение занимало всю площадь контейнера, используйте object-fit: cover. Для задания положения применяйте object-position.

CSS
Скопировать код
img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

В свою очередь, object-fit: scale-down уменьшит изображение, оставляя маленькие картинки в их исходном размере.

Масштабирование фоновых изображений

Пример использования изображения в качестве фона:

CSS
Скопировать код
.bg-container {
  background-image: url('image.jpg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 100%;
  height: 100%;
}

background-size: contain позволит изображению уместиться в пределах контейнера, background-repeat: no-repeat запретит его повторение, а background-position: center выровняет изображение по центру.

Проверка совместимости с браузерами

Обязательно проверьте совместимость свойства object-fit с браузерами, которые используют ваши пользователи. Для Internet Explorer рассмотрите возможность применения альтернативных решений, использующих transform.

Адаптивные макеты

Не забывайте учитывать адаптивность и соотношение сторон изображений, особенно работая с различными устройствами и браузерами.

Интерактивные эксперименты

Попрактиковаться в работе с CSS и изображениями можно на таких ресурсах, как W3Schools.

Визуализация

Допустим, мы имеем блок div, в который надо вставить изображение:

Markdown
Скопировать код
Границы div: [ Соотношение сторон 16:9 ]
Изображение для вставки: [ Любого размера ]

Использование свойства object-fit имеет вид:

CSS
Скопировать код
img {
  height: 100%;
  width: 100%;
  object-fit: contain;
}

Благодаря этому изображение идеально впишется в контейнер:

Markdown
Скопировать код
До: 🖼️💔🖼️ (размер не подходит)
После: 🖼️💙🖼️ (идеально вписывается)

Полезные материалы