Корпоративные пользователи очень консервативны, вернее консервативны их админы. Если вы что-то делаете для крупного корпоративного заказчика, то забудьте про 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).
Ссылки по теме: