Aktualizacja z października 2015 r
Ta odpowiedź została opublikowana kilka lat temu i teraz naprawdę powinno być pytanie, czy w ogóle warto rozważyć użycie X-UA-Compatible
tagu na swojej stronie? wraz ze zmianami, które Microsoft wprowadził w swoich przeglądarkach (więcej o tych poniżej).
W zależności od obsługiwanych przeglądarek Microsoft może nie być konieczne dalsze używanie X-UA-Compatible
znacznika. Jeśli potrzebujesz obsługi IE9 lub IE8, polecam użycie tagu. Jeśli obsługujesz tylko najnowsze przeglądarki (IE11 i / lub Edge), rozważałbym całkowite usunięcie tego tagu. Jeśli używasz Bootstrap na Twitterze i chcesz wyeliminować ostrzeżenia sprawdzania poprawności, ten tag musi pojawić się w określonej kolejności. Dodatkowe informacje poniżej:
X-UA-Compatible
Tag pozwala autorom internetowych do wyboru, jaka wersja programu Internet Explorer strona powinna być renderowane jako. IE11 wprowadził zmiany w tych trybach; patrz uwaga IE11 poniżej. Microsoft Edge , przeglądarka, która zastąpiła IE11, honoruje X-UA-Compatible
metatag tylko w pewnych okolicznościach. Zobacz notatkę Microsoft Edge poniżej.
Według Microsoft, gdy używasz X-UA-Compatible
znacznika, powinien on być możliwie najwyższy w twoim dokumencie head
:
Jeśli używasz tagu META zgodnego z X-UA, chcesz umieścić go jak najbliżej górnej części HEAD strony. Internet Explorer zaczyna interpretować znaczniki przy użyciu najnowszej wersji. Gdy Internet Explorer napotka znacznik META zgodny z X-UA, zaczyna od nowa za pomocą silnika wskazanej wersji. Jest to uderzenie wydajności, ponieważ przeglądarka musi zatrzymać i ponownie rozpocząć analizę zawartości.
Oto twoje opcje:
- „IE = krawędź”
- „IE = 11”
- „IE = EmulujIE11”
- „IE = 10”
- „IE = EmulujIE10”
- „IE = 9”
- „IE = EmulujIE9
- „IE = 8”
- „IE = EmulujIE8”
- „IE = 7”
- „IE = EmulujIE7”
- „IE = 5”
Aby spróbować zrozumieć, co to znaczy, oto definicje dostarczone przez Microsoft:
Internet Explorer obsługuje wiele trybów zgodności dokumentów, które włączają różne funkcje i mogą wpływać na sposób wyświetlania zawartości:
Tryb krawędzi informuje program Internet Explorer, aby wyświetlał zawartość w najwyższym dostępnym trybie. W przypadku przeglądarki Internet Explorer 9 jest to odpowiednik trybu IE9. Jeśli w przyszłej wersji programu Internet Explorer obsługiwany będzie tryb wyższej zgodności, strony ustawione na tryb krawędzi pojawią się w trybie najwyższym obsługiwanym przez tę wersję. Te same strony nadal pojawiałyby się w trybie IE9 podczas przeglądania w Internet Explorerze 9. Internet Explorer obsługuje wiele trybów zgodności dokumentów, które włączają różne funkcje i mogą wpływać na sposób wyświetlania zawartości:
Tryb IE11 zapewnia najwyższą dostępną obsługę ustalonych i powstających standardów branżowych, w tym HTML5, CSS3 i innych.
Tryb IE10 zapewnia najwyższą dostępną obsługę ustalonych i powstających standardów branżowych, w tym HTML5, CSS3 i innych.
Tryb IE9 zapewnia najwyższą dostępną obsługę ustalonych i powstających standardów branżowych, w tym HTML5 (Robocza wersja robocza), Kaskadowe arkusze stylów W3C Specyfikacja poziomu 3 (Robocza wersja robocza), Skalowalna grafika wektorowa (SVG) 1.0 i inne. [Uwaga edytora: IE 9 nie obsługuje animacji CSS3].
Tryb IE8 obsługuje wiele ustalonych standardów, w tym specyfikację kaskadowych arkuszy stylów W3C poziomu 2.1 oraz interfejs API Selektorów W3C; zapewnia także ograniczoną obsługę specyfikacji kaskadowych arkuszy stylów W3C poziomu 3 (robocza wersja robocza) i innych nowych standardów.
Tryb IE7 renderuje zawartość tak, jakby była wyświetlana w trybie standardów przez Internet Explorer 7, niezależnie od tego, czy strona zawiera dyrektywę.
Tryb emulacji IE9 informuje program Internet Explorer, aby używał dyrektywy do określania sposobu renderowania treści. Dyrektywy trybu standardowego są wyświetlane w trybie IE9, a dyrektywy trybu dziwactwa są wyświetlane w trybie IE5. W przeciwieństwie do trybu IE9, tryb Emuluj IE9 jest zgodny z dyrektywą.
Tryb emulacji IE8 informuje program Internet Explorer, aby używał dyrektywy do określania sposobu renderowania treści. Dyrektywy trybu standardowego są wyświetlane w trybie IE8, a dyrektywy trybu dziwactwa są wyświetlane w trybie IE5. W przeciwieństwie do trybu IE8, tryb Emuluj IE8 jest zgodny z dyrektywą.
Tryb emulacji IE7 informuje program Internet Explorer, aby używał dyrektywy do określania sposobu renderowania treści. Dyrektywy trybu standardowego są wyświetlane w trybie standardowym programu Internet Explorer 7, a dyrektywy trybu dziwactwa są wyświetlane w trybie IE5. W przeciwieństwie do trybu IE7, tryb emulacji IE7 jest zgodny z dyrektywą. W przypadku wielu stron internetowych jest to preferowany tryb zgodności.
Tryb IE5 renderuje zawartość tak, jakby była wyświetlana w trybie dziwactw przez Internet Explorer 7, co jest bardzo podobne do sposobu wyświetlania zawartości w Microsoft Internet Explorer 5.
UWAGA IE10: Począwszy od IE10, tryb dziwactwa zachowuje się inaczej niż we wcześniejszych wersjach przeglądarki. W IE9 i wcześniejszych wersjach tryb dziwactw ograniczył stronę do funkcji obsługiwanych przez IE5.5. W IE10 tryb dziwactwa jest zgodny z różnicami określonymi w specyfikacji HTML5.
Osobiście zawsze wybieram http-equiv="X-UA-Compatible" content="IE=edge"
metatag, ponieważ starsze wersje zawierają wiele błędów i nie chcę, aby IE decydowało się na przejście do „Trybu zgodności” i wyświetlało moją stronę jako IE7 vs. IE8 lub 9. Zawsze wolę najnowszą wersję TO ZNACZY.
IE11
Od Microsoft :
Począwszy od IE11, tryb krawędzi jest preferowanym trybem dokumentu; reprezentuje najwyższą obsługę nowoczesnych standardów dostępnych dla przeglądarki.
Użyj deklaracji typu dokumentu HTML5, aby włączyć tryb krawędzi:
<!doctype html>
Tryb Edge został wprowadzony w Internet Explorerze 8 i był dostępny w każdej kolejnej wersji. Pamiętaj, że funkcje obsługiwane przez tryb krawędzi są ograniczone do funkcji obsługiwanych przez określoną wersję przeglądarki wyświetlającą treść.
Począwszy od IE11, tryby dokumentów są przestarzałe i nie powinny być dłużej używane, z wyjątkiem tymczasowych. Zaktualizuj witryny oparte na starszych funkcjach i trybach dokumentów, aby odzwierciedlały współczesne standardy.
Jeśli musisz wybrać określony tryb dokumentu, aby Twoja witryna działała podczas jej przerabiania w celu obsługi nowoczesnych standardów i funkcji, pamiętaj, że używasz funkcji przejściowej, która może nie być dostępna w przyszłych wersjach.
Jeśli obecnie używasz nagłówka zgodnego ze standardem x-ua, aby kierować do starszego trybu dokumentu, możliwe, że Twoja witryna nie będzie odzwierciedlać najlepszych doświadczeń dostępnych w IE11.
Microsoft Edge (zamiennik dla Internet Explorera dostarczany z systemem Windows 10)
Informacje na temat X-UA-Compatible
metatagu dla wersji IE „Edge”. Od Microsoft :
Przedstawiamy „żywy” tryb dokumentu Edge
Jak ogłosiliśmy w sierpniu 2013 r., Przestajemy używać trybów dokumentów od IE11. Dzięki najnowszym aktualizacjom platformy zapotrzebowanie na starsze tryby dokumentów ogranicza się przede wszystkim do starszych aplikacji internetowych Enterprise. Dzięki nowym zmianom architektonicznym te starsze tryby dokumentów zostaną odizolowane od zmian w „żywym” trybie Edge, co pomoże zagwarantować znacznie wyższy poziom kompatybilności dla klientów, którzy polegają na tych trybach i pomoże nam w szybszym wprowadzaniu ulepszeń w Edge . IE nadal będzie honorować tryby dokumentów obsługiwane przez witryny intranetowe, witryny znajdujące się na liście widoku zgodności i używane tylko w trybie korporacyjnym.
Publiczne strony internetowe będą renderowane przy użyciu nowej platformy trybu Edge (ignorując X-UA-Compatible). Naszym celem jest, aby Edge był „żywym” trybem dokumentu odtąd i żadne dalsze tryby dokumentów nie zostaną wprowadzone w przyszłości.
Ponieważ zmiany w Microsoft Edge w większości przypadków nie obsługują już trybów dokumentów, Microsoft ma narzędzie do skanowania witryny w celu sprawdzenia, czy ma kod niezgodny z Edge.
Chrome = 1 Info dla IE
Istnieje również chrome=1
, że można użyć albo stosować razem z jednym z powyższych opcji, takich jak: <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
. chrome=1
jest dla Google Chrome Frame, który jest zdefiniowany jako:
Google Chrome Frame to wtyczka przeglądarki typu open source. Użytkownicy, którzy mają zainstalowaną wtyczkę, mają dostęp do otwartych technologii internetowych Google Chrome i szybkiego silnika JavaScript podczas otwierania stron w przeglądarce.
Google Chrome Frame bezproblemowo poprawia komfort przeglądania w Internet Explorerze. Wyświetla witryny obsługujące ramkę Google Chrome przy użyciu technologii renderowania Google Chrome, dając dostęp do najnowszych funkcji HTML5, a także do funkcji wydajności i bezpieczeństwa Google Chrome bez zakłócania zwykłego korzystania z przeglądarki.
Po zainstalowaniu Google Chrome Frame Internet staje się lepszy bez konieczności myślenia o tym.
Ale aby ta wtyczka działała, musisz użyć jej chrome=1
w X-UA-Compatible
metatagu.
Więcej informacji na temat Chrome Frame można znaleźć tutaj .
Uwaga: Google Chrome Frame działa tylko dla IE6 do IE9 i został wycofany 25 lutego 2014 r. Więcej informacji można znaleźć tutaj . Dzięki @mck za link.
Uprawomocnienie:
HTML5 :
Strona zostanie sprawdzona przy użyciu W3 Validator tylko podczas używania <meta http-equiv="X-UA-Compatible" content="IE=Edge">
. W przypadku innych wartości zgłosi błąd: A meta element with an http-equiv attribute whose value is X-UA-Compatible must have a content attribute with the value IE=edge.
Innymi słowy, jeśli IE=edge,chrome=1
go masz, nie będzie sprawdzany. Całkowicie ignoruję ten błąd, ponieważ nowoczesne przeglądarki po prostu ignorują ten wiersz kodu.
Jeśli musisz mieć całkowicie poprawny kod, rozważ zrobienie tego na poziomie serwera, ustawiając nagłówek HTTP. Jako notatkę Microsoft mówi: 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).
Zobacz odpowiedź olibre lub odpowiedź Bitinna, aby uzyskać więcej informacji na temat ustawiania nagłówka HTTP.
XHTML
Nie ma problemu z walidacją podczas używania, <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
dopóki tag jest odpowiednio zamknięty (np. />
Vs >
).
Bootstrap na Twitterze
Ten tag jest zdecydowanie zalecany przez zespół Bootstrap od co najmniej 2014 roku, a Bootlint , linter autorstwa zespołu twbs, nadal wyświetla ostrzeżenie, gdy znacznik zostanie pominięty. W linijce rozróżnia się ostrzeżenia i błędy, a zatem stopień pominięcia tego znacznika można uznać za niewielki.
Aby uzyskać więcej informacji, X-UA-Compatible
zobacz Witryna Microsoft Definiowanie zgodności dokumentów .
Aby uzyskać więcej informacji o tym, co obsługuje IE, zobacz caniuse.com .
Więcej informacji na temat wymagań Bootstrap na Twitterze znajduje się na stronie wiki projektu bootlint .