Какой режим IE6, если doctype HTML в HTML5? - PullRequest
18 голосов
/ 09 мая 2011

Если веб-страница имеет тип документа HTML5.

<!doctype html>

Какой режим рендеринга для IE6?

document.compatMode сообщает CSS1Compat .Выглядит стандартный режим, а не причудливый режим.Но правда ли это?IE6 выпущен до появления термина HTML5.Как IE6 может распознавать тип документа HTML5?

1 Ответ

28 голосов
/ 09 мая 2011

Тип документа HTML5 был специально выбран, потому что это была самая короткая возможная строка типа документа, которая запускала режим стандартов во всех браузерах (начиная с IE6).Это было преднамеренное решение, основанное на том, что будет работать в браузерах, которые уже используются.

Другими словами, если вы укажете <!doctype html>, IE6 должен перейти в стандартный режим, а не в режим причуд.

Причина, по которой это работает, в том, что IE6 (и другие) на самом деле довольно снисходительны к доктайпу;они делают предположение, что если там есть какой-то тип документа, разработчик, вероятно, намеревался перейти в стандартный режим.Если они не распознают его, они предполагают, что либо разработчик сделал опечатку, либо был изобретен новый тип документа, которого не было, когда браузер был выпущен;в любом случае, браузер пытается извлечь из него выгоду и работать в стандартном режиме.Команда HTML5 обнаружила, что html была самой короткой возможной строкой типа документа, которая вызвала такое поведение, поэтому она использовалась в качестве типа документа HTML5.

Что, конечно, делает тип документа HTML5 запускать старые браузеры, такие как IE6, чтобы фактически поддерживать любую из новых функций HTML5.Это на самом деле очевидно.Такие продукты, как Modernizr и HTML5Shiv могут помочь с этим, но только до определенной степени.

...