HTML5shiv vs Dean Edwards IE7-js vs Modernizr - lequel choisir?


113

Je cherche à créer mon premier site HTML5 et je cherche à travailler avec IE.

Il y a html5shiv, Dean Edwards ie7-js et ensuite Modernizr. Sont-ils tous en grande partie les mêmes? Je ne sais pas quelle route emprunter.


1
+10 pour une question géniale bien posée.
Snekse le

Réponses:


124

Non, ils ne sont pas du tout les mêmes; ils font des choses complètement différentes.

  • html5shiv vous permet d'utiliser les nouvelles balises HTML5 dans les versions d'IE qui ne les comprennent pas. Sans cela, IE s'étouffera avec ces balises, vous en aurez donc besoin si vous avez l'intention d'utiliser les balises. Ne vous attendez pas à ce que les balises fassent quoi que ce soit dans IE! Cela empêche simplement le navigateur de se plaindre d'eux.

  • modernizr définit un ensemble de classes dans votre HTML, en fonction des fonctionnalités disponibles, que vous pouvez utiliser pour modifier votre mise en page en fonction de ce que le navigateur prend en charge. Il vous permet également d'utiliser les nouvelles balises HTML5 dans IE , comme html5shiv.

  • ie7.js (ainsi que ie8.jset ie9.js) utilise Javascript pour adapter certaines fonctionnalités manquantes à IE.

Pour autant que je sache, il n'y a pas de croisement entre eux (à part html5shiv / modernizr), vous pouvez donc utiliser n'importe quelle combinaison d'entre eux, en fonction des fonctionnalités que vous devez implémenter.

Pendant que je suis sur le sujet et que vous demandez des outils pour rendre IE plus compatible avec d'autres navigateurs, je vous suggère également de vous pencher sur CSS3Pie , qui vous rendra la vie beaucoup plus heureuse si vous prévoyez d'utiliser des coins arrondis sur votre site. (plus une ou deux autres fonctionnalités).

Cela n'a pas non plus de croisement avec les trois autres produits que vous avez mentionnés, bien qu'ils visent tous à rendre les anciennes versions d'IE un peu plus faciles à utiliser.


C'est la réponse que je cherchais. Merci :)
PaulM

64
Modernizr comprend essentiellement l'ensemble de html5shiv.
Paul Irish

Vue d'ensemble fantastique. M'a certainement aussi donné une direction. Merci!
ebrandell

2
@RoyiNamir - Modernizr définit les classes dans le HTML. Il ne fait rien d'autre avec ces classes, mais vous pouvez utiliser d'autres bibliothèques JS ou CSS pour référencer ces classes et faire ce que vous voulez, de la même manière que vous le feriez pour toute autre classe de votre code HTML. Un exemple: vous souhaitez utiliser un placeholderdans votre balise d'entrée. Mais l'ancien IE ne le prend pas en charge. Modernizr ajoutera une classe no-placeholderdans IE; vous pouvez écrire du code Javascript qui fait référence à cette classe afin de pouvoir implémenter un script pour imiter la fonction d'espace réservé sans l'exécuter sur des navigateurs qui n'en ont pas besoin. J'espère que cela explique
Spudley

1
IE9.jsfait tout ce que fait html5shiv.
Phil

12

Le moyen le plus simple de démarrer un nouveau projet HTML5 consiste à utiliser initializr . Il vous guidera et vous permettra de construire, télécharger vos fichiers de projet HTML5.


5

ils sont un peu les mêmes, et le chemin à parcourir est ATM aussi bien qu'une estimation, et pour mémoire, il y en a un que vous avez manqué, http://html5boilerplate.com/ C'est une sorte de répétition d'il y a quelques années lorsque le prototype et jQuery se battaient dans le même espace. Je risquerais personnellement que jQuery ait gagné, mais pour l'instant, il est impossible de dire lequel d'entre eux gagnera ce combat particulier. Je ne pense pas que je pourrais recommander dean edwards ie7-js car il s'agit principalement de faire en sorte qu'IE7 agisse comme d'autres navigateurs plus intelligents et sympathiques plutôt que de tirer parti de l'ensemble du HTML5 autant que des autres frameworks.


2
Merci d'avoir mentionné passe-partout. J'allais l'inclure dans ma question, mais je voulais que ce soit spécifique aux 3 éléments de ma question, car Modenizer est inclus dans le passe-partout.
PaulM

1
Vous vous trompez sur ce qu'est html5boilerplate, html5boilerplate est un paquet contenant ce dont vous avez besoin pour démarrer un projet Web, tel que initializr, à un moment donné dans les anciennes versions de html5boilerplate et même peut-être maintenant, cela expliquerait que vous devriez utiliser modernizr ou html5shiv et ne pas utiliser les deux, car modernizr fait ce dont vous avez besoin, vous devez également télécharger un modernizr personnalisé pour votre environnement de production et n'utiliser que ce dont vous avez besoin, si vous n'allez pas utiliser les classes modernizr, vous devez vous en tenir à html5shiv!
Neo

html5boilerplate a radicalement changé depuis que cette question a été posée en 2010 et maintenant. il l'a fait alors, ce qui était voulu dans la question posée alors, regroupait tout ce dont vous aviez besoin pour démarrer un projet HTML5. la question initiale était «Je cherche à créer mon premier HTML5». Je crois toujours que html5boilerplate était une option alternative acceptable pour la question posée au moment où elle a été posée.
FatherStorm
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.