Вопрос

Похоже, что 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

Это было полезно?

Решение

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

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

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

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

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

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

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

<Ол>
  • Вам не нужно вручную декларировать & квоту; http: // www .w3.org / 1999 / XHTML Quot &; Пространство имен.

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

  • Вам не нужно использовать длинный тип документа, когда браузер просто игнорирует большую его часть. Вы должны использовать & Lt;! DOCTYPE html & Gt ;, который легко запомнить.

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

  • Объявление кодировки намного проще. Это просто & Lt; meta charset = & Quot; utf-8 & Quot; & Gt;.

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

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

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

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

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

    В этой теме много мифов и заблуждений.

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

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

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

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

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

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

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

    Сейчас этот язык вызывает споры (рабочая группа по XHTML 2 оспорила его, а рабочая группа по HTML пытается устранить разногласия ...), но именно на этом мы сейчас и остановились.

    Пара заметок:

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

      

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

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

      

    Какое поведение должно быть, если   Я использую новый тег 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, вероятно, не будет стандартным в течение достаточно долгого времени.

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

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

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

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

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top