Hai ragione che background-size
non è supportato su un numero di browser meno recenti.
La soluzione tipica a questo è di simularlo utilizzando un ulteriore <div>
o anche un elemento <img>
posizionato dietro l'elemento che si desidera avere lo sfondo.
Questo può essere ottenuto semplicemente utilizzando il markup aggiuntivo, ma questa soluzione ha lo svantaggio del significato che verrà utilizzata per tutti i browser, anziché la proprietà background-size
. In altre parole, significa deliberatamente degradare il codice per motivi di vecchi browser, che non è l'ideale.
Se si desidera utilizzare la proprietà CSS per i browser che lo supportano, è possibile utilizzare un po 'di Javascript per generare il markup sopra, ma solo se necessario. Ciò significa che i browser moderni possono utilizzare felicemente lo background-size
e che solo i browser più vecchi utilizzeranno il fallback.
Ci sono un certo numero di soluzioni Javascript a questo disponibili sul web (un rapido google ha mostrato quanto segue: http://css-tricks.com/766-how-to-resizeable-background-image/ tra gli altri), ma soprattutto è necessario sapere come attivarlo in base al browser.
Qui è dove entra Modernizr. La descrizione che hai dato di Modernizr nella domanda non è del tutto precisa. Quello che fa è produrre un set di classi CSS nel markup HTML e le variabili corrispondenti nel tuo Javascript che rappresentano tutte le funzionalità del browser. Si tratta di flag booleani che indicano se il browser corrente supporta.
Quindi con Modernizr è possibile controllare in Javascript se il browser supporta background-size
o meno, e solo eseguire la funzione javascript alternativa se non lo supporta.
if(!Modernizr.backgroundsize) {
//do stuff here to simulate the background-size property for older browsers.
}
Spero che questo aiuti.
si prega di essere più specifico con *** browser più vecchi ***, IE6? FF4? qual è il tuo elenco di browser supportato di destinazione? – rlemon