2009-11-17 10 views
7

He estado trabajando con Modernizr y es un recurso maravilloso, solo un gran proyecto. Sin embargo, la forma en que he estado usando es:¿Por qué utilizar Modernizr si los navegadores ignoran CSS que no entienden?

  • Diseño con el valor inicial de CSS (IE)
  • Mejore con efectos CSS3 para navegadores avanzados

A menos que iba a reemplazar completamente los estilos basado en el comportamiento, ¿por qué no debería simplemente agregar estilos como sombreados, gradientes y radios de borde a la hoja de estilo? Si el navegador no comprende una regla, simplemente la ignorará, ¿correcto? Y si JavaScript está desactivado, no puedo usarlo de todos modos.

¿Debo utilizar el método anterior en el caso típico y Modernizr para casos avanzados? ¿O hay algo de malo en depender de los navegadores para ignorar lo que no entienden?

Respuesta

6

Puede usar elementos (html 5) que algunos navegadores aún no admiten. También puede especificar el estilo alternativo.

Muchos navegadores crean sus propias reglas de CSS para cosas como text-transform. Con Modernizr puede escribir una regla y Modernizr hace que suceda para múltiples navegadores.

Creo que es solo de conveniencia.

+2

Ese es un buen punto, no es necesario meterse con las extensiones -webkit, -moz y -khtml y hay que pensar en qué navegadores son compatibles con las funciones de CSS3. No sé por qué no se me ocurrió eso. – Don

+0

¿Por qué no utilizar https://github.com/codler/jQuery-Css3-Finalize para agregar el prefijo si está utilizando JS de todos modos? – JKirchartz

+0

El problema con las soluciones de Javascript como este es cuando el usuario desactive javascript. Una mejor forma de hacer cosas específicas del navegador es del lado del servidor, es más rápido, con capacidad de caché y más confiable. He hecho esto y funciona perfectamente. Simplemente escriba su CSS en, por ejemplo, Firefox y no se preocupe por otros navegadores porque el CSS se traducirá automáticamente. – Codebeat

16

Tiene toda la razón que los navegadores más antiguos ignoran completamente gran parte de lo que hay en CSS3.

Debido a eso, hago mi CSS3 en mis selectores básicos .. pero a menudo hacen uso de las clases no-característica de la Modernizr para manejar el mayor caso navegador:

div.box { 
     height:50px; 
     -moz-box-shadow: 3px 3px 5px #555; 
     -webkit-box-shadow: 3px 3px 5px #555; } 

div.box span.fakeshadow { 
     display:none; 
} 

.no-boxshadow div.box span.fakeshadow { 
     display:block; background: url('fakeshadowbg.png'); 
} 

espero que hace que sea más clara .

+3

Procedente de uno de los creadores de Modernizr, tendría que decir, sí, eso lo deja más claro. Excelente ejemplo, también. Los 3 casos que me preocupan (navegador con capacidad, navegador más viejo, navegador más antiguo con JavaScript desactivado) se manejan y el sitio se degrada graciosamente. – Don

Cuestiones relacionadas