Как растянуть фоновый рисунок на весь экран

Как растянуть фоновый рисунок на весь экран

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

Подобный урок уже приводился на сайте RUSELLER.COM. Но с того момента прошло время и наступила пора обновить и расширить список используемых методов.

Вот требования к решению:

Заполнять изображением всю страницу без пробелов.

Масштабировать изображение, если нужно.

Сохранять пропорции изображения.

Изображение центрируется на странице.

Изображение не создает никаких полос прокрутки.

Кросс-браузерное решение по возможности.

Не использовать никаких сторонних технологий, например, Flash.

Удивительный, простой и прогрессивный метод CSS3

Задача легко решается с помощью CSS3 благодаря ставшему доступным свойству background-size . Мы используем элемент html (лучше, чем body , так как он всегда имеет, по крайней мере, высоту окна браузера). Устанавливаем фиксированные и центрированный фон для него, а затем настраиваем размер с помощью присваивания свойству background-size ключевого слова cover.

Opera 10+ (Opera 9.5 поддерживает свойство background-size, но без ключевых слов)

Техника с использованием только CSS. Часть #1.

Используем строчный элемент , размеры которого можно менять в любом браузере. Устанавливаем свойство min-height , чтобы заполнить окно браузера вертикально, а свойству width присваиваем значение 100% для заполнения по горизонтали. Также устанавливаем свойство min-width равным ширине изображения, чтобы никогда оно не уменьшалось.

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

Любой версии нормального браузера: Safari / Chrome / Opera / Firefox.

IE 6: Не работает — но можно использовать какой-нибудь из трюков для позиционирования.

IE 7/8: В большинстве случаев работает, не центрирует маленькие изображения, но заполняет экран правильно.

Читайте также:  Впр если несколько условий

Техника с использованием только CSS. Часть #2.

Другой способ решить задачу — поместить строчный элемент на странице, зафиксировать его положение в левом верхнем углу и установить значение 100% для его свойств min-width и min-height , сохраняя коэффициент пропорциональности.

Однако так изображение не центрируется. Поэтому обернем изображение в элемент

Safari / Chrome / Firefox (не тестировалось на всех версиях, но в последних работает прекрасно).

Opera (любая версия) и IE отказываются работать с данным способом (неправильное позиционирование изображения).

Используем jQuery

Идея очень проста, если коэффициент пропорциональности изображения (строчный элемент будет использоваться как фон) сопоставляется с коэффициентом пропорциональности окна браузера. Если для изображения он меньше, то нужно присвоить только свойству изображения width значение 100%, и оно будет заполнять экран и по высоте и по ширине. А если больше, то присвоить только свойству изображения height значение 100%.

Фоновое изображение на всю страницу бывает полезно, когда Вы создаете портфолио или фотогалерею на сайте. Обычно реализация подразумевает использование jQuery плагина, который будет менять размер изображения относительно окна браузера и делать необходимые расчеты, чтобы изображение заполняло всю ширину и высоту.

Но есть способ, жертвуя поддержкой IE8 и ниже, реализовать это всего лишь несколькими строчками CSS кода.

Свойство background-size

С помощью background-size можно масштабировать изображение по заданным размерам. Согласно документации этого свойства (ссылка на htmlbook) оно может принимать значения cover и contain .

  • cover — Масштабирует изображение с сохранением пропорций таким образом, чтобы картинка целиком поместилась внутрь блока.
  • contain — Масштабирует изображение с сохранением пропорций так, чтобы его ширина или высота равнялась ширине или высоте блока.

Всё, что нам нужно установить фоновое изображения для HTML:

Читайте также:  Как вызвать ножницы в windows 10

Готово! Теперь изображение отображается на весь экран, даже при изменении размера окна браузера. Работает так же в IE9+.

Растягиваю фон по ширине экрана, прописал стили :

Всё работает на среднем разрешении, но когда выводится на широкоэкранном мониторе, картинка начинает убегать вверх, с чем это может быть связано и как можно вылечить?

  • Вопрос задан более трёх лет назад
  • 28269 просмотров

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

Советую вообще не использовать background-size: cover;
А сделать бэкграунд таким образом, чтобы на широкоформатных экранах он центрировался, а остальное поле заполнял фоновый цвет. Для этого нужно сделать, чтобы фоновое изображение по краям соответствовало фоновому цвету, тогда не будет заметно границ.

То есть просто прописать:

А для остального задать центрирование и разумное увеличение, через @media

Ссылка на основную публикацию
Как разблокировать айфон зная apple id
Пользователи популярных смартфонов от Apple часто ставят на гаджет пароль, чтобы повысить безопасность мобильного устройства и избежать неприятностей – кражи,...
Как поставить напоминалку на андроиде
Привет всем. Нужно ли вам напоминать о каких-либо событиях? Я думаю напоминания не помешают никому. В силу своей занятости или...
Как поставить пароль на покупку фильмов ростелеком
Интерактивное ТВ от Ростелеком предлагает абонентам огромное многообразие телеканалов различного содержания. Многие из них совершенно не рассчитаны на младшую аудиторию....
Как разблокировать домофон если отключили
Домофон — вещь нужная и полезная. Установленная в подъезде система отлично защищает жилище обывателей от проникновения посторонних людей. Второе преимущество...
Adblock detector