В конце дня, почему выбирают XHTML over HTML? [закрытый]

function fAddBackgroundImage(oElem, sUrl) {
  oElem.style.backgroundImage = `${getComputedStyle(oElem).backgroundImage}, url('${sUrl}')`;
  return getComputedStyle(oElem).backgroundImage;
}
console.log( fAddBackgroundImage(document.querySelector('.bg'), 'imageC.jpg') );
.bg {
  background-image: url('imageA.jpg'), url('imageB.jpg');
}
<div class="bg"></div>

72
задан KdgDev 20 May 2009 в 22:30
поделиться

18 ответов

Вам следует прочитать Остерегайтесь XHTML , информативную статью, которая предупреждает о некоторых подводных камнях XHTML по сравнению с HTML.

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

XHTML 1.x не «совместим с будущим». XHTML 2, который в настоящее время находится на стадии разработки, не имеет обратной совместимости с XHTML 1.x. В XHTML 2 будет внесено множество серьезных изменений в способ написания и структурирования документов, и даже если ваш сайт уже написан на XHTML 1.1, обычно потребуется полная переписывание сайта, чтобы преобразовать его в правильный XHTML 2. Простой Преобразования XSL в большинстве случаев будет недостаточно, потому что некоторая семантика не будет правильно транслироваться.

HTML 4.01 на самом деле более совместим с будущим. Действительный HTML 4. 01, написанный для современных уровней поддержки, будет действительным HTML 5, а HTML 5 - это то, где основное внимание уделяется разработчикам браузеров и W3C.

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

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

44
ответ дан 24 November 2019 в 12:39
поделиться

Я считаю, что XHTML (или должен быть) быстрее разбирается. Допустимый документ XHTML должен быть написан в соответствии с более строгой спецификацией, в которой ошибки фатальны при синтаксическом анализе, тогда как HTML более мягкий и допускает странности, упомянутые перед моим комментарием, такие как закрывающие теги вне порядка и тому подобное. Я нашел это полезным для выявления различий между синтаксическим анализом HTML и XHTML:

http://wiki.whatwg.org/wiki/HTML_vs._XHTML#Parsing

Причина, по которой вы можете использовать XHTML поверх HTML, может заключаться в том, если вы собираетесь чтобы мобильные пользователи стали частью вашей аудитории. Насколько я помню, многие телефоны для отображения Интернета используют нечто большее, чем анализатор XML, а не HTML. Если вы пишете для настольных браузеров, HTML, вероятно, будет приемлемым.

Тем не менее, если вы все равно собираетесь обслуживать данные как text / html, вам следует использовать HTML:

http: //www.hixie. ch / advacy / xhtml

0
ответ дан 24 November 2019 в 12:39
поделиться

XHTMl - это хорошая постоянная точка для использования, потому что, если вам нужен действительный код, вам нужно будет предоставить некоторый аспект помощи сообществу с ограниченными возможностями, так как программам чтения с экрана нужны части alt и title теги изображения и ссылки. Синтаксический анализ должен быть до некоторой степени быстрее, потому что, в отличие от HTML, парсеру не нужно проверять, не был ли тег закрыт должным образом, правильно ли он вложен и т. Д. Также лучше использовать его, потому что да, он строгий, но помогает вам мыслить более логично (на мой взгляд), когда дело доходит до изучения языков программирования.

0
ответ дан 24 November 2019 в 12:39
поделиться

Использование XHTML с правильным DocType заставит браузер отображать контент в более соответствующем стандартам (строгом) режиме. Это заставляет разные браузеры работать лучше и, что наиболее важно, больше похожи друг на друга. Это значительно упрощает вашу работу в качестве веб-разработчика, поскольку сокращает количество специфичных для браузера настроек, необходимых для того, чтобы контент выглядел одинаково во всех браузерах.

Quirksmode.org содержит много полезной информации по этому вопросу.

1
ответ дан 24 November 2019 в 12:39
поделиться

На мой взгляд, строгость - это, по крайней мере теоретически, хорошо, потому что в HTML вам не нужно быть строгим, и из-за этого и из-за мусора HTML5 Браузеры имеют передовые алгоритмы исправления ошибок, которые позволят максимально эффективно использовать сломанный HTML. Проблема в том, что алгоритмы не совсем такие же и приведут к действительно странному поведению, которое невозможно предсказать. С другой стороны, с XHTML у вас обычно есть хороший, действительный XHTML, и поэтому алгоритмы исправления ошибок не нужны, то есть все поведение браузера предсказуемо. Кроме того, строгий код облегчает вашим инструментам работу с кодом. Таким образом, вам действительно нечего терять, используя XHTML, но есть некоторый потенциал, который можно получить. С обычным HTML дела обстоят еще хуже, когда HTML5, наконец, выйдет и "будьте открыты в том, что вы принимаете" приведет к описанному странному поведению. Но, по крайней мере, это стандартное странное поведение. Вздох.

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

