Предположим, у вас есть страница с относительно строгим типом документа и разметкой HTML, которая довольно близка к совместимости, но, возможно, пропускает несколько глупых способов, возможно, из-за пользовательского контента, который находится вне вашего контроля ... скажем, вы работаете с контентом система управления или тема для системы управления контентом, где вы контролируете некоторую базовую структуру и вам нужен некоторый javascript, но вы не несете ответственности за все остальное, что входит в страницы.
Как вы можете определить (или: что определит), когда браузер решает перейти в режим "причуд" вместо того, чтобы использовать его более совместимый со стандартами движок?
Я ищу ответы для каждого из основных браузеров, поскольку IE, Chrome, Safari и Firefox, конечно, будут обрабатывать это по-разному. Достаточно ли одной единственной ошибки, чтобы заставить это сделать это, или у вас есть некоторая свобода действий?
источник
Поскольку вы можете запросить режим рендеринга в JavaScript, у вас может быть букмарклет, который сообщит вам, какой режим рендеринга использует страница.
Я нашел этот букмарклет режима рендеринга, который мне подходит:
источник
Полный ответ на ваш конкретный вопрос: «Достаточно ли одной единственной ошибки, чтобы ее вызвать, или у вас есть некоторая свобода действий?» в том, что это полностью зависит от ошибки. Например,
вызовет режим причуд в IE 6 и 7, несмотря на то, что на самом деле это не ошибка (они просто вызывают полное колебание, когда самая первая строка файла не является объявлением). Краткий список типов / причуд можно найти здесь
Попробуйте вставить следующую строку в свой HTML-код для тестирования (очень плохое поведение javascript, которое я передаю здесь - извините ... убедитесь, что это никогда не будет запущено :)
источник
Согласно http://www.quirksmode.org/css/quirksmode.html : «Проблема заключалась в том, что некоторые страницы, написанные в режиме совместимости, действительно имели типы документа. Поэтому каждый браузер имеет свой собственный список типов документов, запускающих режим совместимости. См. Этот браузер. сравнительная таблица для обзора этих списков: http://hsivonen.iki.fi/doctype/ "
Надеюсь это поможет
источник
Если вы скажете IE, что он должен быть строгим (через doctype), он не изменит свое мнение на полпути страницы.
источник
Если я правильно понимаю режим quirks, страницы, которая не проверяется на соответствие заявленному типу документа, недостаточно для запуска режима quirks. Он просто не будет правильно отображаться.
Лучший ресурс, который я нашел для определения того, как разные браузеры обрабатывают каждый тип документа, находится здесь .
источник
Для Firefox с дополнительной панелью инструментов веб-разработчика вы можете посмотреть на три значка справа от панели. Крайний левый говорит вам, в каком режиме вы находитесь.
источник
В IE вы увидите это в инструментах разработчика (нажав F12), он говорит это в меню: Режим документа: ... И вы также можете принудительно установить другой режим там.
источник
на странице html5 напишите "
<!DOCTYPE html>
" начало страницы может измениться на document.compatMode = 'CSS1Compat'источник