Какая разница между "режимом причуд" и "режимом совместимости" в IE?

Я думал, что это одно и то же, за исключением того, что я только что узнал, что это не так!

Используя IE8, я могу отобразить одну и ту же веб-страницу тремя способами:

  • Режим стандартов. XHTML Strict DOCTYPE находится в верхней части веб-страницы.

  • То же, что и выше, за исключением того, что в режиме IE8 нажата кнопка "Совместимый режим". Теперь веб-страница отображается немного странно.

  • Если я удалю DOCTYPE с веб-страницы (это заставляет режим quirks?). Теперь веб-страница отображается очень плохо и не совпадает с просмотром в режиме совместимости. На данный момент щелчок "режим совместимости" не имеет значения.

Ответ 1

Режим Quirks - это в основном режим совместимости с IE5. Это вызвано недействительным объявлением <!DOCTYPE>. Основной эффект заключается в том, что он заставляет браузер использовать коробку-модель IE5, а это значит, что все ваши paddings, поля и границы и все остальное, которое влияет на размер поля, будет неправильным.

Режим совместимости - это режим совместимости с IE7 (IE9 также имеет режим совместимости с IE8), который запускается либо метатегами, указывающими, что страница должна использовать его, либо конфигурацией браузера пользователя.

Оба могут также быть указаны явно в окне инструментов разработчика.

Режим совместимости иногда полезен для тестирования (поскольку IE7 не имеет окна инструментов разработчика) и для сайтов интрасети, где компания слишком дешева, чтобы обновить свой код, чтобы справиться с новым браузером. (но, заявив, что режим совместимости не является точной копией IE7, у него есть свои ошибки и проблемы, поэтому для большинства тестов вам лучше придерживаться реальной копии IE7)

Режим Quirks никогда не должен использоваться. Кто в здравом уме хотел бы быть совместимым с IE5?

Ответ 2

Кнопка режима совместимости в ie8 обычно воспроизводит эффекты просмотра веб-страницы через браузер ie7, что означает, что он устанавливает режим документа в стандарты IE7, если присутствует doctype, в противном случае режим документа будет работать в IE5 (или режиме quirks).

Итак, (если предположить, что мета-тегов не отменяет нормальное поведение), в случае 1 страница отображается в режиме ie8, в случае 2 в режиме ie7 и в случае 3 - в IE5 (режим quirks) независимо от того, используется ли представление совместимости.

Здесь есть страница http://www.nczonline.net/blog/2010/01/19/internet-explorer-8-document-and-browser-modes/, которая описывает запутанный беспорядок, который является режимом документа в Internet Explorer намного понятнее, чем я могу...