0
ответ дан 24 November 2019 в 12:39
поделиться

Подзаголовок к рекомендации XHTML 1.0:

Переформулировка HTML 4 в XML 1.0

Сегодня существует множество инструментов для обработки XML. Используя XHTML, вы позволяете огромному набору инструментов работать с вашими страницами и извлекать информацию программным способом.

Если бы вы использовали HTML, это тоже было бы возможно. Существуют инструменты для анализа деревьев HTML DOM. Однако эти инструменты часто могут быть более специализированными, чем инструменты для XML. Возможно, вам не удастся найти ваши любимые инструменты обработки XML-данных, совместимые с HTML. Более того, в настоящее время существует так много применений XML, что вы можете использовать XML для какой-либо другой части приложения; почему бы также не использовать тот же анализатор XML для анализа ваших веб-страниц? Это мотивация XHTML.

Если вы уже знакомы с HTML 4.01, у вас есть устоявшийся проект, использующий HTML 4, и у вас нет кучи свободного времени, просто используйте HTML 4.01. Если у вас есть свободное время, все равно изучите XHTML 1.1 и начните свои новые проекты в XHTML 1.1 - в этом нет ничего плохого. Если вы используете что-то другое, кроме HTML 4.01, или в любом случае мало знакомы с HTML 4, просто изучите XHTML 1.1.

1
ответ дан 24 November 2019 в 12:39
поделиться

XHTML заставляет вас быть аккуратным.

Например, в HTML вы можете написать:

<img src="image.jpg">

Это не очень логично, потому что тег img никогда не закрывается. В XHTML, однако, вы вынуждены аккуратно закрыть тег, например так:

<img src="image.jpg" />

Мне нравится использовать что-то, что заставляет меня быть аккуратным.

Steve

1
ответ дан 24 November 2019 в 12:39
поделиться

XHTML позволяет использовать все инструменты, разработанные для XML. Среди них XSLT, встраивание SVG и т. Д.

2
ответ дан 24 November 2019 в 12:39
поделиться

Как программист, вы должны ОЧЕНЬ заботиться о своем коде. HTML уродлив и следует нескольким правилам.

XHTML, с другой стороны, превращает HTML в правильный язык,

2
ответ дан 24 November 2019 в 12:39
поделиться

Некоторые отличия:

  • Теги XHTML должны быть правильно вложены
  • Документы должны иметь один корневой элемент
  • Теги XHTML всегда в нижнем регистре
  • Теги всегда должны быть закрыты (например, при использовании тега
    в XHTML должен быть закрывающий тег
    или

    в XHTML)

Вот несколько ссылок на него

wiki XHTML

wiki HTML vs XHTML

3
ответ дан 24 November 2019 в 12:39
поделиться

Взгляните на http://www.w3.org/MarkUp/2004/xhtml-faq#need . Помимо модульности, есть несколько веских причин.

Я предпочитаю XHTML, потому что он более строг и понятнее. HTML необычен, и браузеры должны принимать такие вещи, как sadasd . Хотя это действительно простой пример, он также может стать более запутанным, и разные браузеры могут отображать вещи по-разному.

Также я думаю, что XHTML должен быть «быстрее», поскольку браузер не должен делать такого рода » возмещение ущерба».

4
ответ дан 24 November 2019 в 12:39
поделиться

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

Что фундаментальный момент, который, похоже, упускается большинством людей, - это цель XHTML. Одной из основных причин разработки спецификации XHTML было уменьшение акцента на тегах, связанных с представлением, в разметке и перенос представления на CSS. Хотя это разделение может быть достигнуто с помощью простого HTML, такое поведение не поддерживается спецификацией.

Разделение мета-разметки и представления является жизненно важной частью разработки для «программируемого Интернета» и не только улучшит SEO, но и доступ для программ чтения с экрана / текстовых браузеров, но это также приведет к тому, что ваш веб-сайт будет легче анализировать теми, кто хочет получить к нему программный доступ (во многих простых случаях, это может свести на нет необходимость в разработке конкретного API или даже позволить клиентским скриптам выполнять такие действия, как идентификация номеров телефонов). Если ваша веб-страница соответствует спецификации XHTML, ее можно легко просмотреть с помощью инструментов, связанных с XML, и таких вещей, как XPath ... что является отличной новостью для тех, кто хочет извлечь конкретную информацию с вашего веб-сайта.

XHTML был разработан не для использования отдельно, а для использования с множеством других технологий. Он в значительной степени полагается на использование CSS для представления и закладывает основу для таких вещей, как микроформаты (любите вы их или ненавидите), чтобы предложить стандартизированную разметку для представления общих данных.

