Atualização de outubro de 2015
Esta resposta foi publicada há vários anos e agora a pergunta realmente deve ser , você deve considerar usar a X-UA-Compatible
tag no seu site? com as alterações que a Microsoft fez em seus navegadores (mais sobre os abaixo).
Dependendo dos navegadores Microsoft suportados, talvez você não precise continuar usando a X-UA-Compatible
tag. Se você precisar oferecer suporte ao IE9 ou IE8, recomendo o uso da tag. Se você oferecer suporte apenas aos navegadores mais recentes (IE11 e / ou Edge), consideraria abandonar essa tag por completo. Se você usa o Twitter Bootstrap e precisa eliminar os avisos de validação, essa tag deve aparecer na ordem especificada. Informações adicionais abaixo:
A X-UA-Compatible
metatag permite aos autores da web escolher em qual versão do Internet Explorer a página deve ser renderizada. O IE11 fez alterações nesses modos; veja a nota do IE11 abaixo. O Microsoft Edge , o navegador que substituiu o IE11, apenas honra a X-UA-Compatible
metatag em determinadas circunstâncias. Veja a nota do Microsoft Edge abaixo.
Segundo a Microsoft, ao usar a X-UA-Compatible
tag, ela deve ser a mais alta possível no seu documento head
:
Se você estiver usando a tag META compatível com X-UA, deseja colocá-la o mais próximo possível do topo do cabeçalho da página. O Internet Explorer começa a interpretar a marcação usando a versão mais recente. Quando o Internet Explorer encontra a marca META compatível com X-UA, ela inicia novamente usando o mecanismo da versão designada. Este é um problema de desempenho porque o navegador deve parar e reiniciar a análise do conteúdo.
Aqui estão as suas opções:
- "IE = borda"
- "IE = 11"
- "IE = EmulateIE11"
- "IE = 10"
- "IE = EmulateIE10"
- "IE = 9"
- "IE = EmulateIE9
- "IE = 8"
- "IE = EmulateIE8"
- "IE = 7"
- "IE = EmulateIE7"
- "IE = 5"
Para tentar entender o que cada um significa, aqui estão as definições fornecidas pela Microsoft:
O Internet Explorer suporta vários modos de compatibilidade de documentos que habilitam recursos diferentes e podem afetar a maneira como o conteúdo é exibido:
O modo de borda informa ao Internet Explorer para exibir o conteúdo no modo mais alto disponível. Com o Internet Explorer 9, isso é equivalente ao modo IE9. Se uma versão futura do Internet Explorer oferecer suporte a um modo de compatibilidade mais alto, as páginas definidas no modo de borda aparecerão no modo mais alto suportado por essa versão. Essas mesmas páginas ainda apareceriam no modo IE9 quando exibidas no Internet Explorer 9. O Internet Explorer suporta vários modos de compatibilidade de documentos que habilitam recursos diferentes e podem afetar a maneira como o conteúdo é exibido:
O modo IE11 fornece o mais alto suporte disponível para padrões estabelecidos e emergentes do setor, incluindo HTML5, CSS3 e outros.
O modo IE10 fornece o mais alto suporte disponível para padrões estabelecidos e emergentes do setor, incluindo HTML5, CSS3 e outros.
O modo IE9 fornece o mais alto suporte disponível para padrões estabelecidos e emergentes do setor, incluindo HTML5 (Working Draft), W3C Cascading Style Sheets Level 3 Specification (Working Draft), Scalable Vector Graphics (SVG) 1.0 Specification e outros. [Nota do editor: O IE 9 não suporta animações CSS3].
O modo IE8 suporta muitos padrões estabelecidos, incluindo a especificação W3C Cascading Style Sheets Level 2.1 e a API W3C Selectors; ele também fornece suporte limitado para a especificação de nível 3 das folhas de estilo em cascata W3C (rascunho de trabalho) e outros padrões emergentes.
O modo IE7 renderiza o conteúdo como se ele fosse exibido no modo padrão pelo Internet Explorer 7, independentemente de a página conter ou não uma diretiva.
O modo Emular IE9 informa ao Internet Explorer para usar a diretiva para determinar como renderizar conteúdo. As diretivas do modo padrão são exibidas no modo IE9 e as diretivas do modo quirks são exibidas no modo IE5. Ao contrário do modo IE9, o modo Emular IE9 respeita a diretiva.
O modo Emular IE8 informa ao Internet Explorer para usar a diretiva para determinar como renderizar conteúdo. As diretivas do modo padrão são exibidas no modo IE8 e as diretivas do modo quirks são exibidas no modo IE5. Diferente do modo IE8, o modo Emular IE8 respeita a diretiva.
O modo Emular IE7 informa ao Internet Explorer para usar a diretiva para determinar como renderizar conteúdo. As diretivas do modo padrões são exibidas no modo de padrões do Internet Explorer 7 e as diretivas do modo quirks são exibidas no modo IE5. Ao contrário do modo IE7, o modo Emular IE7 respeita a diretiva. Para muitos sites, esse é o modo de compatibilidade preferido.
O modo IE5 renderiza o conteúdo como se ele fosse exibido no modo quirks pelo Internet Explorer 7, muito semelhante à maneira como o conteúdo foi exibido no Microsoft Internet Explorer 5.
IE10 NOTA: A partir do IE10, o modo quirks se comporta de maneira diferente do que nas versões anteriores do navegador. No IE9 e nas versões anteriores, o modo quirks restringia a página da Web aos recursos suportados pelo IE5.5. No IE10, o modo quirks está em conformidade com as diferenças especificadas na especificação HTML5.
Pessoalmente, sempre escolho a http-equiv="X-UA-Compatible" content="IE=edge"
meta tag, pois as versões mais antigas têm muitos bugs e não quero que o IE decida entrar no "Modo de compatibilidade" e mostre meu site como IE7 vs IE8 ou 9. Prefiro sempre a versão mais recente do IE.
IE11
Da Microsoft :
A partir do IE11, o modo de borda é o modo de documento preferido; representa o mais alto suporte para os padrões modernos disponíveis para o navegador.
Use a declaração de tipo de documento HTML5 para ativar o modo de borda:
<!doctype html>
O modo Edge foi introduzido no Internet Explorer 8 e está disponível em cada versão subsequente. Observe que os recursos suportados pelo modo de borda são limitados aos suportados pela versão específica do navegador que processa o conteúdo.
A partir do IE11, os modos de documento foram descontinuados e não devem mais ser usados, exceto temporariamente. Atualize sites que dependem de recursos herdados e modos de documento para refletir os padrões modernos.
Se você precisar direcionar um modo de documento específico para que seu site funcione enquanto o reformula para oferecer suporte a padrões e recursos modernos, saiba que está usando um recurso de transição, que pode não estar disponível em versões futuras.
Se você atualmente usa o cabeçalho compatível com x-ua para segmentar um modo de documento herdado, é possível que seu site não reflita a melhor experiência disponível no IE11.
Microsoft Edge (substituição para o Internet Explorer que acompanha o Windows 10)
Informações na X-UA-Compatible
metatag para a versão "Edge" do IE. Da Microsoft :
Apresentando o modo de documento Edge “vivo”
Como anunciamos em agosto de 2013, estamos descontinuando os modos de documento a partir do IE11. Com nossas atualizações de plataforma mais recentes, a necessidade de modos de documentos herdados é limitada principalmente aos aplicativos Web herdados da empresa. Com as novas alterações arquiteturais, esses modos de documentos herdados serão isolados das alterações no modo "vivo" do Edge, o que ajudará a garantir um nível muito mais alto de compatibilidade para clientes que dependem desses modos e nos ajudará a avançar ainda mais rapidamente nas melhorias no Edge . O IE ainda respeitará os modos de documento atendidos pelos sites da intranet, sites na lista do Modo de Exibição de Compatibilidade e quando usados apenas no Modo Empresarial.
Os sites públicos da Internet serão renderizados com a nova plataforma no modo Edge (ignorando o X-UA-Compatible). Nosso objetivo é que o Edge seja o modo de documento "vivo" daqui em diante e nenhum outro modo de documento seja introduzido daqui para frente.
Com as alterações no Microsoft Edge, para não oferecer mais suporte aos modos de documento, na maioria dos casos, a Microsoft possui uma ferramenta para verificar seu site e verificar se ele possui código incompatível com o Edge.
Chrome = 1 informações para o IE
Há também chrome=1
que você pode usar ou utilizar em conjunto com uma das opções acima, como: <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
. chrome=1
é para o Chrome Frame do Google, definido como:
O Google Chrome Frame é um plug-in de navegador de código aberto. Os usuários que possuem o plug-in instalado têm acesso às tecnologias da Web aberta do Google Chrome e ao rápido mecanismo JavaScript quando abrem as páginas no navegador.
O Google Chrome Frame aprimora perfeitamente sua experiência de navegação no Internet Explorer. Ele exibe sites habilitados para o Google Chrome Frame usando a tecnologia de renderização do Google Chrome, fornecendo acesso aos mais recentes recursos HTML5, bem como aos recursos de desempenho e segurança do Google Chrome, sem interromper o uso habitual do navegador.
Quando o Google Chrome Frame é instalado, a Web fica melhor sem que você precise pensar nisso.
Mas, para que esse plug-in funcione, você deve usar chrome=1
a X-UA-Compatible
metatag.
Mais informações sobre o Chrome Frame podem ser encontradas aqui .
Nota: O Google Chrome Frame funciona apenas para o IE6 até o IE9 e foi aposentado em 25 de fevereiro de 2014. Mais informações podem ser encontradas aqui . Obrigado a @mck pelo link.
Validação:
HTML5 :
A página será validada usando o W3 Validator apenas ao usar <meta http-equiv="X-UA-Compatible" content="IE=Edge">
. Para outros valores, lançará o erro: A meta element with an http-equiv attribute whose value is X-UA-Compatible must have a content attribute with the value IE=edge.
Em outras palavras, se você o tiver IE=edge,chrome=1
, não será validado. Eu ignoro esse erro completamente, pois os navegadores modernos simplesmente ignoram essa linha de código.
Se você deve ter um código completamente válido, considere fazer isso no nível do servidor, configurando o cabeçalho HTTP. Como uma observação, a Microsoft diz: 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).
Consulte a resposta da olibre ou a resposta da bitinn para obter mais detalhes sobre como definir um cabeçalho HTTP.
XHTML
Não há problema com a validação ao usar <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
o tempo que a tag estiver devidamente fechada (por exemplo, />
vs >
).
Twitter Bootstrap
Essa tag é altamente recomendada pela equipe do Bootstrap desde pelo menos 2014, e o Bootlint , o linter criado pela equipe twbs, continua a emitir um aviso quando a tag é omitida. O linter distingue avisos e erros e, como tal, a gravidade de omitir essa tag pode ser considerada menor.
Para obter mais informações, X-UA-Compatible
consulte o site da Microsoft, Definindo a compatibilidade de documentos .
Para mais informações sobre o que o IE suporta, consulte caniuse.com .
Para obter mais informações sobre os requisitos do Twitter Bootstrap, consulte a página wiki do projeto de bootlint .
Use
content=
"IE=edge,chrome=1"
Ignorar outrosX-UA-Compatible
modosNenhum ícone de compatibilidade
A barra de endereços do IE9 não exibe o botão Modo de exibição de compatibilidade
e a página também não mostra uma variedade de menus, imagens e caixas de texto fora do local.
Recursos
Essa metatag é necessária para ativar
javascript::JSON.parse()
no IE8(mesmo quando
<!DOCTYPE html>
houver)Correção A
renderização / execução de HTML / CSS / JavaScript moderno é mais válida (melhor).
Desempenho
O mecanismo de renderização Trident deve funcionar mais rápido no modo de borda .
Uso
No seu HTML
IE=edge
significa que o IE deve usar a versão mais recente (borda) de seu mecanismo de renderizaçãochrome=1
significa que o IE deve usar o mecanismo de renderização do Chrome, se instaladoOu melhor, na configuração do seu servidor da web:
(veja também a resposta da RiaD )
Apache como proposto por pixeline
Nginx como proposto por Stef Pause
Proxy de verniz, como proposto por Lucas Riutzel
IIS (desde a v7)
A Microsoft recomenda o modo Edge desde o IE11
Conforme observado por Lynda (consulte os comentários), as alterações de compatibilidade no IE11 recomendam o modo Edge :
Mas a posição da Microsoft não era clara. Outra página do MSDN não recomendou o modo Edge :
Em vez disso, a Microsoft recomendou o uso de
<!DOCTYPE html>
:Como Ricardo explica (nos comentários abaixo) qualquer DOCTYPE (HTML4, XHTML1 ...) pode ser usado para acionar o modo Standards, não apenas o DOCTYPE do HTML5. O importante é sempre ter um DOCTYPE na página.
Clara Onager até percebeu em uma versão mais antiga de Especificando modos de documento herdados :
É tão confuso que Usman Y pensou que Clara Onager estava falando sobre:
Bem ... No restante desta resposta, dou mais explicações sobre por que usar
content="IE=edge,chrome=1"
é uma boa prática na produção.História
Por muitos anos (2000 a 2008), a participação de mercado do IE foi superior a 80% . E o IE v6 foi considerado um padrão de fato (participação de mercado de 80% a 97% em 2003 , 2004, 2005 e 2006 somente para o IE6, mais participação de mercado em todas as versões do IE).
Como o IE6 não estava respeitando os padrões da Web , os desenvolvedores tiveram que testar seu site usando o IE6. Essa situação foi ótima para a Microsoft (MS), pois os desenvolvedores da Web precisaram comprar produtos da MS (por exemplo, o IE não pode ser usado sem a compra do Windows), e foi mais lucrativo permanecer em conformidade (ou seja, a Microsoft queria se tornar o padrão, excluindo outros empresas).
Portanto, muitos sites eram compatíveis apenas com o IE6 e, como o IE não era compatível com o padrão da web, todos esses sites não eram bem renderizados em navegadores compatíveis com os padrões. Pior ainda, muitos sites precisavam apenas do IE .
No entanto, neste momento, a Mozilla iniciou o desenvolvimento do Firefox respeitando, tanto quanto possível, todos os padrões da web (outro navegador foi implementado para renderizar as páginas conforme o IE6). À medida que mais e mais desenvolvedores da Web desejavam usar os novos recursos de padrões da Web, mais e mais sites eram mais suportados pelo Firefox do que o IE.
Quando o compartilhamento de mercado do IE estava diminuindo, a MS percebeu que permanecer incompatível com o padrão não era uma boa idéia. Portanto, a MS começou a lançar a nova versão do IE (IE8 / IE9 / IE10), respeitando cada vez mais os padrões da web.
O problema incompatível com a web
Mas o problema são todos os sites criados para o IE6: a Microsoft não pôde lançar novas versões do IE incompatíveis com esses sites antigos criados pelo IE6. Em vez de deduzir a versão do IE, um site foi projetado, a MS solicitou aos desenvolvedores que adicionassem dados extras (
X-UA-Compatible
) em suas páginas.O IE6 ainda é usado em 2016
Atualmente, o IE6 ainda é usado (0,7% em 2016) (4,5% em janeiro de 2014) e alguns sites da Internet ainda são compatíveis apenas com o IE6. Alguns sites / aplicativos da intranet são testados usando o IE6. Alguns sites da intranet são 100% funcionais apenas no IE6. Essas empresas / departamentos preferem adiar o custo da migração: outras prioridades, ninguém sabe mais como o site / aplicativo foi implementado, o proprietário do site / aplicativo herdado faliu ...
A China representa 50% do uso do IE6 em 2013, mas pode mudar nos próximos anos à medida que a distribuição Linux chinesa estiver sendo transmitida .
Seja confiante com suas habilidades na web
Se você (tentar) respeitar o padrão da web, poderá simplesmente usar sempre
http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"
. Para manter a compatibilidade com navegadores antigos, evite usar os recursos mais recentes da Web: use o subconjunto suportado pelo navegador mais antigo que você deseja suportar. Ou, se você quiser ir mais longe, pode adotar conceitos como degradação graciosa , aprimoramento progressivo e JavaScript discreto . (Você também pode ler o que deve considerar um desenvolvedor da web?. )Não se preocupe com a melhor renderização da versão do IE: esse não é o seu trabalho, pois os navegadores precisam estar em conformidade com os padrões da web. Se o seu site for compatível com o padrão e usar recursos moderadamente mais recentes, os navegadores deverão ser compatíveis com o seu site .
Além disso, como existem muitas campanhas para matar o IE6 ( IE6 , campanha da MS ), hoje em dia você pode evitar perder tempo com os testes do IE!
Experiência pessoal no IE6
Em 2009-2012, trabalhei para uma empresa que usava o IE6 como o navegador único oficial permitido . Eu tive que implementar um site na intranet apenas para o IE6. Decidi respeitar o padrão da Web, mas usando o subconjunto compatível com IE6 (HTML / CSS / JS).
Foi difícil, mas quando a empresa mudou para o IE8, o site ainda estava bem renderizado porque eu havia usado o Firefox e o firebug para verificar a compatibilidade com o padrão da web;)
fonte
Starting with IE11, edge mode is the preferred document mode; it represents the highest support for modern standards available to the browser.
A diferença é que, se você especificar apenas
DOCTYPE
, as Configurações de exibição de compatibilidade do IE terão precedência. Por padrão, essas configurações forçam todos os sites da intranet para o Modo de Exibição de Compatibilidade, independentemente deDOCTYPE
. Há também uma caixa de seleção para usar o Modo de Exibição de Compatibilidade para todos os sites, independentementeDOCTYPE
.X-UA-Compatible
substitui as configurações do modo de exibição de compatibilidade, para que a página seja renderizada no modo padrão, independentemente das configurações do navegador. Isso força o modo de padrões para:DOCTYPE
sozinho não pode fazer isso; você terminará em um dos modos de exibição de compatibilidade nesses casos, independentementeDOCTYPE
.Se a
meta
tag e o cabeçalho HTTP forem especificados, ameta
tag terá precedência.Esta resposta é baseada no exame das regras completas para decidir o modo de documento no IE8 , IE9 e IE10 . Observe que observar o
DOCTYPE
é o último substituto para decidir o modo de documento.fonte
Use isso para forçar o IE a ocultar esse botão irritante de compatibilidade do navegador na barra de endereços:
fonte
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
com achrome=1
diretiva, solicitando que os usuários do IE6, 7, 8 instalem / usem o Chrome Frame . Até o HTML5 Boilerplate o usa.<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
desde o dia em que saiu sem nenhum problema. Na verdade, já salvei minha equipe e centenas de dores de cabeça ao fazer o IE dos usuários usar seu mecanismo mais recente para renderizar as páginas que construímos. Ao contrário de você e a Microsoft, recomendo a todos que usem a metatag acima toda vez . Enquanto IE ainda está por aí, vamos ser "forçado" a utilizar esta tag meta: p<meta http-equiv="X-UA-Compatible" content="IE=10">
. Em seguida, ele se reporta como Microsoft Internet Explorer.Como não consigo adicionar um comentário à resposta marcada, postarei isso aqui.
Além da resposta correta, você pode validar isso. Como essa metatag é direcionada apenas para o IE, tudo o que você precisa fazer é adicionar uma condicional ao IE.
Fazer isso é como adicionar qualquer outra declaração condicional do IE e funciona apenas para o IE e nenhum outro navegador será afetado.
fonte
Eu acho que esse diagrama da Microsoft explica tudo. Para informar ao IE como renderizar o conteúdo, o! DOCTYPE precisa trabalhar com a metatag compatível com X-UA. O DOCTYPE por si só não afeta a alteração do modo de documento do IE.
http://ie.microsoft.com/testdrive/ieblog/2010/Mar/02_HowIE8DeterminesDocumentMode_3.png
fonte
Apenas para completar, você realmente não precisa adicioná-lo ao seu HTML (que é desconhecido como http-equiv no HTML5)
Faça isso e nunca olhe para trás (primeiro exemplo para apache , segundo para nginx )
fonte
Bad value X-UA-Compatible for attribute http-equiv on element meta.
- Isso não significa que não funcionará. Simplesmente não é um código válido.Apenas uma frase para dizer Instrua o Internet Explorer a usar seu mais recente mecanismo de renderização
fonte
Para que esta linha funcione conforme o esperado, verifique se:
<head>
<html>
elementoCaso contrário, algumas versões do IE simplesmente o ignoram.
ATUALIZAR
Essas duas regras são simplificadas, mas são fáceis de lembrar e verificar. Apesar dos documentos do MSDN afirmando que você pode colocar o título e outras metatags antes deste, eu não recomendaria isso.
Como fazê-lo funcionar com comentários condicionais.
Artigo interessante sobre a ordem dos elementos na cabeça. (blogs.msdn.com, para IE)
REFERÊNCIA
Na documentação do MSDN :
fonte
se você usar seu site na mesma rede que o servidor IE, ele gosta de mudar para o modo de compabilidade, apesar do DOCTYPE.
A adição
meta http-equiv="X-UA-Compatible" content="IE=Edge"
desativa esse comportamento indesejado.fonte
Esta é literalmente uma consulta do Google , mas aqui vai:
http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx
Também entre os resultados da pesquisa está:
fonte
2.1.3.5 Metatag de compatibilidade com X-UA e cabeçalho de resposta HTTP
Essa funcionalidade não será implementada em nenhuma versão do Microsoft Edge.
Consulte https://msdn.microsoft.com/en-us/library/ff955275(v=vs.85).aspx
Sim, eu sei que estou atrasado para a festa, mas só tive alguns problemas e discussões e, no final, meu chefe me mandou remover a
X-UA-Compatible
tag de todos os documentos em que estava trabalhando.Se essas informações estiverem desatualizadas ou não forem mais relevantes, corrija-me.
fonte