Бесплатный вебинар
«как найти любимую работу»
Подарки на 150 000 ₽ за участие
Живой эфир
Записи не будет!
00:00:00:00
дн.ч.мин.сек.

Универсальное изображение на 100% ширины: адаптивный CSS

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

Хотите, чтобы фоновое изображение в CSS автоматически адаптировалось под ширину и высоту элемента? Воспользуйтесь свойством background-size: cover. Это свойство автоматически масштабирует изображение так, чтобы оно полностью покрывало область контейнера и при этом сохраняло свои пропорции. Свойство background-repeat: no-repeat позволит избежать нежелательного повторения изображения. Свойство height: auto не требуется, так как cover самостоятельно адаптирует высоту в зависимости от ширины.

Пример кода:

CSS
Скопировать код
.bg-cover {
  background-image: url('ваш/путь/к/изображению.jpg'); 
  background-size: cover;
  background-repeat: no-repeat;
}

Замените 'ваш/путь/к/изображению.jpg' на путь к нужному изображению и примените класс .bg-cover к нужному элементу.

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

Сохранение соотношения сторон

Для сохранения пропорций изображения можно использовать приём с применением height: 0 и padding-bottom. Благодаря этому, отступ будет вычисляться на основе соотношения сторон изображения.

Медиазапросы в помощь

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

Используйте srcset для управления адаптивными изображениями

У элемента img есть атрибут srcset, который позволяет браузеру выбирать оптимальное изображение из нескольких доступных в зависимости от размера экрана и разрешения. Это обеспечивает лучшее отображение изображений.

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

Приведу пример. Представьте, что веб-страница — это воздушный шарик (🎈), которым выбрали покрыть краской (🖌️):

Без установленной высоты: | На пустом шаре (🎈): краска маленького размера | На надутом шаре (🎈🎈🎈): краска растянута, качество может снизиться

С шириной 100% и автоматической высотой: | На пустом шаре (🎈): краска полного размера, но маленькая | На надутом шаре (🎈🎈🎈): краска полного размера, но больше, качество сохранено

Таким образом, краска всегда покрывает шарик соответствующим образом, причем без искажений.

Дополнительные способы улучшения фоновых изображений

Избегайте JavaScript если это возможно

Предпочитайте использовать решения на CSS вместо JavaScript, где это возможно. Это упростит код и ускорит загрузку страницы.

Подробнее об этом расскажет наш спикер на видео
skypro youtube speaker

Адаптация под высокое разрешение экранов

Для сохранения чёткости изображений на устройствах с высокой плотностью пикселей используйте изображения с пометкой @2x или @3x. Сделать это можно с помощью медиазапросов или атрибута srcset.

Соблюдайте порядок в контейнере

Избегайте добавления отступов или полей внутри контейнера с фоновым изображением, чтобы сохранить вид на 100% ширины.

Сохранение соотношения сторон

Высота div-элемента должна масштабироваться в зависимости от изображения-фона, чтобы поддерживать заданное соотношение сторон на разных устройствах.

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

  1. Идеальное фоновое изображение на весь экран с помощью CSS | CSS-Tricks — подробное руководство по созданию фоновых изображений на весь экран с помощью CSS.
  2. background-size – CSS: Каскадные таблицы стилей | MDN — документация по свойству background-size CSS.
  3. Как создать изображение на весь экран — инструкция по созданию фоновых изображений на весь экран.
  4. Простые адаптивные изображения с фоновыми изображениями в CSS — Smashing Magazine — статья о создании адаптивных фоновых изображений с использованием CSS.
  5. Контейнеры с фиксированным соотношением сторон | CSS-Tricks — объяснение создания элементов с фиксированным соотношением сторон, что важно для адаптивных фонов.
  6. Генератор точек останова адаптивных изображений от Cloudinary — инструмент для создания точек останова для адаптивных изображений.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какое CSS-свойство используется для автоматического масштабирования фонового изображения?
1 / 5