Как вставить изображение в HTML на фон: подробная инструкция
Пройдите тест, узнайте какой профессии подходите
Для кого эта статья:
- Веб-разработчики, ищущие улучшение своих навыков в работе с фоновыми изображениями.
- Студенты и новички в области веб-разработки, желающие освоить основы HTML и CSS.
Профессионалы, заинтересованные в оптимизации производительности веб-сайтов через правильное использование фоновых изображений.
Красивый фон может буквально преобразить ваш сайт, превратив скучную страницу в визуальный шедевр! 🎨 В 2025 году умение правильно работать с фоновыми изображениями — это не просто навык, а настоящее конкурентное преимущество для любого веб-разработчика. Я покажу вам, как добавить изображение на фон вашей HTML-страницы так, чтобы это выглядело профессионально и работало на всех устройствах. Независимо от вашего уровня — от новичка до продвинутого, вы найдете здесь все необходимые инструменты и техники.
Мечтаете создавать впечатляющие веб-интерфейсы с красивыми фоновыми изображениями и не только? 🚀 Курс «Веб-разработчик» с нуля от Skypro поможет вам освоить все тонкости HTML, CSS и JavaScript за 9 месяцев. Наши студенты не только изучают теорию, но и создают реальные проекты под руководством действующих разработчиков. После курса вы сможете уверенно создавать сайты любой сложности — от стильных лендингов до мощных веб-приложений!
Простые способы добавления фонового изображения в HTML
Существует несколько методов добавления фонового изображения на вашу веб-страницу. Каждый из них имеет свои преимущества и применяется в зависимости от конкретной задачи. Рассмотрим их по порядку: от самых простых до более продвинутых.

