Вы правы, что background-size
не поддерживается в некоторых старых браузерах.
Типичное решение для этого - смоделировать его, используя дополнительный <div>
или даже <img>
элемент, расположенный за элементом, фон которого вы хотите.
Этого можно достичь, просто используя дополнительную разметку, но у этого решения есть недостаток, заключающийся в том, что вы будете использовать его для всех браузеров вместо свойства background-size
. Другими словами, это означает намеренное ухудшение вашего кода ради старых браузеров, что не идеально.
Если вы хотите использовать свойство CSS для браузеров, которые его поддерживают, вы можете использовать немного Javascript для генерации вышеуказанной разметки, но только при необходимости. Это означает, что современные браузеры могут с радостью использовать background-size
, и только старые браузеры будут использовать запасной вариант.
Существует несколько Javascript-решений для этого, доступных в Интернете (быстрый Google обнаружил следующее: http://css -tricks.com / 766-how-to-resizeable-background-image / среди прочего), но что более важно, вам нужно знать, как запустить его на основе браузера.
Это то место, где приходит Модернизр. Описание, которое вы дали Модернизру в вопросе, не совсем точно. Он создает набор CSS-классов в вашей HTML-разметке и соответствующие переменные в вашем Javascript, которые представляют все функции браузера. Это логические флаги, указывающие, поддерживает ли текущий браузер.
Таким образом, с помощью Modernizr вы можете проверить в Javascript, поддерживает ли браузер background-size
или нет, и запускать альтернативную функцию javascript, только если она не поддерживает ее.
if(!Modernizr.backgroundsize) {
//do stuff here to simulate the background-size property for older browsers.
}
Надеюсь, это поможет.