Безопасно ли просто изменить тип документа HTML 4.01 или XHTML 1.0 на тип HTML5? - PullRequest
8 голосов
/ 23 января 2012

Предположим, я хочу изменить устаревший веб-сайт на HTML5. Безопасно ли просто изменить заголовок doctype, как показано ниже?

<!doctype html>

Исходный тип документа может быть:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

или

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Если изменение на <!doctype html> не может испортить представление устаревшей веб-страницы, я бы предположил, что это безопасно.

Ответы [ 5 ]

5 голосов
/ 23 января 2012

Почти безопасно.

Этот тип документа:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

вызывает в браузерах режим с ограниченным количеством причуд / почти стандартов, тогда как этот тип документа:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

и этот тип документа

<!doctype html>

вызывает стандартный режим в браузерах.

Разница заключается в том, как некоторые встроенные элементывыровнены по вертикали в линейных коробках.

5 голосов
/ 23 января 2012

Почему да, да, это так.

На самом деле, HTML5 был разработан специально для этого, так что любой мог просто изменить свой тип документа, не касаясь разметки, и он был бы действительным.

2 голосов
/ 23 января 2012

Если ваш «свободный» документ содержит устаревшие теги, такие как «шрифт» или «набор фреймов», то страница не будет проверяться, если вы измените ее на HTML5. Это будет работать? Да, скорее всего. Это будет действительным? Зависит от фактического содержания. Скорее всего, ваши строгие документы, если они были действительными, все равно будут действительными, но «свободные» документы могут не быть.

Что будет с дисплеем? Это зависит от. Я обнаружил, что изменение переходного документа на HTML5 приводит к изменениям отображения в некоторых браузерах - в некоторых случаях достаточно радикальным, поэтому мне приходилось менять их обратно, пока у меня не было времени переписать соответствующие страницы.

1 голос
/ 10 апреля 2013

Я только что узнал, что это НЕ безопасно.Мне нужно было несколько элементов HTML5 на старом веб-сайте, которые работают уже несколько лет.Мне нужно было изменить тип документа на html, потому что некоторые браузеры не могли бы работать с новыми элементами в противном случае.

Оказалось, что в javascript domobject.name не работает с новым doctype.Вы должны использовать domobject.attributes["name"].value.Короче говоря, эта простая вещь создала серьезные проблемы с основной функциональностью сайта.

Таким образом, лучше всего проверить все после изменения doctype, потому что оно может сломать различные вещи, о которых вы даже не подумаете ...

1 голос
/ 23 января 2012

Это зависит от вашего определения сейфа.

Он будет надежно запускать одинаковые режимы рендеринга в разных браузерах, поэтому вы не получите никаких различий, которые будут влиять на конечных пользователей.

Это также изменит правила, которые валидатор будет использовать для проверки документа, так что это может создать проблемы для вашего процесса обеспечения качества, так как документы должны быть обновлены.

...