Не дайте себя обмануть толпе. кто думает, что XHTML несущественен, просто чрезмерно ограничен и бессмыслен ... он был создан с целью, которую 95% мира, кажется, игнорируют / не знают.

В любом случае используйте HTML, но используйте его там, где он нужен, и придерживайтесь того же подхода при просмотре XHTML.


] Что касается скорости синтаксического анализа , я полагаю, что в синтаксическом анализе фактических документов между XHTML и HTML будет очень мало различий. Компромисс будет только в том, как вы описываете документ с помощью доступной разметки. Теги XHTML, как правило, длиннее из-за обязательных атрибутов, правильного закрытия и т. Д., Но не требуют какой-либо презентационной разметки в самом документе. В таком случае, я думаю, вы говорите о сравнении одного типа яблока с совсем немного другим типом яблока ... они разные, но это '

37
ответ дан 24 November 2019 в 12:39
поделиться

Для посетителя веб-сайта это, вероятно, не имеет видимого значения. , Более того, использование XHTML обычно затруднительно, поскольку по крайней мере один широко распространенный браузер все еще не знает, как с ним обращаться, и в этом случае вам нужно использовать его как text / html (что дает недопустимый HTML).

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

Кроме того, я не вижу веских причин для его использования. XHTML был создан на основе использования возможностей XML для HTML, и в основном это сводится к «HTML 4 с несколькими раздражающими побочными эффектами» (по крайней мере, IMHO).

17
ответ дан 24 November 2019 в 12:39
поделиться

Я удивлен, что все ответы здесь рекомендуют XHTML вместо HTML. Я твердо придерживаюсь противоположного мнения - в обозримом будущем вам не следует использовать XHTML. Вот почему:

  • Ни один браузер не интерпретирует XHTML как XHTML, если вы не используете его как mimetype application / xhtml + xml . Если вы просто обслуживаете его с mimetype по умолчанию, все браузеры будут интерпретировать его как HTML - например, принимая незакрытые или неправильно вложенные элементы.

  • Однако вам никогда не следует делать это, поскольку Internet Explorer не поддерживает распознают application / xhtml + xml и не смогут полностью отобразить страницу.

  • Существуют значительные различия в DOM между XHTML и HTML. Поскольку все так называемые страницы XHTML в настоящий момент обслуживаются как HTML, весь код javascript написан с использованием HTML DOM. Если поддержка mimetype XHTML станет достаточно значительной, чтобы убедить людей начать его использовать, большая часть их кода javascript выйдет из строя - даже если они будут думать, что их страницы проверяются как XHTML.

11
ответ дан 24 November 2019 в 12:39
поделиться

Использовать XHTML

  • Сбой быстро . Если есть какие-либо несоответствия, они будут обнаружены во время проверки.
  • Это способствует лучшему дизайну путем отделения семантической разметки от представления и т. Д.
  • Он структурирован , что означает, что вы можете рассматривать его как data и запускать к нему всевозможные запросы. Например, вы можете найти все адреса или цитаты на своем веб-сайте.
  • Вы можете выполнить оптимизацию времени сборки . Поскольку это хорошо сформированный XML, вы можете легко выполнять операции поиска / замены во время сборки. Или любое управление документами и манипуляции с ними.
  • Вы можете написать XSLT или другие сценарии преобразования для программного преобразования вашего XHTML для других платформ. Например, у вас может быть XSLT для iPhone, который преобразовал бы весь XHTML, чтобы сделать его совместимым или более удобным для пользователя для iPhone
  • Вы сами готовитесь к будущему . Преобразование XHTML в новую семантику снова очень просто с помощью преобразования.
  • Поисковые системы будут продолжать развиваться, чтобы собирать больше семантической информации как часть программируемой сети .
  • Операции DOM больше. надежен, поскольку он структурирован.
  • С алгоритмической точки зрения, это дает более простой и быстрый синтаксический анализ .
0
ответ дан 24 November 2019 в 12:39
поделиться

Вместо того, чтобы продолжать спорить о HTML 4.01 Strict и XHTML Strict, я бы посоветовал начать использовать HTML 5 уже сегодня. Джон Ресиг, автор jquery, сделал аналогичное предложение в прошлом году в своем блоге.

Доктип HTML 5 в его красивой простоте будет запускать стандартный режим во всех браузерах (включая IE6).

<!DOCTYPE html>

] Вот и все.

HTML 5 предоставляет некоторые захватывающие новые функции, такие как тег , который потенциально может подтолкнуть разработку приложений javascript на новый уровень. HTML 5 также имеет надлежащую поддержку мультимедиа (а мультимедиа - довольно важный аспект Интернета в наши дни!) В форме тегов и .

