На какой DOCTYPE мне следует ориентироваться сегодня? - PullRequest
11 голосов
/ 15 июля 2010

Я рефакторинг веб-приложения .Net, которое находится в

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > 

В настоящее время подход заключается в том, чтобы просто стремиться к звездам и использовать последний тип документа только потому, что он самый последний, и я хотел бы сделать более мудрый выбор и нацелиться на конкретный и по веским причинам.

Существуют похожие вопросы, но ответы на них могут быть устаревшими.

В чем разница, преимущества и недостатки между стандартами и режимом причуд, с какими причудами я могу столкнуться при использовании различных типов доктрин?

Мне сказали, что для интеграции AJAX предпочтительнее использовать тип документа XHTML, поскольку UpadtePanel его сериализует, и для этого требуется тип данных XHTML, в какой степени это верно?

А для совместимости с браузерами, в каком направлении движутся браузеры с точки зрения DOCTYPE, существует ли общая тенденция или они отличаются?

Ответы [ 5 ]

15 голосов
/ 15 июля 2010

HTML5 doctype, то есть

<!DOCTYPE html>

Стандарт XHTML в основном мертв, и в большинстве случаев он никогда не был реализован правильно.

4 голосов
/ 15 июля 2010

Любой тип документа:

  • HTML 4.01 или XHTML 1.0
  • Строгий или переходный

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

  • Избегайте использования Frameset, но если вам нужно, используйте атрибут title для описанияроль каждого кадра для пользователя программы чтения с экрана (аналогично iframe btw).
  • Режим Quirks (без Doctype) является PITA, избегайте его любой ценой.Это было нормально 8 лет назад.
  • Нет пролога XML, если вы не используете html + xml (удачи вам! Если вам нравятся сложные вещи, когда они не нужны, это ваш выбор)
  • Если вы вынуждены использовать атрибутыкоторые запрещены в строгом режиме (например, target="_blank"), чем в переходном режиме: вот почему он был создан!И, пожалуйста, укажите своим пользователям, что ссылка откроется на новой странице, будь то в тексте вашей ссылки или в ее заголовке.Это важно с точки зрения доступности.

HTML 5 - следующая большая вещь, мы ждем этого, но пока она не будет работать во всехбраузер (я имею в виду IE без JS) не рекомендуется использовать его на «серьезных» публичных сайтах.Это даже проект?Что, если вся его часть будет переписана в течение нескольких месяцев?
Мое веб-агентство использует его для своего веб-сайта, но мы не будем использовать его на клиентском сайте в ближайшее время: это слишком рано.

Sidenote : Я часто вижу такие фразы, как " современный веб-сайт на HTML5 и CSS3 ", подразумевающий, что CSS3 создан для HTML 5.CSS3 не имеет ничего общего с HTML5 и уже может использоваться, если он изящно деградирует в старых браузерах.
Вы можете создавать HTML5 с CSS2.1 или HTML4.01 Transitional с помощью новейших анимаций CSS3, которые работают только в ночных веб-играхнет проблем.

3 голосов
/ 15 июля 2010

Новая вещь - HTML 5.

<!DOCTYPE html> - это то, что вы используете для ее указания.Вот и все.Без имени DTD, URL-адреса или чего-либо еще.

Если вы используете что-то, похожее на XML, например .net, то вы можете использовать XHTML.Но не делайте этого по любой другой причине;XHTML никогда не был действительно популярен как стандарт, или, по крайней мере, он почти никогда не использовался правильно.

1 голос
/ 16 июля 2010

Что бы вы ни выбрали, убедитесь, что ваш MIME-тип совместим с вашим DOCTYPE

Браузер будет использовать MIME-тип (HTTP-заголовок ContentType), чтобы определить, как обрабатывать вашу страницу. Например: DOCTYPE XHTML 1.1 Strict, используемый как ContentType Text\HTML, анализируется как HTML.

DOCTYPE важен, но в значительной степени не имеет значения, если используется неправильный ContentType.

1 голос
/ 15 июля 2010

Браузеры на самом деле никогда не использовали DOCTYPE для определения языка разметки вашего документа (вместо этого они используют HTTP-тип контента), поэтому выбранный вами DOCTYPE никогда не был особенно актуален - до тех пор, пока вы используете действительный DOCTYPEнекоторого описания .Что бы вы ни выбрали, решать только вам.

Если вы пишете HTML, <!DOCTYPE html> является самым коротким шрифтом для ввода и переводит все браузеры в стандартный режим (что вам и нужно).

Если вы пишете XHTML, <!DOCTYPE html> также совершенно легитимен (XHTML на самом деле вообще не требует DOCTYPE, так как полностью полагается на тип содержимого HTTP, но нет никакого вреда, если для переносимости используется DOCTYPE.

Не используйте <!doctype html> - хотя это технически действительный HTML, это недопустимый XHTML, поэтому он сломается, если вы когда-нибудь попытаетесь проанализировать вашу страницу как XML.


Немного OT sidenote: Некоторыелюди здесь отметили, что XHTML - это «мертвый» стандарт - это неверно. XHTML был интегрирован в будущую спецификацию HTML5. Спецификация называется « HTML5: словарь и связанные API для HTML и XHTML "

См .:

...