Режимы совместимости Internet Explorer (X-UA-Compatible)

Корпоративные пользователи очень консервативны, вернее консервативны их админы. Если вы что-то делаете для крупного корпоративного заказчика, то забудьте про Google Chrome или Firefox — скорее всего ваше приложение должно работать под Internet Explorer 8.

В IE, начиная с 8-ой версии, появился режим совместимости: браузер может быть одной версии, а работать на движке другой версии. При желании пользователь (или злые администраторы) сам может включить этот режим в своем браузере, и IE8 начнет работать как IE7, приведет к катастрофическим последствиям: заказчик напишет огромные список того что не работает, и будет возмущаться тем что нельзя выдавать такое гамно.

К счастью, можно принудительно перевести IE в нужный режим, с помощью мета-тега или http-заголовка. Мета-тег нужно расположить в блоке <head> до каких-либо других элементов, за исключением тега <title> или других мета-тегов (подробней об этом написано в MSDN):

<meta http-equiv="X-UA-Compatible" content="IE=%версия%" />
header('X-UA-Compatible: IE=%версия%');

Где %версия% — это нужная вам версия: 5 (Quirks mode), 7, 8, 9, 10, 11, EmulateIE7, EmulateIE8, EmulateIE9, EmulateIE10, EmulateIE11, или же Edge.
В случае с Edge браузер будет работать в режиме последней доступной версии IE (для IE8 — 8, для IE11 — 11; при этом пользователь не сможет изменить режим совместимости).
Если прописана конкретная версия, то браузер будет отображать страницу в режиме этой версии IE, независимо от того, содержится ли на странице директива <!DOCTYPE>.
При использовании одного из режимов EmulateIE страница отображается в режиме нужно версии IE лишь в том случае, если на странице присутствует директива <!DOCTYPE>, иначе она отображается в режиме IE5 (Quirks mode).

Ссылки по теме: