
Свойство background-attachment управляет поведением фонового изображения относительно области прокрутки. Значение fixed закрепляет фон относительно окна браузера, что позволяет создать эффект неподвижного изображения при скролле контента. В сочетании с background-position и background-size можно точно управлять отображением изображения на странице.
Для блоков внутри страницы закрепление фона часто используют для визуального разделения секций. Свойство background-attachment с local привязывает фон к контенту блока, что особенно важно при создании прокручиваемых контейнеров с отдельными стилями. Такая комбинация повышает читаемость и сохраняет визуальную идентичность блока при динамическом контенте.
Важно учитывать производительность: закрепленные фоны (fixed) могут нагружать рендеринг на мобильных устройствах и старых браузерах. Для оптимизации используют изображение с минимальной шириной, прозрачные форматы WebP и кеширование. Практика показывает, что для крупных блоков эффект закрепления лучше применять на отдельных элементах, а не на всей странице, чтобы избежать задержек при скролле.
Фиксирование фонового изображения на всей странице

Для закрепления фонового изображения на всей странице используется свойство background-attachment с значением fixed. Это позволяет изображению оставаться на месте при прокрутке содержимого.
Пример базового CSS для страницы:
html {
background-image: url('фон.jpg');
background-repeat: no-repeat;
background-size: cover;
background-attachment: fixed;
}
Рекомендации по использованию:
- background-size: cover; – изображение масштабируется по размеру экрана, сохраняя пропорции и полностью заполняя видимую область.
- background-repeat: no-repeat; – предотвращает повторение изображения, что особенно важно при больших фонах.
- Для плавной загрузки на мобильных устройствах можно использовать
background-position: center;или конкретные координаты. - При использовании параллакса с фиксированным фоном учитывайте производительность: на слабых устройствах возможны рывки при скролле.
Поддержка браузеров:
- Современные версии Chrome, Firefox, Edge и Safari полностью поддерживают
background-attachment: fixed. - На iOS и некоторых мобильных браузерах значение
fixedможет игнорироваться; рекомендуется тестировать на целевых устройствах. - Для кроссбраузерного эффекта можно комбинировать фиксированный фон с медиа-запросами, отключая фиксирование на устройствах с ограниченными ресурсами.
Для сложных макетов, где фон должен оставаться на месте, но элементы поверх него имеют собственные прокручиваемые блоки, применяйте фиксированный фон к тегу html или body, а блоки оформляйте с прозрачным фоном.
Закрепление фона внутри отдельного блока
Чтобы зафиксировать фон внутри блока, используется свойство background-attachment со значением local или scroll. В контексте отдельных блоков чаще применяется scroll, что позволяет фону оставаться в пределах блока при прокрутке содержимого.
Пример закрепления фона для блока с классом .box:
CSS:
.box {
background-image: url(‘pattern.png’);
background-repeat: no-repeat;
background-position: top left;
background-attachment: scroll;
  width: 400px;
height: 300px;
overflow: auto;
}
При использовании overflow: auto блок получает собственную прокрутку, и закрепленный фон движется вместе с содержимым. Для создания эффекта фиксированного фона внутри блока можно сочетать background-attachment: local с прокруткой текста.
Важно учитывать, что background-attachment: fixed применимо только к окну просмотра браузера, а не к отдельному блоку, поэтому для блоков с фиксированным фоном следует использовать сочетание position: relative и псевдоэлементов ::before или ::after для наложения изображения.
Для адаптивных блоков рекомендуется задавать фон через background-size: cover или contain, чтобы изображение корректно масштабировалось при изменении размеров блока.
Использование background-attachment для параллакса

