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.
Вот и все.