Режимы совместимости в IE8 и IE9 предназначены для того, чтобы позволить вам делать именно то, что вы просите - протестировать свой сайт на все версии IE, при этом на вашем компьютере установлена только одна версия IE.
Это отличная идея в принципе. К сожалению, Microsoft все испортила. Хотя режимы совместимости действительно дублируют IE7 и IE8, они также имеют свои собственные ошибки и проблемы, которые не возникают ни в родительском браузере, ни в браузере, который они пытаются эмулировать.
По сути, режимы совместимости - это фактически другой набор различных браузеров. Вы не можете рассчитывать на то, что они точно покажут вам, как выглядит ваш сайт в IE7, но в то же время вам все равно нужно протестировать их, если у вас есть пользователи, которые по какой-либо причине работают в режиме совместимости.
Вы также спрашивали о режиме причуд и режиме стандартов. Обратите внимание, что «режим причуд» не имеет ничего общего с режимом совместимости.
Режим Quirks запускается в IE сайтом, у которого нет объявления <!DOCTYPE>
в верхней части страницы. Это было введено, когда в IE6 появился стандартный режим, позволяющий сайтам работать в более старых версиях IE. Следовательно, режим Quirks фактически является режимом совместимости IE5. Сегодня нет абсолютно никакой причины использовать режим причуд на любом сайте, поэтому вы всегда должны указывать тип документа (предпочтительно тип документа HTML5). Если ваш сайт выглядит хорошо в режиме причуд, а не в стандартном режиме, то вам нужно исправить сайт.
Тип документа HTML5 <!DOCTYPE html>
активирует режим стандартов во всех версиях IE, начиная с IE6 и выше. Фактически, этот тип документа был специально выбран группой стандартов HTML5 специально, потому что это был самый короткий из возможных типов документов, который будет работать во всех существующих браузерах.
О HTML5Shim: у меня возникли некоторые проблемы с настройкой основного shim. Я никогда не выявлял проблему, но решил ее, используя взамен Modernizr . Он имеет те же функциональные возможности, что и базовая прокладка, а также множество других полезных функций для проверки совместимости браузера.
Ваше представление о том, что делает прокладка, немного неправильное: оно не заменяет элементы элементами div. На самом деле он создает фиктивные версии каждого из новых элементов HTML5, используя Javascript. Это использует причуду в IE, при которой он распознает элемент как действительный HTML, если его экземпляр был создан с помощью Javascript. (Это странная причуда, но хакерам оказалось полезно заставить IE принять современные стандарты.
Надеюсь, это поможет.