2012-10-05 8 views
6

Sulla html5shiv Google Code page l'utilizzo esempio include un IE condizionale:Ci sono effetti collaterali negativi sul caricamento di html5shiv in ogni browser?

<!--[if lt IE 9]> 
    <script src="dist/html5shiv.js"></script> 
<![endif]--> 

Tuttavia sul html5shiv github page, la descrizione illustra:

Questo script è il modo de facto per abilitare l'uso di HTML5 sezionamento elementi legacy Internet Explorer, così come lo stile HTML5 predefinito in Internet Explorer 6 - 9, Safari 4.x (e iPhone 3.x), e Firefox 3.x.

Un'ovvia contraddizione. Quindi, per soddisfare la mia curiosità, per chiunque abbia studiato il codice, ci sono effetti collaterali negativi sul caricamento di html5shiv in ogni browser (senza il condizionale IE)?

MODIFICA: Il mio obiettivo, ovviamente, è quello di utilizzare lo shiv senza il condizionale IE.

risposta

4

penso che commento condizionale nella pagina di googlecode (aggiornato probabilmente più di un anno fa) è perché IE8 e sotto hanno bisogno di un javascript trick per consentire css styling di elementi HTML5.

FF4, Safari 4, Opera 11 e seguenti semplicemente non si applicano display:block come impostazione predefinita a elementi "sconosciuti", ma è sufficiente un CSS reset per modificare questo comportamento.

Cosa html5shiv fa su questi browser è solo per aggiungere un <style> all'inizio del <head>, simile a questa:

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section { 
    display: block; 
} 

Fonte: http://meyerweb.com/eric/tools/css/reset/

Quindi, non dovrebbe dare qualche effetto collaterale, perché queste regole possono essere sovrascritte da dichiarazioni successive.

Fintanto che si aggiunge questa regola al file CSS principale, è consentito includere html5shiv solo per IE, si salverà una richiesta http.

Se vuoi che il tuo sito Web html5 sia compatibile anche con FF2 (se è così, sei un maniaco), check this tutorial.

OP scoperto html5shiv fornisce già un fallback per FF2!

+0

Grazie. Per chiunque sia interessato, html5shiv risolve anche il problema FF2 a condizione che il client abbia abilitato JavaScript nella propria UA. – Jeff

+0

Grazie @Jeff, non lo sapevo! Dovrebbero scriverlo nel loro GitHub :) – Giona

+0

Se è tutto ciò che fa html5shiv, perché non aggiungere semplicemente il blocco al tuo file CSS principale e farlo con esso? Se il tuo sito viene visitato da un browser antico, aiuta, e se usano un browser moderno, non farà alcun danno. Destra? –

Problemi correlati