Категория > Вёрстка > Фон для сайта с картинкой на весь экран (background-size) - «Верстка»
Фон для сайта с картинкой на весь экран (background-size) - «Верстка»18-03-2016, 16:25. Автор: Дмитрий |
Веб технологии, как и различного рода тенденции в дизайне, не стоят на месте, поэтому каждый раз появляются какие-то новые фишки и нюансы для сайтов. Одним из подобных направлений можно назвать использование фона (backgorund), который растягивается на весь экран по ширине и высоте. Что-то вроде около года назад или больше я рассказывал как сделать большой фон для сайта через CSS – изображение помещалось в шапку блога и плавно "переходило” в основной фоновый цвет веб-страницы. Размещение на фоне большой масштабируемой картинки – это что-то новое и более сложное занятие, решение которого нашел в этой статье.
Цель данного урока разместить на сайте фоновую картинку, которая бы постоянно закрывала весь фон окна браузера. Что же конкретно нужно сделать: Итак, имеется сразу несколько подходящих решений для фона сайта на весь экран. Замечательное, простое и прогрессивное решение с помощью CSS3Для реализации задачи мы можем использовать свойство background-size в CSS3. Будем использовать элемент html который получше body. Установим фиксированный и центрированный бэкграунд, после чего будем использовать в background-size значение cover. html { Решение поддерживают почти все браузеры популярные в сети: Некий Goltzman нашел решение, которое позволяет работать хаку в IE filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='.myBackground.jpg', sizingMethod='scale'); Но внимание!!! при этом могут возникнуть некоторые проблемы с работой ссылок на странице. Кстати, чуть позже Matt Litherland добавил что код, в принципе, можно использовать но для этого нельзя применять элементы html или body а нужно реализовать все через div с 100% высотой и шириной. CSS-хак номер 1Альтернативную версию представляет Doug Neiner. В этом случае используется встроенный в страницу элемент , который может изменять размер в любом браузере. Устанавливаем значение min-height, которое способствует заполнению окна браузера вертикально и ставим 100% для width, что заполняет страницу горизонтально. Также ставим min-width чтобы изображение никогда не было меньшим, чем оно есть на самом деле. Дальше в хаке используется опция @media для проверки является ли окно браузера меньшим чем изображение и с помощью процентного значения left и свойства margin-left выравниваем картинку по центру. thumb.bg { Работает в любых версиях качественных браузеров – Safari / Opera / Firefox и Chrome. Для IE как всегда есть свои нюансы: CSS-хак вариант 2Еще один вариант решения задачи с помощью CSS стилей это разместить встроенное изображение на странице с фиксированной позицией в левом верхнем углу, после чего задать для min-width и min-height значение 100% сохраняя пропорции. #bg { Однако это не позволяет центрировать картинку, что, в принципе, хотелось бы сделать. Поэтому добавляем внешний для изображения DIV. Он делается в два раза большим, чем размер окна браузера, после чего картинка будет сохранять соотношения сторон, закрывать все окно браузера и при этом быть в его центре. #bg { Хак работает в: Метод с jQueryДанный вариант намного легче (с точки зрения CSS) если мы знаем что соотношение сторон картинки (thumb используется в качестве фона) больше или меньше текущего соотношения окна браузера. Если меньше, то мы можем использовать только width = 100% и при этом по ширине и высоте окно будет одинаково заполнено. Если больше – можно указать только height = 100% для заполнения всего окна. Доступ ко всем данным идет через javascript, коды используются следующие: #bg { position: fixed; top: 0; left: 0; } $(window).load(function() { По моему, центрирование в этом случае не производится (насколько я понял), но его можно сделать. Поддерживается большинство десктопных браузеров, в том числе IE7+. Напоследок автор статьи про хаки подготовил набор файлов примеров, в которых это все реализована – скачать можно здесь. В комментариях к статье-оригиналу также содержится некоторая информация и обсуждение, хотя большинство важных деталей автор добавлял в виде апрейтов к посту и у меня он также переведены и указаны. Конечно, разобраться во всем этом помогут и примеры. В целом, если бы не постоянные "приколы” от IE7 все упомянутые хаки были бы идеальными. P.S. Бзаузеры – основной инструмент для работы пользователя в интернете, а лучшие firefox плагины помогают сделать ее максимально удобной, быстрой за счет новых функций и возможностей. Перейти обратно к новости |