Похоже, что 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: https://thewikihow.com/video_xIxDJof7xxQ





Ваш doctype сообщит браузеру, используете ли вы HTML5 или XHTML. Вы не можете просто вставить тег из одного документа в документ другого типа и ожидать, что он сработает. Без доктайпа это все равно просто пометить суп.
Почему это было отклонено? Это неточное заявление? Кажется, это шутка с ответами других ...
@ Адам: Потому что мало кто из браузеров обращает внимание на фактический тип документа. На практике вы может просто вставляете тег из типа документа HTML в XHTML, и он обычно просто работает - во многих случаях браузеры просто применяют данный тип документа независимо от этого. Самая большая реальная функция строки doctype практически в любом браузере - информировать браузер о том, что страница пытается соответствовать стандарту HTML немного (X), поэтому браузер должен попытаться отобразить страницу в «стандартном режиме», что немного изменяет коробчатая модель среди прочего.
Internet Explorer 9 по крайней мере требует, чтобы вы указали тип документа как <! DOCTYPE html>, чтобы использовать новые возможности HTML5 DOM и движка JS.
Не используйте такие вещи, как видео / аудио теги, если 99% людей не смогут правильно просмотреть их в своем браузере. Для любого из этих двух примеров я бы предложил использовать FLV.
Что касается того, почему они не добавляют его в XHTML ... во-первых, 1.0 - не самая последняя версия, 1.1 была выпущена некоторое время назад.
Со временем все станет стандартизированным, и мы увидим эти типы тегов в обоих стандартах, но пока просто сделайте все возможное, чтобы как можно больше людей могли просматривать ваш контент.
Фактически, тег видео имеет ту же обратную совместимость, что и тег iframe - если браузер не поддерживает его, он покажет свое внутреннее содержимое в неформатированном виде. Таким образом, вы можете заключить код для встраивания флэш-памяти в видеотег, и он по-прежнему будет совместим со всеми браузерами.
«Видео для всех» объясняет, как использовать (X) HTML5-видео с резервным флэш-файлом, а затем с резервным скачиванием (у некоторых людей нет флэш-памяти). См. Также «Погружение в HTML5». Кроме того, Flash может воспроизводить видео MP4 H.264, поэтому вам не нужен FLV.
Ой, это быстро устарело.
@minitech - Верно тогда, верно сейчас.
На самом деле все это неправда. 1) У меня не установлен Flash, и он не работает на iOS. 2) Он не был добавлен в XHTML. 3) Даже тогда резервный контент был возможен.
@minitech - Извините, я не понял, что у вас не установлен Flash, вся моя точка зрения неверна. Пожалуйста, дайте мне знать, если вы решите установить его, чтобы я мог переосмыслить всю свою жизнь.
@ AndrewG.Johnson: Я ... вау. У вас есть мобильное устройство от Apple? Вы знаете кого-нибудь, кто знает?
@minitech - Да. да.
@ AndrewG.Johnson: Вы знаете, что Flash на них не работает?
@ AndrewG.Johnson: Вы знаете, что Flash по умолчанию отключен в Modern UI IE 10?
Да? Нет? Неважно, у меня такое чувство, что твое мнение не изменится. Вы знаете, что ваша цифра в 99% не соответствует действительности? Включает ли «правда сейчас» «сделайте все возможное, чтобы наибольшее количество людей могло просмотреть ваш контент» и ничего более? Сегодня он ближе к 15%.
Fallback Flash - это здорово. Only Flash - это мгновенный рецепт раздражения большой группы людей. Ваш ответ устарел, а ваше упорство поразительно.
@minitech Отлично, дайте мне знать, если есть еще какие-то изменения в жизни, которые, по вашему мнению, я должен внести, и я постараюсь интегрировать их как можно скорее
Почему вы делаете это такой большой проблемой? Исправьте свой ответ или удалите его. Блин.
Ну, вообще говоря, HTML - это SGML, а XHTML выражается в XML. Из-за этого создание XHTML связано с большим количеством ограничений (в виде разметки), чем HTML. (Сравнение HTML на основе SGML и HTML на основе XML)
Как упоминалось в Википедия, HTML 5 также будет иметь вариант XHTML (XHTML 5).
Практическое правило: вы всегда должны использовать действительную разметку. Это также означает, что вы не должны использовать упомянутые теги <video> или <audio> в XHTML 1.0 Transitional, поскольку они не являются элементом этой спецификации. Если вы используете очень нужно для использования этих тегов (в чем я очень сомневаюсь), вам следует убедиться, что вы используете HTML 5 / XHTML 5 DTD, чтобы указать, что ваш документ находится в этом DOCTYPE.
Использование HTML 5 или XHTML 5 в данном состоянии реализации (AFAIK, стандарт даже не установлен, но правильно?) Может быть контрпродуктивным, поскольку почти все пользователи могут не видеть корректность отображения веб-сайта в любом случае.
Изменить 2013: Из-за недавних голосов против и поскольку этот принятый ответ не может быть удален (мной), я хотел бы добавить, что процесс поддержки и стандартизации HTML5 в настоящее время полностью отличается от того, что было, когда я писал этот ответ пять лет назад. Поскольку большинство основных браузеров поддерживают большую часть черновика HTML5 и многие вещи можно исправить с помощью полифиллов в старых браузерах, сейчас я в основном использую HTML5.
Проголосовали против, потому что в ответе говорится о SGML и HTML 5 / XHTML 5 DTD, хотя (как указано в других ответах) HTML5 не основан на SGML и не имеет DTD.
Проголосовал против, потому что он не дает достаточно подробного объяснения, чтобы быть особенно полезным.
@pyrony: Просто интересно ... Вы голосуете за этот ответ, потому что это принятый ответ и не предоставляет вам всю необходимую информацию, или потому что он неправильный / неполный? В последнем случае вы можете проголосовать против и многих других ответов. :) Я просто хотел бы избежать негативной репутации за этот 1,5-летний ответ - и помещать его в современный контекст не совсем подходит, потому что состояние XHTML и HTML5, вероятно, немного изменилось по сравнению с исходным вопросом / ответом.
Я не думаю, что это действительно ответ на вопрос. Я не люблю голосовать против и делаю это очень редко ... пошел вперед и проголосовал за некоторые другие ваши ответы, чтобы компенсировать: p извините, приятель
@pyrony Ха-ха, без проблем, спасибо за голоса и объяснения. :) Мне просто было интересно, можно ли проголосовать за ответ только, потому что это (по какой-то причине) принятый ответ.
What is the behavior supposed to be if I use a new HTML 5 tag in a future version of Firefox but use the DTD for XHTML?
And what if I mix HTML 5 markup with XHTML 1.0 Trans?
Если ваша разметка не реализована как часть выбранного вами DTD, то, по логике, этой разметке не следует следовать. Но реализации браузера не всегда строго логичны.
Why didn't they just add these tags to XHTML? How do we support both XHTML and HTML 5?
xHTML не лучше HTML, но он больше подходит для некоторых приложений. Одним из основных преимуществ xHTML является то, что он может быть преобразован в различные форматы с помощью XSLT. Например, вы можете использовать XSLT для автоматического преобразования xHTML в RSS-канал или другой формат XML.
Вам не нужно поддерживать оба формата - взвесьте преимущества / недостатки каждого с требованиями вашего проекта. HTML 5, вероятно, не будет стандартным еще какое-то время.
Имейте в виду, что типы документа служат только одной цели в браузерах: переключаться между режимами причуд, почти стандартами и стандартными режимами. Следовательно, использование <video> и <audio> будет работать с любым объявлением типа документа. IMO, использование доктипа XHTML совершенно бесполезно, поскольку каждая страница, которую вы отправляете с типом MIME text/html, в любом случае анализируется как (tag-soup) HTML. Я предлагаю использовать тип документа HTML5 (<!doctype html>), так как его легче запомнить и он не заставляет вас использовать синтаксис XML без причины.
Why didn't they just add these tags to XHTML?
Они действительно сделали, есть XML-сериализация HTML 5 (XHTML5). Чтобы использовать это, вы должны отправить свои страницы с типом XML MIME, например application/xhtml+xml. Однако это (пока) не поддерживается IE.
Не будет ли doctype также диктовать, по какому DTD проверяется ваш код?
IE будет тащить нас всех вниз до тех пор, пока мы не начнем игнорировать его и предупреждать пользователей о том, что он использует браузер, управляемый современными стандартами.
HTML5 писать намного проще, чем XHTML 1.0.
Вам не нужно вручную объявлять пространство имен «http://www.w3.org/1999/xhtml».
Вам не нужно добавлять атрибуты типа к элементам скрипта и стиля (по умолчанию они имеют значение text / javascript и text / css).
Вам не обязательно использовать длинный doctype, когда браузер просто игнорирует его большую часть. Вы должны использовать <! DOCTYPE html>, который легко запомнить.
У вас нет выбора, включать или не включать dtd uri в doctype, и у вас нет выбора между переходным и строгим. У вас просто есть строгий doctype, который запускает полный стандартный режим. Таким образом, вам не нужно беспокоиться о том, что вы случайно окажетесь в режиме «Почти стандарт» или «Причуды».
Объявление кодировки намного проще. Это просто <meta charset = "utf-8">.
Если вам сложно писать пустые элементы как <name>, вы можете использовать <name />, если хотите.
В HTML5 есть действительно хороший валидатор http://validator.nu/. Валидатор не привязан к дерьмовому DTD, который не может выразить все правила.
Вам не нужно добавлять // <! [CDATA и т. д. Во встроенные скрипты или таблицы стилей (в определенных ситуациях) для проверки.
При необходимости вы можете использовать embed.
Просто с точки зрения синтаксиса, когда вы используете HTML5, вы получаете более чистую и удобную для чтения разметку, которая всегда вызывает стандартный режим. Когда вы используете XHTML 1.0 (обслуживаемый как text / html), вы указываете кучу примитивов (для проверки на дрянный dtd), которые браузер будет делать автоматически.
Отличный ответ. Вы перечислили именно то, что меня волновало.
+1 Я думаю использовать HTML5 после прочтения вашего ответа, но как насчет IE?
и вот некоторые минусы stackoverflow.com/questions/1298610/… главное, что будет в IE, если javascript отключен.
В этой ветке изобилуют мифы и заблуждения.
XHTML 1.0 старше HTML 5. Он не может использовать новый словарь. Действительно, его главным преимуществом было то, что он использует тот же словарь, что и HTML 4.01.
XHTML 1.2, скорее всего, не будет. И это не нужно. XHTML 5 - это XML-сериализация HTML 5. Идентичный словарь, разные правила синтаксического анализа.
HTML никогда не рассматривался в браузерах как настоящий SGML. Ни один браузер никогда не реализовывал синтаксический анализатор, совместимый с SGML. В HTML 5 этот факт станет правилом, а сериализация HTML будет соответствовать сегодняшнему стандарту де-факто. Можно было бы сказать, что это "SGML-иш".
Как было сказано, DTD служит только одной цели В БРАУЗЕРАХ, а именно различать режим соответствия стандартам и режим причуд. Таким образом, это влияет только на стили и сценарии. Если вы используете фреймы на странице со строгим типом документа, они будут отображаться нормально. Как и <embed> и даже <marquee> - хотя последнее является мерзостью, а первое не входит ни в один текущий стандарт. Однако это часть HTML 5.
Видео и аудио можно использовать независимо от сериализации, XML или HTML. они являются частью как HTML 5, так и XHTML 5. После завершения этапа синтаксического анализа браузер создаст внутреннюю модель DOM документа. Этот DOM будет для всех практических целей одинаковым независимо от сериализации. И да, XHTML, отправленный с текстом / html, по-прежнему является обычным HTML, независимо от типа документа.
Возможно, вы неправильно смотрите на проблему, потому что в разделе отношение к XHTML 1.x в HTML 5 говорится:
"This specification is intended to replace XHTML 1.0 as the normative definition of the XML serialization of the HTML vocabulary."
Сейчас этот язык вызывает споры (РГ XHTML 2 оспаривает его, а РГ HTML пытается разрешить различия ...), но мы на этом стоим прямо сейчас.
Пара замечаний:
Извините, здесь есть ряд реальных проблем. Во-первых, крайне маловероятно, что W3C действительно предоставит XHTML 5 DTD, учитывая, что они не собираются создавать HTML 5 DTD, а «спецификация» на самом деле является описанием поведения браузера, а не спецификацией синтаксиса.
Во-вторых, все спецификаций HTML (предоставленных IETF, ISO и W3C) всегда определялись как языки разметки SGML с SGML DTD и объявлениями SGML. Все действительные экземпляры документов HTML 2.0, 3.2 и 4.0 могут быть проанализированы как SGML с помощью SP Джеймса Кларка.
(X) HTML5 - это просто следующая версия. Вы должны использовать XHTML1.1, пока XHTML5 не будет хорошо поддерживаться.
Вероятно, вам не следует использовать профиль SGML с обратной совместимостью HTML5. Это усложняет работу парсеров и мелких парсеров.
XHTML 1.1 даже не поддерживается IE8. Прискорбно, но пока это реальность. Зачем мне вообще использовать это для широко используемого веб-сайта?
XHTML1.1 - это просто XHTML1.0 с некоторыми устаревшими версиями и более строгим типом документа. IE рассматривает его как суп из тегов вместо того, чтобы знать тип документа, но поскольку IE в любом случае довольно причудлив, у меня никогда не было с этим больших проблем.
Я предпочитаю XHTML. Это просто кажется более «чистым», более правильным.