IE10 se procesa en modo IE7. ¿Cómo forzar el modo Estándar?
En el sitio de Microsoft afirman que una simple declaración de tipo de documento es suficiente. Pero incluso un documento tan breve como este vuelve al modo IE7:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
http://d.pr/i/fvzb+
Internet Explorer supone que la mayoría de las páginas web se escribieron para versiones anteriores de IE y analiza el tipo de documento, las metaetiquetas y el HTML para determinar el mejor modo de compatibilidad (a veces de forma incorrecta). Incluso con un tipo de documento HTML5, IE seguirá colocando su sitio web en modo de compatibilidad si es un sitio de intranet.
Para asegurarse de que su sitio web siempre utilice el modo de estándares más reciente, puede asegurarse de Display intranet sites in Compatibly
que esté desactivado. Sin embargo, debe hacer esto en cada máquina local del servidor web (las instrucciones se encuentran a continuación).
Alternativamente, y mejor aún, puedes usar el X-UA-Compatible
encabezado para desactivar esto desde el servidor. ¡Es importante tener en cuenta que usar la metaetiqueta no funcionará!
<!-- Doesn't always work! -->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
En MSDN se menciona que el uso de un encabezado de host o una metaetiqueta debería anular incluso los sitios de intranet. El artículo Comprender los modos de compatibilidad en Internet Explorer 8 dice lo siguiente.
Una gran cantidad de sitios web comerciales internos están optimizados para Internet Explorer 7, por lo que esta excepción predeterminada preserva esa compatibilidad. ... Nuevamente, si se usa una metaetiqueta o un encabezado http para establecer un modo de compatibilidad para el documento, anulará esta configuración.
Sin embargo, en la práctica esto no funcionará; usar un encabezado de host es la única opción que funciona. La sección de comentarios del artículo también muestra numerosos ejemplos de este problema exacto.
El uso de una metaetiqueta también tiene otros problemas, como ignorar la etiqueta si no está directamente debajo de la <head>
etiqueta o si hay demasiados datos delante (4k). También puede provocar que el documento se vuelva a analizar en algunas versiones de IE, lo que ralentizará el procesamiento. Puede leer más sobre estos problemas en el artículo de MSDN Mejores prácticas: ponga su HEAD en orden .
Agregar el encabezado compatible con X-UA
Si está utilizando .NET e IIS, puede agregar esto al archivo web.config
, también puede hacerlo mediante programación:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=edge" />
</customHeaders>
</httpProtocol>
</system.webServer>
Si no estás usando IIS, es fácil hacerlo en cualquier idioma. Por ejemplo, aquí se explica cómo hacerlo en PHP:
header('X-UA-Compatible: IE=edge');
Mientras el X-UA-Compatible
encabezado esté presente con el tipo de documento HTML5, un sitio siempre se ejecutará en el modo de estándares más reciente.
Desactivar la Vista de compatibilidad
Aún puede resultar útil desactivar la Vista de compatibilidad. Para hacerlo, desmarque Display all intranet sites in compatibility view
la Configuración de Vista de compatibilidad.
Puede abrir esto presionando Altpara obtener el menú.
Editar Esta respuesta también pertenece a IE9.
Esto funciona para mi..
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Intente agregar la siguiente etiqueta al encabezado
<meta http-equiv="X-UA-Compatible" content="IE=11,IE=10,IE=9,IE=8" />
La metaetiqueta no hace nada para los sitios de intranet y mi problema fue la representación de IE10 en modo de compatibilidad con IE10. Lo que solucionó el problema para mí fue llevar la respuesta de @Jeow más allá y usar ese valor en un encabezado http agregando lo siguiente en web.config
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>
Para propósitos de IE, los sitios de intranet incluyen sitios públicos que no están enrutados externamente; por ejemplo, un empleado de Stackoverflow que trabaja desde la oficina probablemente vería stackoverflow.com en modo de compatibilidad.