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: https://thewikihow.com/video_xIxDJof7xxQ

Я предпочитаю XHTML. Это просто кажется более «чистым», более правильным.

mk12 19.10.2009 05:12
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
54
1
65 483
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

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

Почему это было отклонено? Это неточное заявление? Кажется, это шутка с ответами других ...

Adam 12.10.2010 19:59

@ Адам: Потому что мало кто из браузеров обращает внимание на фактический тип документа. На практике вы может просто вставляете тег из типа документа HTML в XHTML, и он обычно просто работает - во многих случаях браузеры просто применяют данный тип документа независимо от этого. Самая большая реальная функция строки doctype практически в любом браузере - информировать браузер о том, что страница пытается соответствовать стандарту HTML немного (X), поэтому браузер должен попытаться отобразить страницу в «стандартном режиме», что немного изменяет коробчатая модель среди прочего.

cHao 05.11.2010 13:12

Internet Explorer 9 по крайней мере требует, чтобы вы указали тип документа как <! DOCTYPE html>, чтобы использовать новые возможности HTML5 DOM и движка JS.

Adam 10.11.2010 21:59

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

Что касается того, почему они не добавляют его в XHTML ... во-первых, 1.0 - не самая последняя версия, 1.1 была выпущена некоторое время назад.

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

Фактически, тег видео имеет ту же обратную совместимость, что и тег iframe - если браузер не поддерживает его, он покажет свое внутреннее содержимое в неформатированном виде. Таким образом, вы можете заключить код для встраивания флэш-памяти в видеотег, и он по-прежнему будет совместим со всеми браузерами.

Jonathan Prior 20.05.2009 21:41

«Видео для всех» объясняет, как использовать (X) HTML5-видео с резервным флэш-файлом, а затем с резервным скачиванием (у некоторых людей нет флэш-памяти). См. Также «Погружение в HTML5». Кроме того, Flash может воспроизводить видео MP4 H.264, поэтому вам не нужен FLV.

TRiG 25.06.2010 15:15

Ой, это быстро устарело.

Ry- 10.08.2013 07:59

@minitech - Верно тогда, верно сейчас.

Andrew G. Johnson 10.08.2013 08:54

На самом деле все это неправда. 1) У меня не установлен Flash, и он не работает на iOS. 2) Он не был добавлен в XHTML. 3) Даже тогда резервный контент был возможен.

Ry- 10.08.2013 18:22

@minitech - Извините, я не понял, что у вас не установлен Flash, вся моя точка зрения неверна. Пожалуйста, дайте мне знать, если вы решите установить его, чтобы я мог переосмыслить всю свою жизнь.

Andrew G. Johnson 12.08.2013 15:18

@ AndrewG.Johnson: Я ... вау. У вас есть мобильное устройство от Apple? Вы знаете кого-нибудь, кто знает?

Ry- 12.08.2013 18:44

@minitech - Да. да.

Andrew G. Johnson 12.08.2013 18:52

@ AndrewG.Johnson: Вы знаете, что Flash на них не работает?

Ry- 12.08.2013 18:53

@ AndrewG.Johnson: Вы знаете, что Flash по умолчанию отключен в Modern UI IE 10?

Ry- 12.08.2013 18:55

Да? Нет? Неважно, у меня такое чувство, что твое мнение не изменится. Вы знаете, что ваша цифра в 99% не соответствует действительности? Включает ли «правда сейчас» «сделайте все возможное, чтобы наибольшее количество людей могло просмотреть ваш контент» и ничего более? Сегодня он ближе к 15%.

Ry- 12.08.2013 19:05

Fallback Flash - это здорово. Only Flash - это мгновенный рецепт раздражения большой группы людей. Ваш ответ устарел, а ваше упорство поразительно.

Ry- 12.08.2013 19:07

@minitech Отлично, дайте мне знать, если есть еще какие-то изменения в жизни, которые, по вашему мнению, я должен внести, и я постараюсь интегрировать их как можно скорее

Andrew G. Johnson 13.08.2013 17:08

Почему вы делаете это такой большой проблемой? Исправьте свой ответ или удалите его. Блин.

Ry- 13.08.2013 18:42
Ответ принят как подходящий

Ну, вообще говоря, 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.

hsivonen 02.11.2008 23:56

Проголосовал против, потому что он не дает достаточно подробного объяснения, чтобы быть особенно полезным.

Jay Taylor 11.03.2011 00:16

@pyrony: Просто интересно ... Вы голосуете за этот ответ, потому что это принятый ответ и не предоставляет вам всю необходимую информацию, или потому что он неправильный / неполный? В последнем случае вы можете проголосовать против и многих других ответов. :) Я просто хотел бы избежать негативной репутации за этот 1,5-летний ответ - и помещать его в современный контекст не совсем подходит, потому что состояние XHTML и HTML5, вероятно, немного изменилось по сравнению с исходным вопросом / ответом.

hangy 11.03.2011 09:39

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

Jay Taylor 14.03.2011 22:05

@pyrony Ха-ха, без проблем, спасибо за голоса и объяснения. :) Мне просто было интересно, можно ли проголосовать за ответ только, потому что это (по какой-то причине) принятый ответ.

hangy 14.03.2011 23:49

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 проверяется ваш код?

codeinthehole 02.11.2008 20:40

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

Brennan 02.11.2008 21:08

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

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

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

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

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

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

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

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

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

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

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

Отличный ответ. Вы перечислили именно то, что меня волновало.

Iraimbilanja 27.02.2009 21:38

+1 Я думаю использовать HTML5 после прочтения вашего ответа, но как насчет IE?

Jitendra Vyas 23.08.2010 12:36

и вот некоторые минусы stackoverflow.com/questions/1298610/… главное, что будет в IE, если javascript отключен.

Jitendra Vyas 23.08.2010 12:54

В этой ветке изобилуют мифы и заблуждения.

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

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

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

  4. Как было сказано, DTD служит только одной цели В БРАУЗЕРАХ, а именно различать режим соответствия стандартам и режим причуд. Таким образом, это влияет только на стили и сценарии. Если вы используете фреймы на странице со строгим типом документа, они будут отображаться нормально. Как и <embed> и даже <marquee> - хотя последнее является мерзостью, а первое не входит ни в один текущий стандарт. Однако это часть HTML 5.

  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, а «спецификация» на самом деле является описанием поведения браузера, а не спецификацией синтаксиса.

Ichiro Furusato 13.12.2012 14:10

Во-вторых, все спецификаций HTML (предоставленных IETF, ISO и W3C) всегда определялись как языки разметки SGML с SGML DTD и объявлениями SGML. Все действительные экземпляры документов HTML 2.0, 3.2 и 4.0 могут быть проанализированы как SGML с помощью SP Джеймса Кларка.

Ichiro Furusato 13.12.2012 14:18

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

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

XHTML 1.1 даже не поддерживается IE8. Прискорбно, но пока это реальность. Зачем мне вообще использовать это для широко используемого веб-сайта?

Brennan 21.10.2009 07:44

XHTML1.1 - это просто XHTML1.0 с некоторыми устаревшими версиями и более строгим типом документа. IE рассматривает его как суп из тегов вместо того, чтобы знать тип документа, но поскольку IE в любом случае довольно причудлив, у меня никогда не было с этим больших проблем.

singpolyma 22.10.2009 18:04

Другие вопросы по теме