HTML vs XHTML все еще имеет значение?

Мне интересно, должен ли я вообще беспокоиться о языке разметки, пока я создаю допустимую разметку.

Я читал статьи, указывающие на то, что HTML - лучший выбор, и они приходят прямо из устья лошади (разработчики браузеров!):

Другие статьи, Джеймс Беннет, еще раз указывают, что если вы не используете XHTML в качестве XML, вам не нужен XHTML, а HTML.

Итак, я подумал, что если бы я хотел запустить стандартный режим соответствия, я должен просто использовать строгое HTML-подтверждение. Но это не так, по крайней мере, с самыми современными браузерами (иначе говоря, с IE6): если у вас есть действующий XHTML Strict, вы по-прежнему запускаете стандартный режим совместимости, следовательно, пока я создаю допустимую разметку, зачем беспокоиться?

Ответы

Ответ 1

Я всегда использую HTML 4.01 строгое время. HTML 5 еще не окончательный. Раньше я был хладнокровным пользователем XHTML, но мои причины были вытравлены, и я намного счастливее и продуктивнее.

Аргументы для XHTML обычно имеют тенденцию к "более чистой разметке" или говорят о хорошо сформированной разметке. Это похоже в основном как аргумент соломона и не выдерживает тщательного избиения.

Если XHTML гарантированно анализируется синтаксическим анализатором XML, он обычно не будет выглядеть более чистым, чем HTML 4.01, строгим (просто сравнивая строгие доктрины).

Для одного, писать URL-адреса как http://example.com/?foo=bar&baz=qux выглядит неудобно. Объявление типов объектов стареет.

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

HTML 4.01 strict умеренно проще в использовании и создает допустимые сайты. Вам не нужно вводить бессмысленные закрывающие теги для таких элементов, как <img> , <br> или <link> . Простое нанесение обратной косой черты не изменяет ничего определенного смысла.

Douglas Crockford, Yahoo и все markupy, говорит, что лучше всего подумать о разметке в качестве формата доставки приложений.

Таким образом, то, что будет проще всего поставлять, будет более надежным и надежным. Это то, что в конечном итоге принял решение для меня. Все веб-браузеры обрабатывают XHTML по-разному и требуют перебора заголовка Content-type. Если вы используете "text/xhtml" или "text/xml", вы получаете разные результаты.

Кроме того, "text/xml" отлично не работает с REST, потому что это должно означать сериализацию данных XML и не отформатированную страницу разметки (Safari ошибочно делает это, на мой взгляд, запросив текст /xml перед текстом /html в качестве желаемых типов контента!)

Итак, используйте HTML 4.01, потому что:

  • Он работает более одинаково во всех браузерах.
  • Не требует обработки на основе Content-type (текст/html выполняет трюк по всем разделам)
  • Является не такой хрупкой, как XHTML
  • HTML 5 не предлагает ничего существенного над HTML 4.01 strict

Ответ 2

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

Ответ 3

Если вы перейдете xhtml, выберите xhtml 1.0, а не xhtml 1.1, если вы не намерены обслуживать его с помощью правильного xml или xhtml mimetype. Собственно, по-другому, не делай этого. Существуют огромные недостатки в обслуживании xhtml 1.0 или 1.1 с правильным типом mimetype. Самая сложная ошибка, и вы получаете желтый экран смерти!

Спецификации w3c говорят, что нормально использовать xhtml 1.0 в качестве text/html, если вы следуете определенным правилам для обратной совместимости (в основном в закрывающих тегах, включая пробел перед косой чертой /forward ).

Помимо этого существуют и другие аргументы для/против. Я имею тенденцию использовать xhtml из-за различных доступных инструментов и библиотек, которые могут анализировать действительный xml, что делает возможными преобразования xslt в/из xhtml. (Полезно?).

Другое дело, что можно анализировать действительный xml в flash файле, поэтому вы можете выбрать xhtml для замены динамического контента флеш-роликом или иначе динамически загружать содержимое xhtml во флэш-ролик. Или действительно, все, что может читать xml, может читать xhtml. что много чего.

Ответ 4

Мой совет - использовать HTML4 Strict или HTML5. Действительно, в стандартном режиме с CSS для макета. Вы получите все преимущества, которые обычно связаны с XHTML, но без каких-либо проблем.

Помните: XHTML DOCTYPE не разрешает разбор документа как XHTML. Он позволяет только режим стандартов, тот же, который доступен для HTML 4 Strict и HTML 5.

  • XHTML/1.0 имеет идентичную семантику и практически идентичную поддержку CSS как HTML 4.01.
  • Valid HTML 4.01 анализируется однозначно точно так же, как корректный и хорошо сформированный XHTML/1.0.
  • XML DOM предоставляет поддержку пространств имен, но отнимает поддержку для document.write и innerHTML.

Без правильного XML MIME-типа, установленного в заголовках HTTP (а не самого документа), все, что вы получаете, - это разбор всего как HTML и HTML DOM.

XHTML по-прежнему не поддерживается обозревателем Internet Explorer (включая IE8). Лучшее, что вы можете получить в IE (и Googlebot), - это XHTML, неверно истолкованный как HTML с синтаксическими ошибками (будь то 70% или 30% вашей аудитории, о чем еще можно подумать).

Попробуйте заставить сайты "XHTML" использовать фактический режим XML, и вы быстро заметите, что почти никто не использует XHTML. Они просто поклеивают DOCTYPE на свой HTML:

Эти страницы "XHTML" работают только потому, что их обычно интерпретируют как HTML.

Ответ 5

Я бы пошел на xHTML, в основном потому, что код чище и легче поддерживать.

Но вот несколько интересных моментов в том, почему не использовать xhtml http://meiert.com/en/blog/20081219/html-vs-xhtml/

Ответ 6

Если вам действительно не нужна эскизная поддержка, попробуйте HTML 5. Мой недостаток будет HTML 4.01 Строго, если мне не понадобится что-то вроде встроенного SVG или подобного, и в этом случае он XHTML (служит XML) полностью.

Ответ 7

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

Во-первых, если вы хотите использовать встроенный SVG, вам нужен XHTML.

Во-вторых, если вы хотите использовать HTML-метку как XML. Когда-то (по неизвестной причине) я обнаружил, что мой запрос AJAX проверяет код, даже когда я отмечаю его как html или текст. И чтобы быстро избежать этого, я меняю его на XHTML.

Вот и все.