Actualización de octubre de 2015
Esta respuesta se publicó hace varios años y ahora la pregunta realmente debería ser ¿ debería considerar usar la X-UA-Compatible
etiqueta en su sitio? con los cambios que Microsoft ha realizado en sus navegadores (más sobre los siguientes).
Dependiendo de los navegadores de Microsoft que admita, es posible que no necesite continuar usando la X-UA-Compatible
etiqueta. Si necesita admitir IE9 o IE8, le recomendaría usar la etiqueta. Si solo es compatible con los navegadores más recientes (IE11 y / o Edge), consideraría descartar esta etiqueta por completo. Si usa Twitter Bootstrap y necesita eliminar las advertencias de validación, esta etiqueta debe aparecer en el orden especificado. Información adicional a continuación:
La X-UA-Compatible
metaetiqueta permite a los autores web elegir en qué versión de Internet Explorer se debe representar la página. IE11 ha realizado cambios en estos modos; vea la nota IE11 a continuación. Microsoft Edge , el navegador que reemplazó a IE11, solo honra la X-UA-Compatible
metaetiqueta en ciertas circunstancias. Vea la nota de Microsoft Edge a continuación.
Según Microsoft, al usar la X-UA-Compatible
etiqueta, debe estar lo más alto posible en su documento head
:
Si está utilizando la etiqueta META compatible con X-UA, desea colocarla lo más cerca posible de la parte superior del HEAD de la página. Internet Explorer comienza a interpretar el marcado usando la última versión. Cuando Internet Explorer encuentra la etiqueta META compatible con X-UA, comienza de nuevo usando el motor de la versión designada. Este es un golpe de rendimiento porque el navegador debe detener y reiniciar el análisis del contenido.
Aquí están tus opciones:
- "IE = borde"
- "IE = 11"
- "IE = EmulateIE11"
- "IE = 10"
- "IE = EmulateIE10"
- "IE = 9"
- "IE = EmulateIE9
- "IE = 8"
- "IE = EmulateIE8"
- "IE = 7"
- "IE = EmulateIE7"
- "IE = 5"
Para intentar entender lo que cada uno significa, aquí hay definiciones proporcionadas por Microsoft:
Internet Explorer admite varios modos de compatibilidad de documentos que permiten diferentes funciones y pueden afectar la forma en que se muestra el contenido:
El modo Edge le dice a Internet Explorer que muestre contenido en el modo más alto disponible. Con Internet Explorer 9, esto es equivalente al modo IE9. Si una versión futura de Internet Explorer admitiera un modo de compatibilidad más alto, las páginas configuradas en modo borde aparecerían en el modo más alto admitido por esa versión. Esas mismas páginas seguirían apareciendo en modo IE9 cuando se visualizan con Internet Explorer 9. Internet Explorer admite varios modos de compatibilidad de documentos que permiten diferentes funciones y pueden afectar la forma en que se muestra el contenido:
El modo IE11 proporciona el soporte más alto disponible para los estándares establecidos y emergentes de la industria, incluidos HTML5, CSS3 y otros.
El modo IE10 proporciona el soporte más alto disponible para los estándares establecidos y emergentes de la industria, incluidos HTML5, CSS3 y otros.
El modo IE9 proporciona el soporte más alto disponible para estándares establecidos y emergentes de la industria, incluyendo HTML5 (Borrador de trabajo), Especificación de nivel 3 de hojas de estilo en cascada W3C (Borrador de trabajo), Especificación de gráficos vectoriales escalables (SVG) 1.0 y otros. [Nota del editor: IE 9 no admite animaciones CSS3].
El modo IE8 admite muchos estándares establecidos, incluida la especificación de nivel 2.1 de hojas de estilo en cascada W3C y la API de selectores W3C; también proporciona soporte limitado para la Especificación de Nivel 3 de Hojas de Estilo en Cascada W3C (Borrador de Trabajo) y otros estándares emergentes.
El modo IE7 representa el contenido como si Internet Explorer 7 lo mostrara en modo estándar, independientemente de si la página contiene una directiva.
El modo Emulate IE9 le dice a Internet Explorer que use la directiva para determinar cómo representar el contenido. Las directivas en modo estándar se muestran en modo IE9 y las directivas en modo peculiar se muestran en modo IE5. A diferencia del modo IE9, el modo Emulate IE9 respeta la directiva.
El modo Emular IE8 le dice a Internet Explorer que use la directiva para determinar cómo representar el contenido. Las directivas en modo estándar se muestran en modo IE8 y las directivas en modo peculiar se muestran en modo IE5. A diferencia del modo IE8, el modo Emulate IE8 respeta la directiva.
El modo Emular IE7 le dice a Internet Explorer que use la directiva para determinar cómo representar el contenido. Las directivas del modo estándar se muestran en el modo estándar de Internet Explorer 7 y las directivas del modo peculiar se muestran en el modo IE5. A diferencia del modo IE7, el modo Emulate IE7 respeta la directiva. Para muchos sitios web, este es el modo de compatibilidad preferido.
El modo IE5 procesa el contenido como si Internet Explorer 7 lo mostrara en modo peculiar, que es muy similar a la forma en que se mostró el contenido en Microsoft Internet Explorer 5.
NOTA de IE10: a partir de IE10, el modo de peculiaridades se comporta de manera diferente que en versiones anteriores del navegador. En IE9 y versiones anteriores, el modo peculiar restringió la página web a las funciones compatibles con IE5.5. En IE10, el modo peculiar se ajusta a las diferencias especificadas en la especificación HTML5.
Personalmente, siempre elijo la http-equiv="X-UA-Compatible" content="IE=edge"
metaetiqueta, ya que las versiones anteriores tienen muchos errores, y no quiero que IE decida entrar en "Modo de compatibilidad" y muestre mi sitio como IE7 vs IE8 o 9. Siempre prefiero la última versión de ES DECIR.
IE11
De Microsoft :
Comenzando con IE11, el modo de borde es el modo de documento preferido; Representa el soporte más alto para los estándares modernos disponibles para el navegador.
Use la declaración de tipo de documento HTML5 para habilitar el modo borde:
<!doctype html>
El modo Edge se introdujo en Internet Explorer 8 y ha estado disponible en cada versión posterior. Tenga en cuenta que las funciones admitidas por el modo borde están limitadas a las admitidas por la versión específica del navegador que representa el contenido.
A partir de IE11, los modos de documento están en desuso y ya no deberían usarse, excepto de forma temporal. Asegúrese de actualizar los sitios que se basan en características heredadas y modos de documentos para reflejar los estándares modernos.
Si debe apuntar a un modo de documento específico para que su sitio funcione mientras lo vuelve a trabajar para admitir estándares y funciones modernas, tenga en cuenta que está utilizando una función de transición, una que puede no estar disponible en futuras versiones.
Si actualmente usa el encabezado compatible con x-ua para apuntar a un modo de documento heredado, es posible que su sitio no refleje la mejor experiencia disponible con IE11.
Microsoft Edge (Reemplazo para Internet Explorer que viene incluido con Windows 10)
Información sobre la X-UA-Compatible
metaetiqueta para la versión "Edge" de IE. De Microsoft :
Presentamos el modo de documento Edge "vivo"
Como anunciamos en agosto de 2013, estamos despreciando los modos de documentos a partir de IE11. Con nuestras últimas actualizaciones de plataforma, la necesidad de modos de documentos heredados se limita principalmente a las aplicaciones web heredadas de Enterprise. Con nuevos cambios arquitectónicos, estos modos de documentos heredados se aislarán de los cambios en el modo Edge "vivo", lo que ayudará a garantizar un nivel mucho más alto de compatibilidad para los clientes que dependen de esos modos y nos ayudará a avanzar aún más rápido en las mejoras en Edge . IE seguirá respetando los modos de documento que sirven los sitios de intranet, los sitios en la lista Vista de compatibilidad y cuando se usan solo con el Modo de empresa.
Los sitios públicos de Internet se mostrarán con la nueva plataforma de modo Edge (ignorando X-UA-Compatible). Nuestro objetivo es que Edge sea el modo de documento "vivo" a partir de ahora y no se introducirán más modos de documento en el futuro.
Con los cambios en Microsoft Edge para dejar de admitir modos de documentos en la mayoría de los casos, Microsoft tiene una herramienta para escanear su sitio para verificar y ver si tiene un código que no sea compatible con Edge.
Chrome = 1 Información para IE
También hay chrome=1
que se puede utilizar o utilizar junto con una de las opciones anteriores como: <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
. chrome=1
es para Chrome Frame de Google, que se define como:
Google Chrome Frame es un complemento de navegador de código abierto. Los usuarios que tienen el complemento instalado tienen acceso a las tecnologías web abiertas de Google Chrome y al veloz motor JavaScript cuando abren páginas en el navegador.
Google Chrome Frame mejora a la perfección su experiencia de navegación en Internet Explorer. Muestra los sitios habilitados para Google Chrome Frame que utilizan la tecnología de renderizado de Google Chrome, lo que le brinda acceso a las funciones HTML5 más recientes, así como a las funciones de rendimiento y seguridad de Google Chrome sin interrumpir de ninguna manera el uso habitual de su navegador.
Cuando se instala Google Chrome Frame, la web mejora sin que tenga que pensarlo.
Pero para que ese complemento funcione, debe usarlo chrome=1
en la X-UA-Compatible
metaetiqueta.
Puedes encontrar más información sobre Chrome Frame aquí .
Nota: Google Chrome Frame solo funciona para IE6 hasta IE9 y se retiró el 25 de febrero de 2014. Puede encontrar más información aquí . Gracias a @mck por el enlace.
Validación:
HTML5 :
La página se validará usando el Validador W3 solo cuando se use <meta http-equiv="X-UA-Compatible" content="IE=Edge">
. Para otros valores arrojará el error: A meta element with an http-equiv attribute whose value is X-UA-Compatible must have a content attribute with the value IE=edge.
en otras palabras, si lo tiene IE=edge,chrome=1
no se validará. Ignoro este error por completo ya que los navegadores modernos simplemente ignoran esta línea de código.
Si debe tener un código completamente válido, considere hacerlo en el nivel del servidor configurando el encabezado HTTP. Como nota, Microsoft dice: If both of these instructions are sent (meta and HTTP), the developer's preference (meta element) takes precedence over the web server setting (HTTP header).
Vea la respuesta de olibre o la respuesta de bitinn para obtener más detalles sobre cómo configurar un encabezado HTTP.
XHTML
No hay un problema con la validación cuando se usa <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
siempre que la etiqueta esté cerrada correctamente (es decir, />
vs >
).
Twitter Bootstrap
Esta etiqueta ha sido muy recomendada por el equipo de Bootstrap desde al menos 2014, y Bootlint , el linter creado por el equipo twbs continúa lanzando una advertencia cuando se omite la etiqueta. La interfaz distingue entre advertencias y errores, y como tal, la gravedad de omitir esta etiqueta puede considerarse menor.
Para obtener más información, X-UA-Compatible
consulte el sitio web de Microsoft que define la compatibilidad de documentos .
Para obtener más información sobre qué es compatible con IE, visite caniuse.com .
Para obtener más información sobre los requisitos de Bootstrap de Twitter, consulte la página wiki del proyecto bootlint .
Use
content=
"IE=edge,chrome=1"
Saltar otrosX-UA-Compatible
modosSin icono de compatibilidad
La barra de direcciones de IE9 no muestra el botón Vista de compatibilidad
y la página tampoco muestra una mezcla de menús, imágenes y cuadros de texto fuera de lugar.
Características
Esta metaetiqueta es necesaria para habilitar
javascript::JSON.parse()
en IE8(incluso cuando
<!DOCTYPE html>
está presente)La
representación / ejecución correcta de HTML / CSS / JavaScript moderno es más válida (mejor).
Rendimiento
El motor de renderizado Trident debería funcionar más rápido en su modo de borde .
Uso
En tu HTML
IE=edge
significa que IE debería usar la última versión (borde) de su motor de renderizadochrome=1
significa que IE debería usar el motor de renderizado de Chrome si está instaladoO mejor en la configuración de su servidor web:
(vea también la respuesta de RiaD )
Apache según lo propuesto por pixeline
Nginx como lo propone Stef Pause
Proxy de barniz propuesto por Lucas Riutzel
IIS (desde v7)
Microsoft recomienda el modo Edge desde IE11
Como notó Lynda (ver comentarios), los cambios de compatibilidad en IE11 recomiendan el modo Edge :
Pero la posición de Microsoft no estaba clara. Otro página de MSDN no recomendaba el modo Edge :
En cambio, Microsoft recomendó usar
<!DOCTYPE html>
:Como Ricardo explica (en los comentarios a continuación) cualquier DOCTYPE (HTML4, XHTML1 ...) se puede usar para activar el Modo de estándares, no solo el DOCTYPE de HTML5. Lo importante es tener siempre un DOCTYPE en la página.
Clara Onager incluso se ha dado cuenta en una versión anterior de Especificar modos de documentos heredados :
Es tan confuso que Usman Y pensó que Clara Onager estaba hablando de:
Bueno ... En el resto de esta respuesta, doy más explicaciones de por qué usar
content="IE=edge,chrome=1"
es una buena práctica en la producción.Historia
Durante muchos años (2000 a 2008), la cuota de mercado de IE fue superior al 80% . E IE v6 fue considerado como un estándar de facto (80% a 97% de participación de mercado en 2003 , 2004, 2005 y 2006 solo para IE6, más participación de mercado con todas las versiones de IE).
Como IE6 no respetaba los estándares web , los desarrolladores tuvieron que probar su sitio web usando IE6. Esa situación fue excelente para Microsoft (MS) ya que los desarrolladores web tuvieron que comprar productos MS (por ejemplo, IE no se puede usar sin comprar Windows), y fue más rentable no cumplir (es decir, Microsoft quería convertirse en el estándar excluyendo otros compañías).
Por lo tanto, muchos sitios solo eran compatibles con IE6, y dado que IE no era compatible con el estándar web, todos estos sitios web no estaban bien representados en navegadores compatibles con los estándares. Peor aún, muchos sitios requieren solo IE .
Sin embargo, en este momento, Mozilla comenzó el desarrollo de Firefox respetando en la mayor medida posible todos los estándares web (se implementaron otros navegadores para procesar páginas como lo hizo IE6). A medida que más y más desarrolladores web querían usar las nuevas características de los estándares web, Firefox apoyó más y más sitios web que IE.
Cuando la participación en el mercado de IE estaba disminuyendo, MS se dio cuenta de que permanecer incompatible con los estándares no era una buena idea. Por lo tanto, MS comenzó a lanzar una nueva versión de IE (IE8 / IE9 / IE10) respetando cada vez más los estándares web.
El problema incompatible con la web
Pero el problema son todos los sitios web diseñados para IE6: Microsoft no pudo lanzar nuevas versiones de IE incompatibles con estos viejos sitios web diseñados por IE6. En lugar de deducir la versión de IE, se diseñó un sitio web, MS solicitó a los desarrolladores que agreguen datos adicionales (
X-UA-Compatible
) en sus páginas.IE6 todavía se usa en 2016
Hoy en día, IE6 todavía se usa (0.7% en 2016) (4.5% en enero de 2014), y algunos sitios web de Internet siguen siendo solo compatibles con IE6. Algunos sitios web / aplicaciones de intranet se prueban con IE6. Algunos sitios web de intranet son 100% funcionales solo en IE6. Estas empresas / departamentos prefieren posponer el costo de la migración: otras prioridades, ya nadie sabe cómo se ha implementado el sitio web / aplicación, el propietario del sitio web / aplicación heredado quebró ...
China representa el 50% del uso de IE6 en 2013, pero puede cambiar en los próximos años a medida que se difunde la distribución china de Linux .
Ten confianza en tus habilidades web
Si (intenta) respetar el estándar web, simplemente puede usarlo siempre
http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"
. Para mantener la compatibilidad con los navegadores antiguos, solo evite usar las funciones web más recientes: use el subconjunto admitido por el navegador más antiguo que desee. O si desea ir más allá, puede adoptar conceptos como degradación elegante , mejora progresiva y JavaScript discreto . (También le agradará leer ¿Qué debe considerar un desarrollador web? )No se preocupe por la mejor representación de la versión de IE: este no es su trabajo, ya que los navegadores deben cumplir con los estándares web. Si su sitio cumple con los estándares y utiliza funciones moderadamente recientes, por lo tanto, los navegadores deben cumplir con su sitio web .
Además, como hay muchas campañas para matar a IE6 ( IE6 no más , campaña de MS ), ¡hoy en día puede evitar perder el tiempo con las pruebas de IE!
Experiencia personal de IE6
En 2009-2012, trabajé para una empresa que usaba IE6 como permitía el navegador único oficial . Tuve que implementar un sitio web de intranet solo para IE6. Decidí respetar el estándar web pero usando el subconjunto compatible con IE6 (HTML / CSS / JS).
Fue difícil, pero cuando la compañía cambió a IE8, el sitio web todavía estaba bien renderizado porque había usado Firefox y firebug para verificar la compatibilidad del estándar web;)
fuente
Starting with IE11, edge mode is the preferred document mode; it represents the highest support for modern standards available to the browser.
La diferencia es que si solo especifica la configuración de Vista de compatibilidad
DOCTYPE
de IE tiene prioridad. De forma predeterminada, esta configuración fuerza a todos los sitios de intranet a la Vista de compatibilidad independientemente de . También hay una casilla de verificación para usar la Vista de compatibilidad para todos los sitios web, independientemente de .DOCTYPE
DOCTYPE
X-UA-Compatible
anula la configuración de Vista de compatibilidad, por lo que la página se representará en modo estándar independientemente de la configuración del navegador. Esto fuerza el modo estándar para:DOCTYPE
solo no puede hacer eso; terminarás en uno de los modos de Vista de compatibilidad en estos casos independientemente deDOCTYPE
.Si
meta
se especifican la etiqueta y el encabezado HTTP, lameta
etiqueta tiene prioridad.Esta respuesta se basa en examinar las reglas completas para decidir el modo de documento en IE8 , IE9 e IE10 . Tenga en cuenta que mirar el
DOCTYPE
es el último recurso para decidir el modo de documento.fuente
Use esto para forzar a IE a ocultar ese molesto botón de compatibilidad del navegador en la barra de direcciones:
fuente
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
con lachrome=1
directiva, por lo que incita a los usuarios de IE6, 7, 8 a instalar / usar Chrome Frame . Incluso HTML5 Boilerplate lo usa.<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
desde el día en que salió sin ningún problema. En realidad, ya he ahorrado a mi equipo y a mí mismo cientos de dolores de cabeza al hacer que el IE de los usuarios use su último motor para renderizar las páginas que construimos. Al contrario que usted y Microsoft, recomiendo a todos que usen la metaetiqueta anterior cada vez . Mientras IE siga existiendo, nos veremos "obligados" a usar esta metaetiqueta: p<meta http-equiv="X-UA-Compatible" content="IE=10">
. Luego se informa a sí mismo como Microsoft Internet Explorer.Como no puedo agregar un comentario a la respuesta marcada, simplemente publicaré esto aquí.
Además de la respuesta correcta, puede validarla. Dado que esta metaetiqueta solo está dirigida a IE, todo lo que necesita hacer es agregar un condicional de IE.
Hacer esto es como agregar cualquier otra declaración condicional de IE y solo funciona para IE y ningún otro navegador se verá afectado.
fuente
Creo que este diagrama de Microsoft explica todo. Para decirle a IE cómo representar el contenido,! DOCTYPE tiene que funcionar con metaetiquetas compatibles con X-UA. ! DOCTYPE por sí solo no tiene ningún efecto al cambiar el modo de documento de IE.
http://ie.microsoft.com/testdrive/ieblog/2010/Mar/02_HowIE8DeterminesDocumentMode_3.png
fuente
Solo para completar, en realidad no tiene que agregarlo a su HTML (que es desconocido http-equiv en HTML5)
Haga esto y nunca mire hacia atrás (primer ejemplo para apache , segundo para nginx )
fuente
Bad value X-UA-Compatible for attribute http-equiv on element meta.
- Esto no significa que no funcionará. Simplemente no es un código válido.Solo una frase para decir Indique a Internet Explorer que use su último motor de renderizado
fuente
Para que esta línea funcione como se espera, asegúrese de que:
<head>
<html>
elementoDe lo contrario, algunas versiones de IE simplemente lo ignoran.
ACTUALIZAR
Estas dos reglas están simplificadas, pero son fáciles de recordar y verificar. A pesar de que los documentos de MSDN indican que puede poner el título y otras metaetiquetas antes de este, no recomendaría hacerlo.
Cómo hacer que funcione con comentarios condicionales.
Interesante artículo sobre el orden de los elementos en la cabeza. (blogs.msdn.com, para IE)
REFERENCIA
De la documentación de MSDN :
fuente
si usa su sitio web en la misma red que el servidor, a IE le gusta cambiar al modo de compatibilidad a pesar de DOCTYPE.
Agregar
meta http-equiv="X-UA-Compatible" content="IE=Edge"
deshabilita este comportamiento no deseado.fuente
Esta es literalmente 1 consulta de Google de distancia , pero aquí va:
http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx
También entre los resultados de búsqueda está:
fuente
2.1.3.5 Metaetiqueta de compatibilidad X-UA y encabezado de respuesta HTTP
Esta funcionalidad no se implementará en ninguna versión de Microsoft Edge.
Ver https://msdn.microsoft.com/en-us/library/ff955275(v=vs.85).aspx
Sí, sé que llego tarde a la fiesta, pero tuve algunos problemas y discusiones, y al final mi jefe me hizo quitar la
X-UA-Compatible
etiqueta de todos los documentos en los que he estado trabajando.Si esta información está desactualizada o ya no es relevante, corríjame.
fuente