Если вам нравится синтаксис XHTML, то есть закрытие «пустых» тегов, таких как
, который полностью поддерживается в HTML 5. От Карла Дубоста из сообщения W3C Узнайте, как писать HTML 5 :

автоматически закрывающийся тег разрешен и совместим с HTML 5.

XHTML2 получил относительно мало внимания по сравнению с HTML 5. Становится все более очевидным, что HTML 5 - это будущее разметки в Интернете. Последний браузер Microsoft IE8 по-прежнему отображает XHTML в формате text / xml как text / html.

У Microsoft есть сопредседатель в рабочей группе W3C HTML, и они подразумевают поддержку HTML 5. Все поставщики браузеров публично объявили о своей поддержке HTML 5.

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

5
ответ дан 24 November 2019 в 12:39
поделиться

Используйте HTML (HTML4 Strict или HTML5).

  • HTML может полностью использовать CSS, его можно проверять и однозначно анализировать. Разделение структуры и представления было выполнено в HTML4, а XHTML просто продолжил это.

  • Все браузеры поддерживают HTML. Только некоторые браузеры поддерживают XHTML, а те, которые поддерживают, часто имеют более зрелую, лучше протестированную и оптимизированную поддержку HTML (это вызвано тем, что крошечная часть страниц использует режим XML).

  • Если вам интересно, Что касается IE и Google, вы должны использовать HTML или подмножество XHTML и HTML, определенное в Приложении C спецификации XHTML. Последнее является почти худшим из обоих миров, потому что такой XHTML не может быть сгенерирован с помощью стандартных инструментов XML, не может использовать механизмы расширения, новые для XHTML, и имеет дополнительные ограничения по сравнению с теми, которые существуют только в HTML.

  • XHTML1.0 теперь более 10 лет. , он был разработан во времена "Web1.0", и, как сказал глава W3C, ретроспективно это не сработало, и нужен лучший подход . W3C HTML5 написан так, как мы говорим, и отвечает потребностям веб-приложений, используемых сегодня, и имеет очень хорошую обратную совместимость.

  • HTML5 закрывает многие пробелы, которые были между HTML4 и XHTML1 (например, добавляет встроенный SVG, MathML i RDF), очищает язык помимо того, что было сделано в XHTML1.0 и XHTML1.1.

  • XHTML2 не будет поддерживаться веб-браузерами в обозримом будущем. Это' вполне вероятно, что он никогда не будет поддерживаться (все поставщики браузеров сильно поддерживают [X] HTML5, некоторые уже заявили, что не будут реализовывать XHTML2).


XHTML1.0 имеет точно . 1113968] та же семантика и отделение представления от структуры, что и HTML4.01. Любой, кто говорит иначе, не читал спецификацию . Я призываю всех прочитать спецификацию - она ​​на удивление короткая и неинтересная.

  • Таблицы стилей были введены в HTML4.01 и не изменены в XHTML1.0.
  • Презентационные элементы устарели в HTML4.01. и были не удалены в XHTML1.0.

Мифы о XHTML .


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

  • И SGML, и XML-анализаторы должны загружать и анализировать все DTD, чтобы понимать сущности. Одно это обычно требует больше усилий, чем анализ самого документа. Парсеры HTML почти всегда «обманывают» и используют жестко запрограммированные сущности и информацию об элементах. Парсеры XHTML в браузерах тоже обманывают.
  • Анализ HTML требует обработки подразумеваемых начальных и конечных тегов, а реальный HTML требует дополнительной работы для обработки неправильно размещенных тегов.
  • Правильный синтаксический анализ XHTML требует отслеживания пространств имен XML.
  • Драконовские правила XML требуют проверки правильности кодировки каждого символа. Парсерам HTML это может сойти с рук, но OTOH им нужно искать .

Общая разница в стоимости синтаксического анализа крошечная по сравнению со временем, необходимым для загрузки документа, построения DOM, запуска скрипты,

13
ответ дан 24 November 2019 в 12:39
поделиться

Интересное развитие: Рабочая группа XHTML 2, как ожидается, прекратит работу В конце 2009 года, W3C увеличит ресурсы на HTML 5

2009-07-02: Сегодня директор объявляет, что когда устав Рабочей группы XHTML 2 истекает, как и планировалось, в конце 2009 года, устав не будет продлен. Поступая таким образом и увеличивая ресурсы в Рабочей группе, W3C надеется ускорить развитие HTML 5 и прояснить позицию W3C относительно будущего HTML. Часто задаваемые вопросы отвечают на вопросы о будущих результатах работы рабочей группы XHTML 2 и о статусе различных обсуждений, связанных с HTML. Узнайте больше об HTML Activity.

Что ж, я думаю, это делает будущее HTML довольно ясным.

2
ответ дан 24 November 2019 в 12:39
поделиться