HTML 5 по сравнению с XHTML 1.0 Transitional?

Кажется, что HTML 5 будет поддерживаться (частично) Firefox 3.1 и другими браузерами. Он добавляет поддержку видео и аудио в качестве тегов, но это новые теги, которые XHTML 1.0 Transitional не распознает. Каково поведение, которое должно быть, если я использую новый тег HTML 5 в будущей версии Firefox, но использую DTD для XHTML? А что, если я смешаю разметку HTML 5 с XHTML 1.0 Trans?

Это запутывает. Почему они не добавили эти теги в XHTML? Как мы поддерживаем XHTML и HTML 5?

Видео по HTML 5: http://www.youtube.com/watch?v=xIxDJof7xxQ

Ответ 1

Ну, вообще говоря, HTML - это SGML, а XHTML выражается в XML. Из-за этого создание XHTML связано с большим количеством ограничений (в виде разметки), чем HTML. (SGML на основе XML-HTML)

Как упоминалось в Wikipedia, HTML 5 также будет иметь вариант XHTML (XHTML 5).

Правило большого пальца: вы всегда должны использовать действительную разметку. Это также означает, что вы не должны использовать теги <video> или <audio> в XHTML 1.0 Transitional, поскольку они не являются элементом этой спецификации. Если вам нужно действительно использовать те теги (что я очень сомневаюсь), то вы должны убедиться, что используете DTD HTML 5/XHTML 5, чтобы указать, что ваш документ находится в этом DOCTYPE.

Использование HTML 5 или XHTML 5 в данном состоянии реализации (AFAIK, стандарт даже не урегулирован, но правильный?) может быть контрпродуктивным, так как почти все пользователи могут не видеть, что веб-сайт предоставил корреляцию в любом случае.

Редактировать 2013: Из-за недавних downvotes, и поскольку этот принятый ответ не может быть удален (мной), я хотел бы добавить, что процесс поддержки и стандартизации HTML5 в наши дни полностью отличается от того, что было, когда я написал этот ответ пять лет назад. Поскольку большинство основных браузеров поддерживают большинство частей HTML5-проекта и потому, что многие вещи могут быть исправлены с помощью полиполнений в старых браузерах, я в основном использую HTML5 сейчас.

Ответ 2

HTML5 гораздо проще писать, чем XHTML 1.0.

  • Вам не нужно вручную объявлять пространство имен http://www.w3.org/1999/xhtml.

  • Вам не нужно добавлять атрибуты типа в script и элементы стиля (они по умолчанию имеют текст /javascript и текст /css ).

  • Вам не нужно использовать длинный doctype, где браузер просто игнорирует большинство из них. Вы должны использовать <! DOCTYPE html > , что легко запомнить.

  • У вас нет выбора включать или не включать dtd uri в doctype, и у вас нет выбора между переходным и строгим. У вас просто строгий doctype, который вызывает полный режим стандартов. Таким образом, вам не нужно беспокоиться о том, что вы случайно находитесь в режиме почти стандартов или режиме Quirks.

  • Объявление charset намного проще. Это просто < meta charset = "utf-8" > .

  • Если вам неловко писать элементы void как <name> , вы можете использовать < name/ > , если хотите.

  • HTML5 имеет действительно хороший валидатор в http://validator.nu/. Валидатор не связан дрянным DTD, который не может выразить все правила.

  • Вам не нужно добавлять // <! [CDATA и т.д. в встроенные скрипты или таблицы стилей (в определенных ситуациях) для проверки.

  • При необходимости вы можете использовать embed.

Просто синтаксически, когда вы используете HTML5, вы получаете более чистую, удобную для чтения разметку, которая всегда вызывает режим стандартов. Когда вы используете XHTML 1.0 (используется как text/html), вы указываете кучу crud (чтобы проверить на crappy dtd), что браузер будет делать автоматически.

Ответ 3

