HTML5shiv gegen Dean Edwards IE7-js gegen Modernizr - welche wählen?


113

Ich möchte meine erste HTML5-Site erstellen und habe versucht, mit IE zu arbeiten.

Es gibt html5shiv, Dean Edwards ie7-js und dann Modernizr. Sind diese alle weitgehend gleich? Ich bin verwirrt, welchen Weg ich gehen soll.


1
+10 für eine großartige Frage.
Snekse

Antworten:


124

Nein, sie sind überhaupt nicht gleich. Sie machen ganz andere Dinge.

  • Mit html5shiv können Sie die neuen HTML5-Tags in IE-Versionen verwenden, die sie nicht verstehen. Ohne diese Option verschluckt der IE diese Tags. Sie benötigen sie daher, wenn Sie die Tags verwenden möchten. Erwarten Sie jedoch nicht, dass die Tags tatsächlich etwas im IE tun! Es hört einfach auf, dass sich der Browser darüber beschwert.

  • modernizr legt abhängig von den verfügbaren Funktionen eine Reihe von Klassen in Ihrem HTML-Code fest, mit denen Sie Ihr Layout entsprechend den vom Browser unterstützten Funktionen ändern können. Außerdem können Sie die neuen HTML5-Tags im IE wie html5shiv verwenden.

  • ie7.js (sowie ie8.jsund ie9.js) verwendet Javascript, um einige fehlende Funktionen an den IE anzupassen .

Soweit mir bekannt ist, gibt es keine Überkreuzung zwischen ihnen (abgesehen von html5shiv / modernizr), sodass Sie eine beliebige Kombination davon verwenden können, je nachdem, welche Funktionen Sie implementieren müssen.

Während ich mich mit diesem Thema befasse und Sie nach Tools fragen, mit denen der IE besser mit anderen Browsern kompatibel gemacht werden kann, sollten Sie sich auch mit CSS3Pie befassen , was Ihr Leben viel glücklicher macht, wenn Sie auf Ihrer Website abgerundete Ecken verwenden möchten (plus ein oder zwei weitere Funktionen).

Dies hat auch keine Überkreuzung mit den anderen drei von Ihnen erwähnten Produkten, obwohl sie alle darauf abzielen, alte IE-Versionen etwas einfacher zu bearbeiten.


Das ist die Antwort, nach der ich gesucht habe. Danke :)
PaulM

64
Modernizr umfasst im Wesentlichen das gesamte html5shiv.
Paul Irish

Fantastischer Überblick. Sicher gab mir auch eine Richtung. Vielen Dank!
Ebrandell

2
@ RoyiNamir - Modernizr legt Klassen im HTML fest. Es selbst macht nichts anderes mit diesen Klassen, aber Sie können andere JS-Bibliotheken oder CSS verwenden, um auf diese Klassen zu verweisen und alles zu tun, was Sie möchten, wie Sie es für jede andere Klasse in Ihrem HTML-Code tun würden. Ein Beispiel: Sie möchten ein placeholderin Ihrem Eingabe-Tag verwenden. Aber der alte IE unterstützt es nicht. Modernizr wird eine Klasse no-placeholderim IE hinzufügen . Sie können Javascript-Code schreiben, der auf diese Klasse verweist, sodass Sie ein Skript implementieren können, das die Platzhalterfunktion nachahmt, ohne dass es in Browsern ausgeführt wird, die es nicht benötigen. Hoffe das erklärt es
Spudley

1
IE9.jsmacht alles, was html5shiv auch macht.
Phil

12

Der einfachste Weg, ein neues HTML5-Projekt zu starten, ist die Verwendung von initializr . Es führt Sie und lässt Sie Ihre HTML5-Projektdateien erstellen und herunterladen.


5

Sie sind ungefähr gleich, und welcher Weg zu gehen ist, ist in beiden Fällen eine gute Vermutung, und für die Aufzeichnung gibt es einen, den Sie verpasst haben: http://html5boilerplate.com/ Dies ist eine Art Wiederholung des Prototyps vor einigen Jahren und jQuery kämpften im selben Raum. Ich würde persönlich riskieren, dass jQuery gewonnen hat, aber im Moment ist nicht abzusehen, welcher von diesen diesen speziellen Kampf gewinnen wird. Ich glaube nicht, dass ich Dean Edwards ie7-js empfehlen könnte, da es hauptsächlich darum geht, IE7 dazu zu bringen, sich wie andere intelligentere und sympathischere Browser zu verhalten, anstatt das gesamte HTML5-Ding genauso zu nutzen wie die anderen Frameworks.


2
Vielen Dank, dass Sie Boilerplate erwähnt haben. Ich wollte dies in meine Frage aufnehmen, aber ich wollte, dass es spezifisch für die 3 Punkte in meiner Frage ist, da Modenizer in der Boilerplate enthalten ist.
PaulM

1
Sie sind sich nicht sicher, was html5boilerplate ist. Html5boilerplate ist ein Paket, das enthält, was Sie zum Starten eines Webprojekts wie initializr benötigen. Irgendwann in älteren Versionen von html5boilerplate würde es sogar jetzt erklären, dass Sie modernizr oder html5shiv und verwenden sollten Verwenden Sie nicht beide, da modernizr das tut, was Sie benötigen. Außerdem sollten Sie ein benutzerdefiniertes modernizr für Ihre Produktionsumgebung herunterladen und nur das verwenden, was Sie benötigen. Wenn Sie die von modernizr bereitgestellten Klassen nicht verwenden möchten, sollten Sie sich an html5shiv halten!
Neo

html5boilerplate hat sich ziemlich dramatisch verändert, seit diese Frage 2010 und jetzt gestellt wurde. Dann hat es, was in der damals gestellten Frage gewünscht wurde, alles gebündelt, was Sie zum Starten eines HTML5-Projekts benötigen. Die ursprüngliche Frage lautete: "Ich möchte mein erstes HTML5 erstellen." Ich glaube immer noch, dass html5boilerplate eine akzeptable Alternative für die Frage war, die zum Zeitpunkt der Beantwortung gestellt wurde.
FatherStorm
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.