2011-11-26 19 views
14

Si SÓLO necesito navegadores antiguos para reconocer etiquetas HTML5, ¿qué debo usar, Modernizr o el popular HTML5 shiv? Y además, si no necesito diseñar estas etiquetas HTML5, ¿necesito que los navegadores las reconozcan de todos modos? ¿O solo es necesario al agregar CSS a estas etiquetas?Modernizr vs HTML shiv

Gracias!

+4

Solo necesita el shiv HTML5 para agregar estilos a etiquetas html5 a través de CSS. También modernizr incluye HTML5 shiv así que es un superconjunto – Raynos

+4

Me gustaría agregar Modernizr es más para detectar HTML5 ** características ** (como formatos de audio, reglas de estilo css, almacenamiento local ...) y no etiquetas HTML5 compatibles –

Respuesta

16

html5shiv básicamente permite que IE reconozca y personalice elementos HTML5, mientras que Modernizr ofrece la misma detección de funciones adicionales admitida por un generador de errores.

Para responder a su pregunta HTML5 shiv debería ser suficiente para reconocer etiquetas HTML5 en IE. (nota que digo IE aquí ya que eso es lo que apunta html5shiv, no estoy seguro de lo que quieres decir cuando dices navegadores antiguos)

Para la segunda parte, incluso si no quieres diseñar las etiquetas HTML5, te aconsejaría para usar el shiv ya que el navegador puede mostrarlos incorrectamente o no mostrarlos, por lo que es mejor estar seguro.

+0

Genial, me preguntaba si el shiv era necesario incluso si no diseñé las etiquetas. Lástima que solo funciona con IE (cuando dije navegadores antiguos me refería a Firefox 1 o 2, o cualquier versión de Chrome/Opera que no sea compatible con HTML5) – federicot

+0

No es muy común encontrar a alguien que use FF1 actualmente;) – omarello

+0

Usted está equivocado de acuerdo con lo que leí en [Wikipedia] (http://en.wikipedia.org/wiki/Modernizr#What_Modernizr_doesn.27t_do). – Shimmy

11

HTML5 Shiv es más pequeño, y a menos que necesite alguna de la funcionalidad de detección de Modernizr, vaya por el shiv.

El tamaño del archivo es muy importante, ya que siempre está en la cabecera del documento html y bloquea la descarga de recursos adicionales hasta que se ejecute por completo.

Ya que sólo es necesario para los navegadores antiguos, utilizo el siguiente código:

<!--[if lt IE 9]> 
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 

Puede eliminar las etiquetas HTML que no utiliza, pero entonces no podrá el uso del archivo alojado en Google.

+0

¿Qué me proporciona esta _detección_? Solo escribo html y Js. y supone aplicar estilo a todos los elementos (incluidos los html5), entonces, ¿qué quiere decir con "detección"? ¿Puedes por favor dar un ejemplo? –

1

Alternativamente, puede usar Modernizr para cargar un archivo en particular si el explorador admite esas características particulares de CSS o HTML5.

Digamos que si el navegador no soporta 'lienzo' como elemento de HTML5 y 'fontface' como propiedad CSS3

Modernizr.load({ 
test: Modernizr.fontface && Modernizr.canvas, // Test if the browser supports it or not 
yep : '/path-to/html5-css3-attributes.css', // If browser supports it, load this file 
nope: '/path-to/old-css-attributes.css' // If NOT, load this instead 
}); 

Puede utilizar Js también en su condición de ruta de archivo.