На какой DOCTYPE я должен настроить таргетинг сегодня?

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

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

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

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

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

Мне сказали, что doctype XHTML предпочтительнее интегрировать AJAX, поскольку UpadtePanel сериализует его, и для этого нужно иметь тип XHTML do, насколько это верно?

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

Ответ 1

HTML5 doctype, который

<!DOCTYPE html>

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

Ответ 2

Любой Doctype:

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

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

  • Избегайте 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, которые работают только в ночных клубах webkit, без проблем.

Ответ 3

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

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

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

Ответ 4

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

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

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

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


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

См:

Ответ 5

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

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

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