Мифы и заблуждения изобилуют этой нитью.

  • XHTML 1.0 старше HTML 5. Он не может использовать какой-либо новый словарь. Действительно, его основной точкой продажи было то, что он использует точно такой же словарь, как и HTML 4.01.

  • Скорее всего, XHTML 1.2 не будет. И это не нужно. XHTML 5 - это XML-сериализация HTML 5. Идентичный словарь, различные правила синтаксического анализа.

  • HTML никогда не рассматривался как истинный SGML в браузерах. Ни один браузер никогда не реализовал SGML-совместимый синтаксический анализатор. HTML 5 превратит этот факт в правило, а сериализация HTML будет следовать сегодняшнему стандарту de facto. Можно сказать, что это "SGML-ish".

  • Как уже было сказано, DTD выполняет только одну цель IN BROWSERS, и это значит различать режим соответствия стандартам и режим причуд. Таким образом, это влияет только на стиль и скриптинг. Если вы используете фреймы на странице с аскетическим doctype, они будут выглядеть отлично. Как будет <embed> и даже <marquee> - хотя последний - мерзость, а первая - не в нынешнем стандарте. Однако это часть HTML 5.

  • Видео и аудио могут использоваться независимо от сериализации, XML или HTML. они являются частью как HTML 5, так и XHTML 5. После того, как этап синтаксического анализа закончится, браузер построит внутреннюю DOM документа. Это DOM будет для всех практических целей одинаковым независимо от сериализации. И да, XHTML, отправленный с текстом /html, по-прежнему является нормальным html, независимо от doctype.

Ответ 4

Возможно, вы неправильно рассматриваете проблему, потому что отношение к разделу XHTML 1.x, в HTML 5 говорится:

"Эта спецификация предназначена для замены XHTML 1.0 в качестве нормативного определения сериализации XML словаря HTML.

Теперь этот язык является спорным (РГ XHTML 2 оспаривает его, и WG WG пытается решить разногласия...), но это то, где мы стоим прямо сейчас.

Несколько примечаний:

Ответ 5

Имейте в виду, что доктриты служат только одной цели в браузерах: переключайтесь между причудами, почти стандартами и стандартным режимом. Поэтому использование <video> и <audio> будет работать с любым объявлением doctype. IMO, используя доктрину XHTML, совершенно бесполезна, так как каждая страница, которую вы отправляете с типом text/html MIME, все равно анализируется как (tag-soup) HTML. Я предлагаю использовать doctype HTML5 (<!doctype html>), поскольку его легче запомнить и не заставляет вас в синтаксисе XML без причины.

Почему они просто не добавили эти теги в XHTML?

Они на самом деле сделали, есть XML-сериализация HTML 5 (XHTML5). Чтобы использовать это, вы должны отправить свои страницы с типом XML MIME, например application/xhtml+xml. Тем не менее, это не поддерживается IE.

Ответ 6

Каково поведение, которое должно быть, если Я использую новый тег HTML 5 в будущем версии Firefox, но используйте DTD для XHTML?

И что, если я смешаю разметку HTML 5 с XHTML 1.0 Trans?

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

Почему они просто не добавили эти теги в XHTML? Как мы поддерживаем XHTML и HTML 5?

xHTML не лучше, чем HTML, но он больше подходит для некоторых приложений. Одним из основных преимуществ xHTML является то, что он может быть преобразован в различные форматы с использованием XSLT. Например, вы можете использовать XSLT для автоматического преобразования xHTML в канал RSS или другой формат XML.

Вам не нужно поддерживать оба формата - взвешивайте преимущества/недостатки для каждого с вашими проектными требованиями. HTML 5, вероятно, не будет стандартным в течение некоторого времени.

Ответ 7

(X) HTML5 - это только следующая версия. Вы должны использовать XHTML1.1 до тех пор, пока XHTML5 не будет хорошо поддержан.

Вероятно, вы не должны использовать SGML-профиль обратной совместимости HTML5. Это усложняет работу скребков и небольших парсеров.

Ответ 8

Ваш doctype сообщит обозревателю, используете ли вы HTML5 или XHTML. Вы не можете просто перетащить тег из одного doctype в документ другого типа и ожидать, что он будет работать. Без доктрины все равно просто пометьте суп.

Ответ 9

Не используйте такие вещи, как видео/аудио теги, когда 99% людей не смогут правильно их просматривать в своем браузере. Для любого из этих двух примеров я бы предложил использовать FLV.

Насколько они не добавили его в XHTML... firstly 1.0 не самая последняя версия, 1.1 был выпущен некоторое время назад.

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

Ответ 10

Насколько я знаю, XHTML должен был быть более строгим, более XML-подобным внедрением HTML. Почему они не могут просто сделать HTML 5 == XHTML вне меня.

HTML 5 действительно поддерживается некоторыми браузерами, но те, кто использует (не так) более старые версии (например, IE7), все равно не будут видеть теги video и audio.

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

Когда XHTML 1.2 выпущен, я ожидаю, что он будет содержать новые элементы из HTML5. Это просто вопрос ожидания.