Sul sito di microsoft affermano che è sufficiente una semplice dichiarazione di doctype. Ma anche un documento così breve ricade sulla modalità IE7:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
Sul sito di microsoft affermano che è sufficiente una semplice dichiarazione di doctype. Ma anche un documento così breve ricade sulla modalità IE7:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
Risposte:
Internet Explorer parte dal presupposto che la maggior parte delle pagine web siano state scritte per targetizzare versioni precedenti di IE e guarda il doctype, i meta tag e l'HTML per determinare la migliore modalità di compatibilità (a volte in modo errato). Anche con un doctype HTML5, IE metterà comunque il tuo sito web in modalità di compatibilità se si tratta di un sito intranet.
Per assicurarti che il tuo sito web utilizzi sempre la modalità standard più recente, puoi assicurarti che Display intranet sites in Compatibly
sia disattivata. Tuttavia è necessario farlo su ogni macchina locale al server web (le istruzioni sono di seguito).
In alternativa, e meglio ancora, puoi utilizzare l' X-UA-Compatible
intestazione per disattivarlo dal server. È importante notare che l' utilizzo del meta tag non funzionerà!
<!-- Doesn't always work! -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
In tutto MSDN si dice che l'utilizzo di un'intestazione host o di un metatag dovrebbe sostituire anche i siti intranet. L'articolo Comprendere le modalità di compatibilità in Internet Explorer 8 dice quanto segue.
Un gran numero di siti Web aziendali interni è ottimizzato per Internet Explorer 7, pertanto questa eccezione predefinita preserva tale compatibilità. ... Anche in questo caso, se un metatag o un'intestazione http viene utilizzato per impostare una modalità di compatibilità per il documento, sovrascriverà queste impostazioni.
Tuttavia, in pratica questo non funzionerà, l'uso di un'intestazione host è l'unica opzione che funziona. La sezione commenti dell'articolo mostra anche numerosi esempi di questo problema esatto.
L'uso di un metatag presenta anche molti altri problemi, come ignorare il tag se non è direttamente sotto il <head>
tag o se ci sono troppi dati prima di esso (4k). Può anche attivare il riesame del documento in alcune versioni di IE, il che rallenterà il rendering. Puoi leggere ulteriori informazioni su questi problemi nell'articolo MSDN Best practice: Metti in ordine il tuo HEAD .
Aggiunta dell'intestazione X-UA-Compatible
Se stai usando .NET e IIS puoi aggiungerlo a web.config
, puoi anche farlo a livello di programmazione:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
Se non utilizzi IIS, è facile farlo in qualsiasi lingua. Ad esempio, ecco come farlo in PHP:
header('X-UA-Compatible: IE=edge');
Finché l' X-UA-Compatible
intestazione è presente con il doctype HTML5, un sito verrà sempre eseguito nella modalità degli standard più recenti.
Disattivazione della Visualizzazione Compatibilità
Potrebbe essere comunque utile disattivare la Visualizzazione Compatibilità. Per farlo, deseleziona Display all intranet sites in compatibility view
nelle Impostazioni Visualizzazione Compatibilità.
Puoi visualizzarlo premendo Altper visualizzare il menu.
Modifica Questa risposta riguarda anche IE9.
alt
per far apparire la barra degli strumenti, è sotto strumenti -> impostazioni di visualizzazione compat
Questo funziona per me ..
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
X-UA-Compatible
meta tag, ma non attiva ancora la modalità documento standard IE10 come pagina predefinita, ho scoperto che se il meta tag si trova sotto i tag script o è solo troppo lontano dalla cima <head>
dell'albero DOM, IE10 piange e imposta la modalità documento sugli standard IE8. Quindi, tieni il tuo IE=edge
meta tag vicino al <title>
tag. Non è sempre una soluzione semplice per i siti Wordpress quando non è hardcoded nel file del modello di intestazione. Non sono sicuro che a IE11 importi dove sia il meta tag, ma spero che questo si riveli utile a qualcuno.
Prova ad aggiungere il seguente tag alla testa
<meta http-equiv="X-UA-Compatible" content="IE=11,IE=10,IE=9,IE=8" />
IE=Edge
invece
Il meta tag non fa nulla per i siti intranet e il mio problema era il rendering di IE10 in modalità di compatibilità IE10. Ciò che ha affrontato il problema per me è stato prendere ulteriormente la risposta di @ Jeow e utilizzare quel valore in un'intestazione http aggiungendo quanto segue web.config
in IIS:
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<!-- <add name="X-UA-Compatible" value="IE=edge" /> not good enough -->
<add name="X-UA-Compatible" value="IE=11,IE=10,IE=9,IE=8" />
</customHeaders>
</httpProtocol>
</system.webServer>
Ai fini di IE, i siti intranet includono siti rivolti al pubblico che non vengono instradati esternamente, ad esempio un dipendente Stackoverflow che lavora dall'ufficio probabilmente vedrebbe stackoverflow.com in modalità compatibilità.
Ha funzionato perfettamente per me quando ho fatto quanto segue:
Su http://msdn.microsoft.com/en-us/library/gg699338(v=vs.85).aspx
</html>
Ho usato l'esempio esatto che forniscono nella prima casella (aggiunto il mancante in basso), l'ho aperto in IE10 e gli standard sono stati forzati, penso che potresti aver bisogno del contenuto effettivo nell'html per forzare gli standard non sicuri però.
Il mio suggerimento sarebbe quello di sostituire il codice vuoto con il contenuto effettivo (qualcosa di semplice) e vedere cosa fa.