2012-01-02 17 views
10

Mi chiedevo se esiste un modo per rendere il codice html5 visibile in Internet Explorer 7 o meno.Come utilizzare HTML5 in IE 7?

Per esempio

<div id="container"> 
    <header id="header"> 
     something 
    </header> 
</div> 

In Internet Explorer 7 l'intestazione non risulta affatto.

Ho trovato una soluzione alternativa here, uno script di attivazione HTML5 IE, che crea gli elementi html5 con javascript. Ma quello che succede è che il tag <header> non sembra affatto come negli altri browser.

Quindi la mia domanda è: è ancora troppo presto per utilizzare HTML5 o come posso farlo funzionare su più browser?

+0

il fatto che non sembra lo stesso in IE come l'altro mo i browser dern sono comunque veri in tutti i casi. Il dover aggiustare le cose per far sembrare lo stesso in IE fa parte della normale vita di tutti i giorni. – Rob

+0

L'affermazione "l'intestazione non è mostrata affatto" non è corretta. IE 7 ignora i tag, non il contenuto. Quindi il contenuto ("qualcosa") è mostrato, come tale. Lo * styling * del contenuto è un problema diverso. –

risposta

12

Questo (veramente) incredibile po 'di Javascript dovrebbe soddisfare il 100% delle vostre esigenze di compatibilità HTML5:

http://www.modernizr.com/

0

Provare a utilizzare ChromeFrame - http://code.google.com/chrome/chromeframe/

Di per sé anche se non è possibile utilizzare la maggior parte delle nuove caratteristiche fredde di HTML5 con IE7. Semplicemente non è implementato nel browser in modo semplice e semplice.

+1

Grazie, ma gli utenti devono installarlo quando visitano il mio sito web, no? Non penso che sia una buona idea, nessuno lo farà. – phpheini

5

IE < 9 non riconosce gli elementi HTML5 e non li genererà. Quindi io uso questo po 'di JS per fare la generazione:

var e = ("abbr,article,aside,audio,canvas,datalist,details, 
figure,footer,header,hgroup,mark,menu,meter,nav,output, 
progress,section,time,video,figcaption,summary").split(','); 

for (var i = 0; i < e.length; i++){ 
    document.createElement(e[i]); 
} 

Io uso questo commento condizionale per verificare se ho bisogno di eseguire lo script

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

Naturalmente, è necessario per lo stile dei tag per IE < 9, ma sarebbe comunque necessario.

+0

perché non ci sono 'figcaption' e' summary' su quella lista? – Alohci

+0

Questa era una svista, @Alohci. Grazie per segnalarlo. Modificato la mia risposta (e il mio script!). –

+0

Ci sono un sacco di librerie per fare questo, tra cui Modernizr e Google Shiv, ma essenzialmente questo è ciò che sta succedendo sotto il cofano. – superluminary

0

Controllo se il client richiedente supporta il tipo di applicazione/xhtml + xml mime (fa parte dell'intestazione Accept inviato la richiesta).

In caso contrario, invio al client una versione della pagina utilizzando i nodi div in sostituzione della maggior parte dei nodi semantici html5.

6

Ci sono 2 cose importanti da considerare prima di usare HTML5;

  1. Destinatari (con la loro scelta del browser)
  2. HTML5 caratteristiche utili sul tuo sito.

Se sei sicuro che un sacco di utenti sono in IE8 e al di sotto, si dovrebbe evitare di utilizzare HTML5 quasi interamente.

Quindi, quando si dice "è ancora troppo presto per utilizzare HTML5", la risposta dipende dalla base di utenti. IE ha un buon supporto per HTML5 solo dalla versione 9 e successive ..

Non è possibile che le funzioni avanzate di HTML5 funzionino su IE7/8 ... Il file html5.js a cui si fa riferimento fa semplicemente in modo che il CSS non "ignori" alcun elemento HTML5 e applichi lo stile ... non fa nulla di più di quello ..

per tutti i principali supporto del browser e il punteggio, è possibile controllare html5test.com

oltre a questo, si può anche verificare una molto ben spiegato tutorial su HTML5 chiamato come DesignMobileWeb disponibile su http://itunes.apple.com/in/app/designmobileweb/id486198804?mt=8

Si prega di ricordare che io Se stai per avere un sito di base, l'uso di HTML5 dovrebbe essere evitato. È necessario considerare HTML5 solo se si intende utilizzare Archiviazione locale, Accesso offline e moduli HTML5 per dispositivi mobili, ecc.

1

versioni di IE < 9 non eseguiranno il rendering di elementi che non riconoscono, quindi i nuovi elementi HTML5, intestazione , ecc sono fuori dalla lista. Altri browser visualizzano elementi non riconosciuti, ma senza stile.

Il modo per aggirare questo è "mostrare" i nuovi elementi a IE schizzando loro direttamente nel DOM utilizzando JavaScript. Devi farlo solo una volta in ogni visualizzazione di pagina.

I due modi standard per fare questo sono:

Modernizr fa anche un sacco di altre cose da fare con funzione di rilevamento .

Problemi correlati