Метод 1: Использование атрибута style в HTML
Самый быстрый способ добавить фоновое изображение — использовать встроенные стили через атрибут style. Это отлично подходит для быстрого прототипирования или когда вам нужно добавить фон только к одному элементу:
Пример:
<div style="background-image: url('images/background.jpg'); height: 300px; width: 100%;"></div>
Метод 2: Использование внешнего CSS файла
Более профессиональный и гибкий подход — использовать внешние CSS файлы. Это позволяет централизованно управлять стилями и делает код более чистым:
HTML-файл:
<div class="hero-section"></div>
CSS-файл:
.hero-section {
background-image: url('../images/hero-bg.jpg');
height: 500px;
background-repeat: no-repeat;
background-size: cover;
background-position: center;
}
Для удобства сравнения методов, рассмотрим таблицу их преимуществ и недостатков:
Метод | Преимущества | Недостатки | Когда использовать |
---|---|---|---|
Встроенный style | Быстро применяется, не требует отдельных файлов | Смешивает контент и презентацию, трудно поддерживать | Для быстрых прототипов, тестирования |
Внешний CSS | Разделение контента и стилей, легкая поддержка | Требует дополнительный файл | Для всех серьезных проектов |
CSS в <head> | Не требует внешних файлов, но разделяет контент и стили | Увеличивает размер HTML-документа | Для небольших проектов с ограниченным CSS |
Анна Соколова, старший веб-разработчик
Когда я только начинала обучать студентов работе с фоновыми изображениями, один из них постоянно сталкивался с проблемой: изображение либо не загружалось вообще, либо растягивалось неправильно. Мы потратили целый урок на отладку, пока не обнаружили, что он указывал относительный путь к файлу неправильно.
"Путь к изображению должен быть указан относительно CSS-файла, а не HTML-документа," – объяснила я ему. Мы исправили путь с
url('images/bg.jpg')
наurl('../images/bg.jpg')
, и магическим образом всё заработало! Это был момент озарения для всей группы, и с тех пор я всегда подчеркиваю важность правильного указания путей к ресурсам.
Синтаксис фоновых изображений в CSS для разных задач
Овладев базовыми способами добавления фона, давайте углубимся в синтаксис CSS-свойств для более тонкой настройки фоновых изображений. 🔍
Управление размером изображения
Свойство background-size
определяет, как изображение должно масштабироваться на странице:
- cover – изображение масштабируется, чтобы полностью покрыть контейнер (некоторые части могут быть обрезаны)
- contain – изображение масштабируется, чтобы полностью поместиться внутри контейнера (могут появиться пустые области)
- auto – изображение сохраняет свои исходные размеры
- конкретные значения – можно указать точные размеры (например, 300px 200px или 50% 100%)
Пример:
.hero {
background-image: url('hero.jpg');
background-size: cover;
}
Позиционирование изображения
С помощью background-position
вы можете указать, как изображение должно быть размещено в контейнере:
- ключевые слова – center, top, right, bottom, left или их комбинации (например, top right)
- проценты – 0% 0% (левый верхний угол), 100% 100% (правый нижний угол)
- пиксели – точные координаты (например, 10px 20px)
Пример:
.profile-card {
background-image: url('pattern.jpg');
background-position: center;
}
Повторение изображения
Свойство background-repeat
определяет, будет ли изображение повторяться:
- repeat – повторяется по горизонтали и вертикали (по умолчанию)
- repeat-x – повторяется только по горизонтали
- repeat-y – повторяется только по вертикали
- no-repeat – изображение не повторяется
- space – изображение повторяется, распределяя свободное пространство между копиями
- round – изображение повторяется, при необходимости масштабируясь, чтобы избежать обрезки
Пример:
.pattern-bg {
background-image: url('subtle-pattern.png');
background-repeat: repeat-x;
}
Краткий синтаксис background
Для экономии кода можно использовать краткую запись свойства background
, которая объединяет несколько свойств:
Пример:
.section {
background: url('bg.jpg') no-repeat center/cover;
}
Это эквивалентно следующему коду:
.section {
background-image: url('bg.jpg');
background-repeat: no-repeat;
background-position: center;
background-size: cover;
}
Оптимизация фоновых изображений для быстрой загрузки
Красивый фон не должен замедлять ваш сайт! В 2025 году скорость загрузки страниц критически важна как для SEO, так и для удержания пользователей. 🚀
Михаил Лебедев, технический руководитель
В прошлом году мы работали над обновлением сайта крупного онлайн-магазина. Клиент настаивал на использовании высококачественных фоновых изображений на главной странице, но после внедрения всех правок время загрузки выросло до 8 секунд – катастрофа для электронной коммерции!
"Давайте попробуем оптимизировать ваши фоны, а не жертвовать ими полностью," – предложил я. Мы сжали изображения, конвертировали их в WebP, добавили прогрессивную загрузку и правильное кэширование. Время загрузки упало до 1.8 секунды, а через месяц конверсия выросла на 14.5%. Клиент был в восторге – красивый дизайн и производительность могут сосуществовать, если подойти к вопросу технически грамотно.
Выбор оптимального формата изображения
Современные форматы значительно эффективнее традиционных:
Формат | Преимущества | Недостатки | Рекомендации к использованию |
---|---|---|---|
WebP | На 25-35% меньше JPEG при том же качестве, поддерживает прозрачность | Не поддерживается в устаревших браузерах | Идеален для большинства фоновых изображений в 2025 году |
AVIF | Наилучшее сжатие (до 50% компактнее WebP) | Ограниченная поддержка браузерами | Для продвинутых проектов с fallback-опциями |
JPEG | Универсальная совместимость | Больший размер, нет прозрачности | Для фотографических изображений, если важна совместимость |
PNG | Поддержка прозрачности, высокое качество | Большой размер для фотографий | Для изображений с прозрачностью или графики |
SVG | Векторный формат, идеален для масштабирования | Не подходит для фотореалистичных изображений | Для паттернов, иконок и геометрических фонов |
Техники оптимизации размера файлов
- Сжатие без потерь – используйте инструменты как TinyPNG, ImageOptim или Squoosh для сжатия изображений без видимого ухудшения качества (экономия 20-70%)
- Правильное масштабирование – не загружайте изображения размером 2500px, если максимальная ширина контейнера 1200px
- Удаление метаданных – геолокация, данные камеры и другие метаданные могут занимать до 15% от размера файла
- CSS-градиенты вместо изображений – для простых фонов рассмотрите возможность использования CSS-градиентов, особенно для создания эффекта наложения
Реализация ленивой загрузки
Для фоновых изображений, находящихся "ниже сгиба", используйте ленивую загрузку:
Решение с JavaScript:
document.addEventListener("DOMContentLoaded", function() {
const lazyBackgrounds = [].slice.call(document.querySelectorAll(".lazy-background"));
if ("IntersectionObserver" in window) {
let lazyBackgroundObserver = new IntersectionObserver(function(entries, observer) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
entry.target.style.backgroundImage = `url(${entry.target.dataset.background})`;
lazyBackgroundObserver.unobserve(entry.target);
}
});
});
lazyBackgrounds.forEach(function(lazyBackground) {
lazyBackgroundObserver.observe(lazyBackground);
});
}
});
HTML:
<div class="lazy-background" data-background="large-image.jpg"></div>
Адаптивные фоновые изображения для разных устройств
В 2025 году ваш сайт просматривают на устройствах с разрешениями от 360px до 4K и выше. Каждый пиксель экрана имеет значение, и ваши фоновые изображения должны выглядеть идеально везде. 📱💻🖥️
Базовая адаптивность с медиа-запросами
Используйте media queries для загрузки разных изображений в зависимости от размера экрана:
CSS:
.hero-section {
background-image: url('mobile-bg.jpg');
background-repeat: no-repeat;
background-size: cover;
}
@media (min-width: 768px) {
.hero-section {
background-image: url('tablet-bg.jpg');
}
}
@media (min-width: 1200px) {
.hero-section {
background-image: url('desktop-bg.jpg');
}
}
Адаптивное позиционирование
Иногда важнее не менять само изображение, а адаптировать его позиционирование:
CSS:
.profile-section {
background-image: url('team-photo.jpg');
background-size: cover;
background-position: center top;
}
@media (max-width: 992px) {
.profile-section {
background-position: 70% center; /* Смещаем фокус изображения на мобильных */
}
}
Техника множественных фонов
CSS позволяет использовать несколько фоновых изображений одновременно, что дает интересные возможности для адаптивного дизайна:
CSS:
.section-with-overlay {
background-image:
linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.3)),
url('background.jpg');
background-size: cover;
background-position: center;
}
@media (max-width: 768px) {
.section-with-overlay {
background-image:
linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.5)),
url('background-mobile.jpg');
}
}
CSS-переменные для гибкой адаптивности
Используйте CSS-переменные для более сложных адаптивных схем:
CSS:
:root {
--main-bg-image: url('desktop.jpg');
}
@media (max-width: 992px) {
:root {
--main-bg-image: url('tablet.jpg');
}
}
@media (max-width: 576px) {
:root {
--main-bg-image: url('mobile.jpg');
}
}
.hero {
background-image: var(--main-bg-image);
background-size: cover;
}
art direction vs resolution switching
Существует два основных подхода к адаптивным фоновым изображениям:
- Art Direction – использование разных фрагментов изображения для разных размеров экрана (например, более крупный план на мобильных устройствах)
- Resolution Switching – использование одного и того же изображения с разным разрешением для разных устройств
Тест на профориентацию от Skypro поможет понять, подходит ли вам работа веб-разработчика! 🧩 Вы уже научились вставлять фоновые изображения в HTML — это отличный первый шаг, но готовы ли вы сделать веб-разработку своей профессией? Пройдите бесплатный тест и узнайте, насколько ваш склад мышления, личностные качества и предпочтения соответствуют работе в этой захватывающей области. Результаты помогут определить ваши сильные стороны и потенциальные направления для карьерного роста!
Распространенные ошибки при работе с фоном в HTML
Даже опытные разработчики время от времени допускают ошибки при работе с фоном. Давайте рассмотрим самые распространенные из них и способы их избежать. 🛑
Неправильные пути к изображениям
Наиболее частая ошибка — неправильно указанные пути к файлам изображений:
- Абсолютные vs относительные пути – помните, что в CSS относительные пути отсчитываются от местоположения CSS-файла, а не HTML-документа
- Регистр имен файлов – на Linux-серверах регистр имеет значение (background.jpg и Background.jpg — разные файлы)
- Отсутствие кавычек вокруг URL – хотя технически кавычки не всегда обязательны, их отсутствие может вызвать проблемы с путями, содержащими пробелы
Неправильно:
.hero {
background-image: url(images/background.jpg); /* Путь относится к HTML-файлу */
}
Правильно:
.hero {
background-image: url('../images/background.jpg'); /* Путь от CSS-файла к изображению */
}
Проблемы с размерами контейнера
Фоновое изображение не будет видно, если его контейнер не имеет указанных размеров:
- Отсутствие высоты – если элемент не содержит текста или других элементов, его высота по умолчанию может быть равна нулю
- Относительное позиционирование родительских элементов – может влиять на то, как рассчитываются размеры
- Коллапс маржинов – может привести к неожиданным размерам контейнера
Неправильно:
<div class="hero"></div>
.hero {
background-image: url('hero.jpg');
background-size: cover;
/* Отсутствие высоты! */
}
Правильно:
<div class="hero"></div>
.hero {
background-image: url('hero.jpg');
background-size: cover;
height: 500px; /* или другое значение */
}
Недооценка мобильных устройств
Использование одного и того же большого изображения для всех устройств — серьезная ошибка:
- Избыточное разрешение – загрузка изображения 2500px на мобильное устройство с шириной экрана 375px пустая трата ресурсов
- Неправильное кадрирование – широкие пейзажные фото могут плохо смотреться на вертикальных мобильных экранах
- Отсутствие fallback-опций – игнорирование старых браузеров, которые не поддерживают современные форматы изображений
Игнорирование проблем доступности
Фоновые изображения требуют внимания к доступности:
- Недостаточный контраст – текст на фоновых изображениях должен иметь достаточный контраст
- Отсутствие альтернативной информации – так как фоновые изображения добавляются через CSS, они не имеют атрибута alt
- Анимированные фоны – могут мешать пользователям с вестибулярными расстройствами
Решение проблемы контраста:
.section-with-text {
background-image: url('dark-image.jpg');
background-size: cover;
color: white; /* Светлый текст на темном фоне */
}
/* Или добавление полупрозрачного наложения */
.section-with-text {
position: relative;
}
.section-with-text::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5); /* Темное наложение */
z-index: 1;
}
.section-with-text > * {
position: relative;
z-index: 2; /* Контент над наложением */
}
Освоение работы с фоновыми изображениями в HTML и CSS откроет перед вами новые горизонты в создании визуально привлекательных веб-проектов. Начните с простых приемов, постепенно добавляя продвинутые техники оптимизации и адаптивности. Помните, что идеальное фоновое изображение — это не только красивая картинка, но и оптимизированный, быстро загружающийся ресурс, который отлично выглядит на любом устройстве. Экспериментируйте с различными подходами, и пусть ваши сайты всегда выделяются среди других своим профессиональным и продуманным дизайном.