Tiene razón de que background-size
no es compatible con una serie de navegadores anteriores.
La solución típica para esto es simularlo usando un elemento adicional <div>
o incluso un elemento <img>
ubicado detrás del elemento que desea que tenga el fondo.
Esto se puede lograr simplemente mediante el uso de marcado adicional, pero esta solución tiene la desventaja de que significa que la utilizará para todos los navegadores, en lugar de la propiedad background-size
. En otras palabras, significa degradar deliberadamente tu código por el bien de los navegadores antiguos, lo cual no es ideal.
Si desea utilizar la propiedad CSS para navegadores compatibles, puede usar un poco de Javascript para generar el marcado anterior, pero solo si es necesario. Esto significa que los navegadores modernos pueden usar felizmente background-size
, y solo los navegadores más antiguos usarán el respaldo.
Hay una serie de soluciones de Javascript disponibles en la web (un google rápido presentó lo siguiente: http://css-tricks.com/766-how-to-resizeable-background-image/ entre otros), pero lo más importante es que necesita saber cómo activarlo en función del navegador.
Aquí es donde entra Modernizr. La descripción que ha dado de Modernizr en la pregunta no es del todo precisa. Lo que hace es producir un conjunto de clases CSS en su marcado HTML y variables coincidentes en su Javascript que representan todas las características del navegador. Estos son indicadores booleanos que indican si el navegador actual es compatible.
De modo que con Modernizr puede verificar en Javascript si el navegador admite background-size
o no, y solo ejecutar la función javascript alternativa si no lo admite.
if(!Modernizr.backgroundsize) {
//do stuff here to simulate the background-size property for older browsers.
}
Espero que ayude.
Por favor, se más específico con *** navegadores anteriores ***, IE6? FF4? ¿Cuál es su lista de navegadores compatibles? – rlemon