Ключевое отличие состоит в том, что
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
заставляет браузер использовать режим причуд. IE не поддерживает SVG в режиме причуд.
в то время как
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
переводит браузер в почти стандартный режим.
Вы можете легко превратить свой doctype в такой, который будет отображать SVG в IE9, просто добавив системный идентификатор, например:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
Я не знаю, будет ли это работать с IE10, но если IE10 следует правилам синтаксического анализа документа HTML5, как должен, даже указанный выше тип документа вызовет режим quirks и, следовательно, может привести к тому, что SVG не будет отображаться.
HTML 4.0 был заменен в качестве рекомендации W3C на HTML 4.01 более тринадцати лет назад в 1999 году, поэтому абсолютный минимальный тип документа, который вы должны использовать, это
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
что вызовет режим почти стандартный в браузерах, совместимых с HTML5, точно так же, как упомянутый вами тип документа XHTML. Но это было предназначено для людей, переходящих с HTML 3.2 на свои сайты.
Намного лучше было бы убедиться, что ваш сайт работает в стандартном режиме. Вы можете сделать это, используя строгий тип документа HTML 4.01, например
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Это текущая рекомендация W3C, но запомнить ее еще долго. Самая короткая строка, которая выполняет ту же работу по переводу браузеров в режим стандартов:
<!DOCTYPE HTML>
именно поэтому он был выбран для использования в HTML5 и более поздних документах.
person
Alohci
schedule
08.02.2013