2013-02-15 13 views
10

Io uso i seguenti elementi HTML5 nelle mie pagine: intestazione, articolo, sezione e nav. Ora ho impostato tutti gli elementi di cui sopra HTML5 come display: block, e includono lo Shiv HTML5 con un'istruzione condizionale nell'intestazione:HTML5 shiv sono necessari anche per IE9 per supportare elementi HTML5

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

Il sito funziona bene in IE7 & IE8 - indicando che è html5shiv in effetti farlo è magico. Tuttavia, quando provo il sito in IE9, manca lo stile per tutto il contenuto all'interno degli elementi HTML5.

Appena posso modificare la dichiarazione condizionale per:

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

Gli elementi HTML5 ed è bambini ora ottenere lo stile corretto applicata. Ho ricontrollato la mia versione di IE e dice che ho la versione 9.0.8112.16421 di IE.

Vorrei anche ricordare che i siti sono costruiti con PHP e memorizzati nella cache attraverso l'uso di Cache_Lite di PEAR. Tuttavia i test fatti su una semplice pagina html statica danno gli stessi risultati per me.

Qualche idea ??

+0

qual è il 'doctype' del tuo file html? usi 'X-UA-COMPATIBLE'? btw. penso che nel secondo esempio intendi '' –

+0

come raccomandato da HTML5. Sotto l'elemento head uso . Grazie per averlo notato, ho aggiornato la mia domanda - Io uso [if IE] –

+0

e sei sicuro di non usare '

risposta

29

finalmente sono riuscito a capire quale fosse il problema. Ho ricevuto un commento nella parte superiore del mio sito, prima del tag html doctype. Ciò sembra interrompere la capacità di IE9 di riconoscere gli elementi HTML5.

Questo è quello che avevo:

<!-- Served From Cache: Wednesday 13th of February 2013 03:02:22 PM --> 
<!DOCTYPE html> 
<html> 
    <head> 

Così mi è stato poi in grado di risolvere il problema spostando il commento in basso sotto il doctype.

+12

+ 1 per tornare qui e far conoscere la community. Potresti voler marcare anche questa come risposta corretta. Come regola generale, nulla dovrebbe mai diventare prima del Doctype, perché, come hai notato, iniziano a succedere cose strane! –

0

provare questo codice

<!--[if lt IE 9]> 
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 
+3

In che modo questo aiuta con il problema IE9? – JJJ

+1

googlecode.com/svn/trunk/html5 può aiutare IE9 –

+2

Hai letto la domanda? Sta già usando un shiv. * "Non appena cambio l'istruzione condizionale in: ... Gli elementi html5 ed i suoi figli ora ottengono lo stile corretto applicato." * L'OP vuole sapere perché IE9 non ha lo stile degli elementi * senza * un shiv, poiché IE9 dovrebbe supportare nativamente gli elementi HTML5. In ogni caso, scrivere '' non farà nulla in IE9. – JJJ