Перейти к основному содержимому

Адаптивный веб-дизайн - Изображения

Каким бы ни был размер экрана, адаптивное изображение автоматически подстраивается под него.


Использование свойства width

Один из способов получить адаптивное изображение — процентное значение width вместе с height, равным auto. При изменении размера браузера изображение увеличивается и уменьшается вместе с ним.

Примечание: при таком подходе изображение может вырасти больше своего исходного размера, поэтому во многих случаях max-width — лучший выбор.

Пример

Prompt
Создайте страницу с изображением, которое использует width: 100% и height: auto, чтобы сделать его адаптивным. Используйте любой URL изображения-заполнителя, например «img_chania.jpg».
Результат: полная HTML-страница

Использование свойства max-width

max-width, равный 100%, позволяет изображению уменьшаться при необходимости, но не даёт ему превысить свой исходный размер.

Пример

Prompt
Создайте страницу с изображением, которое использует max-width: 100% и height: auto, чтобы изображение уменьшалось, но никогда не увеличивалось больше своего исходного размера.
Результат: полная HTML-страница

Добавление изображения на пример веб-страницы

Пример

Prompt
Создайте простую адаптивную раскладку веб-страницы с заголовком, текстом абзаца и изображением. Изображение должно использовать width: 100% и height: auto, чтобы быть адаптивным в содержимом страницы.
Результат: полная HTML-страница

Фоновые изображения

Изменение размера и масштабирование могут затрагивать и фоновые изображения, и вы можете выбрать один из трёх разных методов:

Использование background-size: contain

Здесь изображение масштабируется, пытаясь вписаться в область содержимого, а его соотношение сторон (пропорциональное соотношение между шириной и высотой) остаётся неизменным.

Prompt
Создайте страницу с div, у которого есть фоновое изображение с использованием background-size: contain, background-repeat: no-repeat, шириной 100%, высотой 400px и сплошной чёрной рамкой в 1px.
Результат: полная HTML-страница

Использование background-size: 100% 100%

Здесь изображение растягивается, пока не будет покрыта вся область содержимого.

Prompt
Создайте страницу с div, у которого есть фоновое изображение с использованием background-size: 100% 100%, шириной 100%, высотой 400px и сплошной чёрной рамкой в 1px.
Результат: полная HTML-страница

Использование background-size: cover

Здесь масштабирование продолжается, пока не будет покрыта вся область содержимого. Соотношение сторон сохраняется, поэтому часть изображения может быть обрезана.

Prompt
Создайте страницу с div, у которого есть фоновое изображение с использованием background-size: cover, шириной 100%, высотой 400px и сплошной чёрной рамкой в 1px.
Результат: полная HTML-страница

Разные изображения для разных устройств

То, что подходит для большого экрана компьютера, может быть бесполезным на маленьком устройстве, а большое изображение добавляет нагрузку. Медиазапросы уменьшают эту нагрузку, показывая разные изображения на разных устройствах.

Пример

Prompt
Создайте страницу, которая использует медиазапросы для отображения разных фоновых изображений в зависимости от ширины экрана. Для ширины меньше 400px используйте одно маленькое изображение, а для 400px и больше — другое, более крупное изображение.
Результат: полная HTML-страница

HTML-элемент <picture>

Для адаптивных дизайнов HTML-элемент <picture> даёт больше гибкости при указании источников изображений.

Вместо того чтобы увеличивать или уменьшать одно изображение вместе с шириной области просмотра, вы предоставляете несколько изображений, каждое из которых предназначено для своего размера экрана. Как и в случае с <video> и <audio>, вы перечисляете разные источники, и браузер использует первый подходящий.

Каждый источник определяет своё изображение с помощью обязательного атрибута srcset и может принимать медиазапросы через необязательный атрибут media. Для браузеров без поддержки <picture> добавьте элемент <img> в качестве резервного варианта.

Пример

Prompt
Создайте страницу с использованием HTML-элемента <picture> с двумя элементами <source> и резервным <img>. Один source должен использовать атрибут media для max-width: 400px, чтобы предоставлять меньшее изображение, а другой — большее изображение.
Результат: полная HTML-страница

Адаптивная галерея изображений

Flexbox и медиазапросы могут работать вместе, создавая адаптивную галерею изображений.

Пример

Prompt
Создайте адаптивную галерею изображений с использованием медиазапросов и flexbox. Показывайте четыре изображения в ряд на больших экранах, два в ряд на средних экранах и одно в ряд на маленьких экранах. Оформите каждое изображение так, чтобы оно заполняло ширину своего контейнера.
Результат: полная HTML-страница