HTML5shiv vs Dean Edwards IE7-js vs Modernizr - qual escolher?

113

Estou procurando construir meu primeiro site HTML5 e estou procurando trabalhar com o IE.

Há html5shiv, Dean Edwards ie7-js e então Modernizr. São todos basicamente iguais? Estou confuso sobre qual caminho seguir.

PaulM
fonte
1
+10 para uma pergunta incrível bem colocada.
Snekse

Respostas:

124

Não, eles não são iguais; eles fazem coisas completamente diferentes.

  • html5shiv permite que você use as novas tags HTML5 em versões do IE que não as entendem. Sem ele, o IE vai engasgar com essas tags, então você precisa disso se pretende usar as tags. Não espere que isso faça com que as tags realmente façam alguma coisa no IE! Isso apenas impede o navegador de reclamar deles.

  • modernizr define um monte de classes em seu HTML, dependendo dos recursos disponíveis, que você pode usar para alterar seu layout de acordo com o que o navegador suporta. Ele também permite que você use as novas tags HTML5 no IE , como html5shiv.

  • ie7.js (bem como ie8.jse ie9.js) usa Javascript para adaptar algumas funcionalidades que faltam ao IE.

Pelo que eu sei, não há cruzamento entre eles (além de html5shiv / modernizr), então você pode usar qualquer combinação deles, dependendo de quais recursos você precisa implementar.

Já que estou falando sobre o assunto, e já que você está perguntando sobre ferramentas para tornar o IE mais compatível com outros navegadores, sugiro que você também dê uma olhada no CSS3Pie , que tornará sua vida muito mais feliz se você planeja usar cantos arredondados em seu site (mais um ou dois outros recursos).

Isso também não se cruza com os outros três produtos que você mencionou, embora todos tenham como objetivo tornar as versões antigas do IE um pouco mais fáceis de trabalhar.

Spudley
fonte
Essa é a resposta que eu estava procurando. Obrigado :)
PaulM
64
Modernizr inclui essencialmente todo o html5shiv.
Paul Irish,
Visão geral fantástica. Certamente me deu alguma direção também. Obrigado!
ebrandell
2
@RoyiNamir - Modernizr define classes no HTML. Ele mesmo não faz nada mais com essas classes, mas você pode usar outras bibliotecas JS ou CSS para fazer referência a essas classes e fazer o que quiser, da mesma forma que faria com qualquer outra classe em seu código HTML. Um exemplo: você deseja usar um placeholderem sua tag de entrada. Mas o antigo IE não o suporta. Modernizr adicionará uma classe no-placeholderno IE; você pode escrever o código Javascript que faz referência a essa classe para que possa implementar um script para imitar o recurso de espaço reservado sem que seja executado em navegadores que não precisam dele. Espero que isso explique
Spudley
1
IE9.jsfaz tudo o que o html5shiv também faz.
Phil
12

A maneira mais fácil de iniciar um novo projeto HTML5 é usando o initializr . Ele irá guiar e permitir que você construa, baixe seus arquivos de projeto HTML5.

ZOZ
fonte
5

eles são mais ou menos iguais, e para que lado ir é ATM é um bom palpite de qualquer maneira, e para que conste, há um que você perdeu, http://html5boilerplate.com/ Isso é uma espécie de repetição de alguns anos atrás, quando o protótipo e jQuery estavam lutando no mesmo espaço. Eu pessoalmente arriscaria que jQuery vencesse, mas por enquanto não há como dizer qual deles vai ganhar essa luta em particular. Eu não acho que eu poderia recomendar reitor edwards ie7-js, pois ele trata principalmente de fazer o IE7 agir como outros navegadores mais inteligentes e agradáveis ​​ao invés de alavancar toda a coisa do HTML5 tanto quanto os outros frameworks.

FatherStorm
fonte
2
Obrigado por mencionar o boilerplate. Eu ia incluir isso na minha pergunta, mas queria que fosse específico para os três itens da minha pergunta, já que o Modenizer está incluído no clichê.
PaulM
1
Você está incorreto sobre o que é html5boilerplate, html5boilerplate é um pacote que contém o que você precisa para iniciar um projeto da web, como o initializr, em algum ponto em versões mais antigas do html5boilerplate e talvez agora, explicaria que você deve usar modernizr ou html5shiv e não use ambos, já que modernizr faz o que você precisa, você também deve baixar um modernizr customizado para seu ambiente de produção e usar apenas o que você precisa, se você não for usar as classes modernizr supplies, então você deve se ater ao html5shiv!
Neo
html5boilerplate mudou dramaticamente desde que essa pergunta foi feita em 2010 e agora. ele fez então, o que era desejado na pergunta feita então, empacotou tudo que você precisava para iniciar um projeto HTML5. a pergunta original era 'Estou procurando construir meu primeiro HTML5'. Ainda acredito que html5boilerplate era uma opção alternativa aceitável para a pergunta feita no momento em que foi feita.
FatherStorm