HTML5shiv vs Dean Edwards IE7-js vs Modernizr - quale scegliere?


113

Sto cercando di costruire il mio primo sito HTML5 e ho cercato di lavorare con IE.

C'è html5shiv, Dean Edwards ie7-js e poi Modernizr. Sono tutti sostanzialmente uguali? Sono confuso su quale strada prendere.


1
+10 per una domanda fantastica ben formulata.
Snekse

Risposte:


124

No, non sono affatto la stessa cosa; fanno cose completamente diverse.

  • html5shiv ti consente di utilizzare i nuovi tag HTML5 nelle versioni di IE che non li comprendono. Senza di esso, IE si strozzerà con questi tag, quindi ne avrai bisogno se intendi utilizzare i tag. Non aspettarti che i tag facciano effettivamente qualcosa in IE! Impedisce al browser di lamentarsi di loro.

  • modernizr imposta un gruppo di classi nel tuo HTML, a seconda delle funzionalità disponibili, che puoi utilizzare per modificare il layout in base a ciò che supporta il browser. Ti consente anche di utilizzare i nuovi tag HTML5 in IE , come html5shiv.

  • ie7.js (così come ie8.jse ie9.js) utilizza Javascript per adattare alcune funzionalità mancanti a IE.

Per quanto ne so non c'è alcun cross-over tra di loro (a parte html5shiv / modernizr), quindi puoi usarne qualsiasi combinazione, a seconda delle funzionalità che devi implementare.

Visto che sono in argomento e dato che stai chiedendo strumenti per rendere IE più compatibile con altri browser, ti suggerisco di esaminare anche CSS3Pie , che renderà la tua vita molto più felice se prevedi di utilizzare angoli arrotondati sul tuo sito (più una o due altre funzionalità).

Anche questo non ha alcun incrocio con gli altri tre prodotti che hai menzionato, anche se mirano tutti a rendere le vecchie versioni di IE leggermente più facili da usare.


Questa è la risposta che stavo cercando. Grazie :)
PaulM

64
Modernizr include essenzialmente l'intero file html5shiv.
Paul Irish il

Panoramica fantastica. Certamente anche a me ha dato una direzione. Grazie!
ebrandell

2
@RoyiNamir - Modernizr imposta le classi nell'HTML. Di per sé non fa nient'altro con quelle classi, ma puoi usare altre librerie JS o CSS per fare riferimento a quelle classi e fare quello che desideri, nello stesso modo in cui faresti per qualsiasi altra classe nel tuo codice HTML. Un esempio: vuoi usare un placeholdernel tuo tag di input. Ma il vecchio IE non lo supporta. Modernizr aggiungerà una classe no-placeholderin IE; è possibile scrivere codice Javascript che faccia riferimento a questa classe in modo da poter implementare uno script per imitare la funzione segnaposto senza che venga eseguito su browser che non ne hanno bisogno. Spero che questo lo spieghi
Spudley

1
IE9.jsfa tutto ciò che fa anche html5shiv.
Phil

12

Il modo più semplice per iniziare un nuovo progetto HTML5 è usare initializr . Ti guiderà e ti permetterà di costruire, scaricare i tuoi file di progetto HTML5.


5

sono in qualche modo uguali, e la strada da percorrere è una buona ipotesi ATM in entrambi i casi, e per la cronaca, ce n'è uno che ti sei perso, http://html5boilerplate.com/ Questa è una specie di ripetizione di alcuni anni fa quando il prototipo e jQuery stavano combattendo nello stesso spazio. Personalmente rischierei che jQuery abbia vinto, ma per ora non si sa quale di questi vincerà questa particolare battaglia. Non penso di poter raccomandare dean edwards ie7-js poiché si occupa principalmente di far sì che IE7 si comporti come altri browser più intelligenti e simpatici invece di sfruttare l'intera cosa HTML5 tanto quanto gli altri framework.


2
Grazie per aver menzionato boilerplate. Volevo includerlo nella mia domanda, ma volevo che fosse specifico per i 3 elementi nella mia domanda, poiché Modenizer è incluso in boilerplate.
PaulM

1
Non sei corretto su cosa sia html5boilerplate, html5boilerplate è un pacchetto contenente ciò di cui hai bisogno per avviare un progetto web, come initializr, a un certo punto nelle versioni precedenti di html5boilerplate e forse anche ora, spiegherebbe che dovresti usare modernizr o html5shiv e non utilizzare entrambi, poiché modernizr fa ciò di cui hai bisogno, inoltre dovresti scaricare un modernizr personalizzato per il tuo ambiente di produzione e utilizzare solo ciò di cui hai bisogno, se non hai intenzione di utilizzare le classi modernizr supplies, dovresti attenersi a html5shiv!
Neo

html5boilerplate è cambiato abbastanza drasticamente da quando questa domanda è stata posta nel 2010 e ora. ha fatto allora, quello che era voluto nella domanda posta allora, ha raggruppato tutto il necessario per avviare un progetto HTML5. la domanda originale era "Sto cercando di creare il mio primo HTML5". Credo ancora che html5boilerplate fosse un'opzione alternativa accettabile per la domanda posta nel momento in cui è stata posta.
FatherStorm
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.