HTML5shiv vs Dean Edwards IE7-js vs Modernizr - ¿cuál elegir?

113

Estoy buscando construir mi primer sitio HTML5 y he estado buscando trabajar con IE.

Hay html5shiv, Dean Edwards ie7-js y luego Modernizr. ¿Son todos básicamente iguales? Estoy confundido acerca de qué ruta tomar.

PaulM
fuente
1
+10 por una pregunta genial bien formulada.
Snekse

Respuestas:

124

No, no son iguales en absoluto; hacen cosas completamente diferentes.

  • html5shiv le permite usar las nuevas etiquetas HTML5 en versiones de IE que no las entienden. Sin él, IE se ahogará con estas etiquetas, por lo que necesita esto si tiene la intención de usar las etiquetas. ¡Sin embargo, no espere que las etiquetas hagan algo en IE! Simplemente evita que el navegador se queje de ellos.

  • modernizr establece un montón de clases en su HTML, dependiendo de las características disponibles, que puede usar para cambiar su diseño de acuerdo con lo que admita el navegador. También le permite utilizar las nuevas etiquetas HTML5 en IE , como html5shiv.

  • ie7.js (así como ie8.jsy ie9.js) usa Javascript para adaptar algunas funciones faltantes a IE.

Hasta donde yo sé, no hay cruces entre ellos (aparte de html5shiv / modernizr), por lo que puede usar cualquier combinación de ellos, dependiendo de las características que necesite implementar.

Ya que estoy en el tema, y ​​dado que estás preguntando sobre herramientas para hacer que IE sea más compatible con otros navegadores, te sugiero que también mires CSS3Pie , que te hará la vida mucho más feliz si planeas usar esquinas redondeadas en tu sitio. (más una o dos características más).

Esto tampoco tiene ningún cruce con los otros tres productos que mencionaste, aunque todos tienen como objetivo hacer que las versiones antiguas de IE sean un poco más fáciles de trabajar.

Spudley
fuente
Esa es la respuesta que estaba buscando. Gracias :)
PaulM
64
Modernizr incluye esencialmente la totalidad de html5shiv.
Paul Irish
Fantástica descripción general. Ciertamente también me dio alguna dirección. ¡Gracias!
ebrandell
2
@RoyiNamir: Modernizr establece clases en HTML. En sí mismo no hace nada más con esas clases, pero puede usar otras bibliotecas JS o CSS para hacer referencia a esas clases y hacer lo que desee, de la misma manera que lo haría con cualquier otra clase en su código HTML. Un ejemplo: desea utilizar un placeholderen su etiqueta de entrada. Pero el antiguo IE no lo admite. Modernizr agregará una clase no-placeholderen IE; puede escribir código Javascript que haga referencia a esta clase para poder implementar un script para imitar la función de marcador de posición sin que se ejecute en navegadores que no lo necesitan. Espero que eso lo explique
Spudley
1
IE9.jshace todo lo que hace html5shiv también.
Phil
12

La forma más sencilla de iniciar un nuevo proyecto HTML5 es utilizar initializr . Le guiará y le permitirá construir y descargar sus archivos de proyecto HTML5.

ZOZ
fuente
5

son algo iguales, y qué camino tomar es ATM como una buena conjetura de cualquier manera, y para que conste, hay uno que se perdió, http://html5boilerplate.com/ Esto es una especie de repetición de hace algunos años cuando el prototipo y jQuery estaban peleando en el mismo espacio. Personalmente, me arriesgaría a que jQuery ganó, pero por ahora no se sabe cuál de estos ganará esta pelea en particular. No creo que pueda recomendar dean edwards ie7-js, ya que se trata principalmente de hacer que IE7 actúe como otros navegadores más inteligentes y agradables en lugar de aprovechar todo el HTML5 tanto como los otros marcos.

PadreTormenta
fuente
2
Gracias por mencionar el texto estándar. Iba a incluir esto en mi pregunta, pero quería que fuera específico para los 3 elementos de mi pregunta, ya que Modenizer está incluido en el texto estándar.
PaulM
1
Se equivoca acerca de qué es html5boilerplate, html5boilerplate es un paquete que contiene lo que necesita para iniciar un proyecto web, como initializr, en algún momento en versiones anteriores de html5boilerplate e incluso quizás ahora, explicaría que debería usar modernizr o html5shiv y no use ambos, ya que modernizr hace lo que necesita, también debe descargar un modernizr personalizado para su entorno de producción y usar solo lo que necesita, si no va a usar las clases modernizr suministros, ¡entonces debe atenerse a html5shiv!
Neo
html5boilerplate ha cambiado drásticamente desde que se hizo esta pregunta en 2010 y ahora. lo hizo entonces, lo que se quería en la pregunta formulada entonces, incluía todo lo necesario para iniciar un proyecto HTML5. la pregunta original era "Estoy buscando construir mi primer HTML5". Sigo creyendo que html5boilerplate era una opción alternativa aceptable para la pregunta formulada en el momento en que se formuló.
FatherStorm