Свойство background-attachment определяет, как фоновое изображение закрепляется относительно области прокрутки. Для создания эффекта параллакса чаще всего применяется значение fixed, при котором фон остается неподвижным, а содержимое блока прокручивается поверх него.
Основные моменты использования:
background-attachment: fixed;– закрепляет фон относительно окна браузера.- Работает лучше с изображениями, ширина которых не менее 1200px, чтобы при прокрутке не проявлялась пикселизация.
- Совместимо с любыми позиционированием и размерами через
background-positionиbackground-size.
Пример реализации параллакса для секции страницы:
.section-parallax {
height: 600px;
background-image: url('example.jpg');
background-attachment: fixed;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
Практические рекомендации:
- Использовать
background-size: cover;для полного заполнения блока без искажений. - Для мобильных устройств можно отключать фиксированное закрепление через медиазапросы, поскольку многие браузеры на смартфонах игнорируют
fixed. - Комбинировать с
linear-gradient, чтобы улучшить читаемость текста поверх изображения. - Минимизировать размер изображений без потери качества, чтобы ускорить загрузку страниц с параллакс-эффектом.
Фоновое закрепление через background-attachment – простой способ добавить глубину дизайну страницы без использования JavaScript. Оптимизация размеров и корректное позиционирование обеспечивают плавный визуальный эффект.
Комбинирование закрепленного фона с повторением

Закрепленный фон в CSS сохраняет своё положение при прокрутке страницы, а свойство background-repeat управляет повторением изображения по горизонтали, вертикали или обеим осям. Совмещение этих свойств позволяет создавать визуально стабильные текстуры или узоры, которые не сдвигаются при скролле, но повторяются для покрытия всей области.
Пример синтаксиса для блока с закрепленным и повторяющимся фоном:
background-image: url('pattern.png');
background-attachment: fixed;
background-repeat: repeat;
Возможные значения background-repeat:
| Значение | Описание |
|---|---|
| repeat | Повторяет изображение по горизонтали и вертикали |
| repeat-x | Повторяет только по горизонтали |
| repeat-y | Повторяет только по вертикали |
| no-repeat | Не повторяет изображение |
Для больших фоновых изображений рекомендуется использовать background-size с конкретными размерами или cover/contain, чтобы повторение не создавало видимых швов. Закрепление фона удобно сочетать с повторением для узких паттернов, таких как линии или точки, когда нужно сохранить стабильность рисунка при прокрутке, но обеспечить покрытие всей области.
Пример для всей страницы с вертикальными повторяющимися линиями:
body {
background-image: url('vertical-stripes.png');
background-attachment: fixed;
background-repeat: repeat-y;
background-position: left top;
}
Использование комбинации закрепления и повторения также эффективно в блоках с фиксированной высотой. В таких случаях можно ограничить область повторения через background-position и background-size, чтобы контролировать визуальный ритм рисунка и избегать излишнего дублирования элементов.
Фоновые градиенты с фиксацией положения
Для закрепления фонового градиента на странице или блоке используется свойство background-attachment: fixed;. Оно позволяет градиенту оставаться неподвижным при прокрутке содержимого. Например, линейный градиент можно применить так: background: linear-gradient(135deg, #ff7e5f, #feb47b); background-attachment: fixed;.
Градиенты с фиксированным положением эффективны для создания эффекта параллакса без использования JavaScript. При этом важно учитывать размер контейнера: градиент растягивается по размеру блока, поэтому рекомендуется задавать background-size: cover; или конкретные размеры, чтобы сохранить пропорции.
Для радиальных градиентов можно зафиксировать центр с помощью background-position: center;. Например: background: radial-gradient(circle at center, #4facfe, #00f2fe); background-attachment: fixed; background-size: cover;. Это обеспечивает равномерное распределение цвета при скролле.
Комбинирование нескольких градиентов также поддерживает фиксацию: background: linear-gradient(to right, rgba(255,255,255,0.5), rgba(255,255,255,0)), radial-gradient(circle at top, #ff7e5f, #feb47b); background-attachment: fixed;. Важно, чтобы background-repeat был установлен в no-repeat, если требуется точная фиксация визуальных элементов.
Для оптимизации производительности рекомендуется ограничивать сложные градиенты и использовать фиксированные цвета или простые переходы. На мобильных устройствах background-attachment: fixed может работать нестабильно, поэтому стоит проверять поддержку в браузерах и при необходимости использовать fallback с обычным градиентом без фиксации.
Контроль прокрутки и закрепленного фона на мобильных устройствах

На мобильных устройствах свойство background-attachment: fixed часто работает нестабильно из-за аппаратного ускорения и ограничений браузеров. В iOS и некоторых версиях Android фиксированный фон может не оставаться на месте при прокрутке.
Для стабильного эффекта используют альтернативы, например: CSS-свойства transform и position: sticky или отдельный контейнер с фиксированным положением через position: absolute внутри родителя с overflow: hidden.
Пример практического подхода: создать блок-фон с position: absolute; top: 0; left: 0; width: 100%; height: 100% и поместить под основным контентом. Контенту задается position: relative, что позволяет эмулировать фиксированный фон при прокрутке.
Для плавной прокрутки и снижения нагрузки на GPU на мобильных устройствах рекомендуется использовать background-size: cover вместо больших изображений, а также минимизировать использование параллакса с background-attachment: fixed.
Тестирование должно проводиться на реальных устройствах: iOS Safari, Chrome и Firefox для Android. Эмуляторы часто некорректно отображают поведение закрепленного фона.
Если требуется параллакс-эффект, эффективнее применять JavaScript с requestAnimationFrame и трансформации блока, а не полагаться на background-attachment: fixed, что обеспечивает кроссбраузерную совместимость и уменьшает потребление ресурсов.
Ошибки при закреплении фоновых изображений и их исправление
Частая ошибка – использование свойства background-attachment: fixed; на мобильных устройствах без учета ограничений браузеров. На iOS и некоторых Android-устройствах фиксированный фон не работает корректно. Решение – использовать медиа-запросы и отключать фиксирование для экранов шириной меньше 768px: @media (max-width: 767px) { background-attachment: scroll; }.
Некорректное масштабирование фонового изображения приводит к обрезке или растягиванию. Ошибка возникает при использовании background-size: cover; вместе с фиксированным фоном на блоках с переменной высотой. Исправление – комбинировать background-size: contain; для сохранения пропорций и дополнительно контролировать позицию через background-position: center;.
Еще одна проблема – отсутствие fallback-цвета при закреплении изображения. Если картинка не загрузилась, фон может выглядеть пустым. Рекомендация – задавать background-color, совпадающий с основными оттенками изображения: background-color: #f2f2f2;.
Ошибка смешивания нескольких фоновых изображений с разным закреплением. Например, первый слой фиксированный, второй – прокручиваемый. Браузеры обрабатывают это нестабильно. Исправление – разделять слои на отдельные блоки или использовать только один фиксированный слой.
Неправильное наследование фоновых свойств от родительских элементов. Если родитель имеет background-attachment: fixed;, дочерний блок с прозрачным фоном может проявлять неожиданный эффект прокрутки. Решение – явно задавать background-attachment для каждого блока.
Ошибка при использовании параллакс-эффекта через background-attachment: fixed; на контейнерах с overflow: auto/scroll. Фон перестает фиксироваться. Исправление – применять фиксированный фон только к body или оборачивать контент в отдельный контейнер без overflow.
Вопрос-ответ:
Как закрепить фон на всей странице, чтобы он не прокручивался вместе с контентом?
Для закрепления фонового изображения на странице используется свойство background-attachment: fixed;. Оно позволяет сделать так, чтобы изображение оставалось на месте при прокрутке страницы. Обычно это сочетаетcя с background-size: cover;, чтобы фон занимал всю область окна браузера, и background-position: center; для центрирования изображения. Важно учитывать, что на мобильных устройствах эффект может работать иначе из-за особенностей браузеров.
Можно ли закрепить фон только для отдельного блока, а не для всей страницы?
Да, фон можно закрепить для конкретного блока, используя те же свойства CSS: background-attachment: fixed;, background-size и background-position. Однако в этом случае важно, чтобы блок имел явно заданную высоту и ширину, иначе закрепление может не дать ожидаемого визуального эффекта. Для небольших блоков иногда удобнее использовать background-attachment: local;, чтобы фон оставался привязанным к области блока при прокрутке его содержимого.
Почему фон с background-attachment: fixed не работает на мобильных устройствах?
Некоторые мобильные браузеры ограничивают работу свойства background-attachment: fixed; из-за особенностей оптимизации прокрутки и экономии ресурсов. В таких случаях фон может вести себя как обычный и прокручиваться вместе с контентом. Решение — использовать медиазапросы, чтобы задавать альтернативные варианты фона для мобильных экранов, например, без закрепления или с другими эффектами позиционирования.
Какие значения background-attachment существуют и чем они отличаются?
Свойство background-attachment может принимать три значения: scroll, fixed и local. Значение scroll делает фон обычным — он прокручивается вместе с содержимым. fixed закрепляет фон относительно окна браузера, не позволяя ему двигаться при прокрутке. local привязывает фон к содержимому блока, то есть фон прокручивается вместе с текстом или другими элементами внутри блока. Выбор зависит от того, какой визуальный эффект требуется для страницы или блока.
Можно ли использовать несколько слоев фона с разными способами закрепления?
Да, CSS поддерживает несколько фоновых слоев с разными свойствами через запись через запятую. Например, можно задать один слой с background-attachment: fixed для основного изображения и второй слой с scroll для декоративных элементов. Главное — помнить, что порядок слоев влияет на визуальное наложение: первый слой в списке находится сверху, а последний — снизу. Также нужно учитывать, что некоторые браузеры могут по-разному обрабатывать сложные комбинации слоев с закреплением.
Как закрепить фон страницы, чтобы он не прокручивался вместе с контентом?
Для того чтобы фон страницы оставался на месте при прокрутке, используется свойство background-attachment со значением fixed. Например: body { background-image: url('image.jpg'); background-attachment: fixed; }. Это закрепляет изображение на экране, и при прокрутке текста оно остаётся на месте. Важно помнить, что на мобильных устройствах некоторые браузеры могут игнорировать fixed, поэтому для адаптивных сайтов иногда используют другие подходы, например, псевдоэлементы с абсолютным позиционированием.
Можно ли закрепить фон только для отдельного блока, а не всей страницы?
Да, свойство background-attachment: fixed работает и для отдельных блоков, но нужно учитывать, что оно будет фиксировать фон относительно окна просмотра, а не блока. Если требуется, чтобы фон оставался на месте внутри блока при прокрутке контента блока, лучше использовать вложенный элемент с абсолютным позиционированием и скрывать переполнение через overflow: hidden. Пример: .block { position: relative; overflow: hidden; } .block::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url('image.jpg') no-repeat center; background-size: cover; }. Такой приём позволяет фоновой картинке оставаться статичной внутри блока, не влияя на остальной контент страницы.
