Авторесайз изображения под размер окна браузера: CSS решение
❗ Быстрый ответ ❗
Если вы хотите, чтобы изображение адаптировалось под размер окна браузера, установите CSS-свойства max-width и max-height в 100%. Это обеспечит сохранение пропорций изображения и гарантирует, что оно не выйдет за рамки видимой области, что важно для корректного отображения на экранах различных размеров.
img {
  max-width: 100%;
  max-height: 100%;
  display: block;
}
Затем, поместите изображение в блок div, размеры которого заданы в единицах, измеренных относительно видимой области окна:
<div style="width: 100vw; height: 100vh;
  display: flex; align-items: center; justify-content: center;">
  <img src="path/to/image.jpg" alt="Адаптивное изображение">
</div>
В приведенном выше примере используются единицы измерения, привязанные к видимой области (vw и vh), что позволяет контейнеру занять все окно браузера и изображению масштабироваться адекватно.

🎯 Центрирование и подстройка размера изображения под видовую область 🎯
🖥️ Использование CSS Grid для центрирования 🖥️
Чтобы центрировать изображение внутри контейнера, используйте display: grid:
.container {
  display: grid;
  place-items: center;
  width: 100vw;
  height: 100vh;
}
После этого добавьте изображение в этот контейнер:
<div class="container">
  <img src="path/to/image.jpg" alt="Центрированное адаптивное изображение">
</div>
📏 Сохранение пропорций с помощью свойства object-fit 📏
Чтобы изображение сохраняло свои исходные пропорции, примените к нему свойство object-fit:
img {
  object-fit: contain; /* чтобы изображение заполняло область, замените на 'cover' */
}
🔍 Адаптация изображения при изменении размера окна 🔍
Свойства vw и vh позволяют изображению адаптироваться при изменении размера окна:
img {
  max-width: 100vw;
  max-height: 100vh;
}
🎚 Изменение размера изображения вслед за изменением размера окна браузера 🎚
Подстраивайте размер изображения под изменение размера окна:
window.onresize = resizeImage;
function resizeImage() {
  // Код для изменения размера изображения
}
🧐 Решение проблем совместимости с устаревшими браузерами 🛠
🚫 Совместимость с Internet Explorer 🚫
Для устаревших браузеров, например, IE, могут понадобиться полифилы:
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  .container {
    /* Код с исправлениями для IE */
  }
}
🎚 Пиксели против адаптивного дизайна 📐
Заменяйте использование пикселей процентами, единицами vw/vh и CSS grid для обеспечения лучшей адаптивности.
Визуализация
Для лучшего понимания, как работает адаптация изображения под размер окна браузера, представим простую аналогию с пляжным отдыхом:
👇 Ваше любимое изображение
🖼️ 
👇 Это как полотенце после купания
🏖️ Полотенце
👇 А это размер видовой области
🪨 Камень
- Растяжение полотенца под размер камня:
 
Полотенце [-------]
Маленький камень [🪨]
Результат: полотенце полностью покрывает камень.
- Содержание полотенца без обрезки
 
Полотенце [---]
Большой камень [🗿🗿🗿]
Результат: полотенце лежит сверху, не свисая по краям, но не полностью закрывая камень.
- Заполнение с обрезкой:
 
Полотенце [-----]
Податливый камень [🍀🍀]
Результат: Камень полностью покрыт, часть его элементов скрыты.
Основное правило: Полотенце на камне отражает принцип работы изображения в контейнере. Оно может растягиваться, содержаться внутри или покрывать камень, при этом важные части всегда остаются в поле зрения.
🚀 Продвинутые методы и подходы 🚀
🤝 Использование альтернативного текста для доступности 🤝
Не забывайте добавлять alt текст к изображениям для обеспечения лучшей доступности и на случай, если изображение не загрузится.
<img src="image.jpg" alt="Описательный текст">
🚄 Оптимизация скорости загрузки страницы 🚄
Используйте srcset и sizes чтобы браузер выбирал оптимальное изображение для загрузки.
<img srcset="image-320w.jpg 320w,
             image-480w.jpg 480w,
             image-800w.jpg 800w"
     sizes="(max-width: 320px) 280px,
            (max-width: 480px) 440px,
            800px"
     src="image-800w.jpg"
     alt="Адаптивное изображение">
🪄 Предпочитайте CSS вместо jQuery 🪄
Перед использованием плагинов jQuery изучите возможности native CSS, чтобы предотвратить перегрузку вашего сайта.
Полезные материалы
- Адаптивное использование изображений в CSS | CSS-Tricks – углубленное руководство по работе с адаптивными изображениями.
 - Адаптивные изображения – учебник по веб-разработке | MDN – вводная информация по добавлению адаптивных изображений на сайт.
 - Как создать адаптивные изображения | w3schools – шаг за шагом описание процесса создания адаптивного изображения с использованием CSS.
 - Адаптивные изображения: как они почти работают и что мы можем улучшить – A List Apart – детальный анализ и критический взгляд на адаптивные изображения.
 - Простые адаптивные изображения с CSS фоновых изображений — Smashing Magazine – руководство по использованию адаптивных фоновых изображений.
 - Как растянуть div, чтобы заполнить оставшуюся ширину? – Stack Overflow – обсуждение стратегий расширения div, что является ключевым аспектом адаптивного дизайна.
 


