Каковы преимущества использования XHTML 1.0 strict с content = "text / html; вместо HTML 4.01 strict?"

Я уверен, что все здесь знают, что мы не можем обслуживать страницы с правильным типом MIME (application / xhtml + xml) для XHTML без нарушения совместимости с IE, и что любой контент, обслуживаемый с помощью text / html, будет анализироваться как HTML любым браузером. там. Итак, если контент не анализируется как XML.

Я использую xhtml doctype только по одной причине: он помогает мне находить «ошибки» в моей разметке более строгим способом по сравнению с html. Даже если мои документы обслуживаются как text / html

Есть ли какие-либо другие преимущества от использования XHTML 1.0 Strict с content = "text / html;" по сравнению с HTML 4.01 strict? В настоящее время или в будущем.

  1. если я уже пишу правильно сформированный действительный HTML 4.01 strict и
  2. не хотите использовать какие-либо дополнительные функции XHTML (SVG, Docbook, MathML, OFX и т. д.),
  3. никогда не буду преобразовывать мой XHTML в XSL (T)
  4. никогда не заходите в серверный документ как приложение / html + xml

person Jitendra Vyas    schedule 24.01.2010    source источник
comment
это дубликат: stackoverflow.com/questions/867498/   -  person Mark Elliot    schedule 24.01.2010


Ответы (3)


Никто. Вы не получаете никаких преимуществ XHTML. Что касается браузера, он получает странный HTML, а не XML. Если вы хотите получить преимущества XML, такие как расширяемость и более строгий синтаксический анализатор (если это является преимуществом), вы должны обслуживать свою страницу как application/xhtml+xml, и IE не будет его поддерживать. Не говоря уже о том, что XHTML 1.0 несовместим с 2.0, в то время как HTML всегда будет соответствовать требованиям будущего.

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

XHTML также не обязательно означает, что браузеры будут адаптироваться к стандартам. Не беспокойтесь о режимах Standards vs Quirks, это то, что было сделано для обратной совместимости. Когда браузер встречает страницу с типом документа (любой тип документа, HTML или XHTML), он пытается отобразить ее в соответствии со стандартами. Это не означает, что он будет отображать его так, как говорит W3C, это просто означает, что он попытается (и, возможно, безуспешно).

person Javier    schedule 24.01.2010
comment
Является ли IE единственным браузером, который не поддерживает application / xhtml + xml, и не поддерживает версию application / xhtml + xml, IE 7, 8? или только IE6 не поддерживает - person Jitendra Vyas; 24.01.2010
comment
Ни одна из версий IE не поддерживает его: en.wikipedia.org/wiki/Internet_Explorer#Features - person Javier; 24.01.2010
comment
Не все типы документа заставляют браузеры отображать в стандартном режиме. Здесь (dev.w3.org/html5/spec/syntax. html # quirks-mode-doctypes) - это список типов документов, которые этого не делают. - person Alohci; 24.01.2010

XHTML поставляется с правилами стиля по умолчанию (css), по крайней мере, до некоторой степени. А также некоторые строгие правила рендеринга. Любой браузер, реализующий XHTML, не имеет большой свободы действий в том, как представлять вещи, поэтому при создании документа XHTML разработчики могут обнаружить, что их документ отображается одинаково в большинстве браузеров (хотя все еще есть некоторые незначительные проблемы, особенно с IE).

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

Возможно, вы также слышали о «стандартном режиме» и «режиме причуд». Режим причуд - это когда (в основном IE) учитывает все неправильные вещи, которые он делал в предыдущих версиях, и отображает страницы так, как это было раньше, поэтому он будет отображаться так, как было задумано ТОГДА. Стандартный режим - это строгий режим, в котором используются только стандартные правила. Это ломает некоторые старые страницы, но облегчает нагрузку для многих разработчиков.

person Tor Valamo    schedule 24.01.2010
comment
Хотя у XHTML не так много возможностей для представления вещей, IE не будет его отображать, так что это более или менее спорный вопрос. - person Javier; 24.01.2010
comment
Вы имеете в виду, что стили HTML-документа не отображаются одинаково во всех браузерах? - person Jitendra Vyas; 24.01.2010
comment
Конечно, нет. Может быть, очень простой способ подойдет, но во многих случаях вам придется протестировать в разных браузерах, настроить CSS и прочее. IE особенно изворотлив с этим. - person Javier; 24.01.2010
comment
Мой вопрос: строгий XHTML 1.0 и строгий HTML 4.01, значит, вы имеете в виду, что HTML 4.01 strict не отображает страницу в стандартном режиме, может только XHTML? - person Jitendra Vyas; 24.01.2010
comment
@Javier Badia - но этот сайт использует HTML и выглядит одинаково во всех браузерах - person Jitendra Vyas; 24.01.2010
comment
Дело в том, что то, что каждый браузер называет стандартным режимом, не соответствует тем же стандартам, что и все остальные. Режим стандартов / причуд - это остаток проблем совместимости с сайтами, разработанными для IE 5 или ниже (я думаю). Тот факт, что IE выполняет рендеринг в стандартном режиме, не означает, что он следует стандарту W3C. - person Javier; 24.01.2010
comment
@Jitera: по поводу вашего второго замечания: да, потому что с некоторыми настройками можно сделать так, чтобы он везде выглядел одинаково. Но иногда это бывает сложно. Я имел в виду, что до тех пор, пока вы не исправите это, макет в разных браузерах может отличаться. - person Javier; 24.01.2010
comment
IE не будет его отображать. Конечно, IE будет отображать XHTML. Вы просто должны вставить туда доктайп, как это делают взрослые. - person Tor Valamo; 24.01.2010
comment
@Javier Badia - Вы имеете в виду страницу строгого рендеринга HTML 4.01 как стандартный режим IE, а не стандартный режим W3C и страницу строгого рендеринга XHTML как стандартный режим W3C? - person Jitendra Vyas; 24.01.2010
comment
@ Тор Валамо: У меня сложилось впечатление, что IE не работает с XHTML, который используется как application/xhtml+xml. - person Javier; 24.01.2010
comment
@Javier Badia - хорошо, так что это плюсы по сравнению с HTML, как вы говорите в своем 4-м комментарии, XHTML 1.0 Strict with content = text / html; был бы более кроссбраузерным, чем HTML 1.0 Strict без дополнительных настроек. - person Jitendra Vyas; 24.01.2010
comment
@ Хавьер - Это может быть правдой. Хотя я всегда рассчитываю на то, что xhtml будет .html-файлами, поэтому будет использоваться как text / html ... - person Tor Valamo; 24.01.2010
comment
@Jitendra: XHTML как text / html технически неверен. Это не влияет на кроссбраузерность. Я предлагаю вам прочитать сайт, на который я ссылаюсь, а затем поискать в Google, чтобы узнать, как работает валидность и подобные вещи, потому что это сложно объяснить в этих комментариях. - person Javier; 24.01.2010
comment
@ Тор Валамо: Значит, он разбирается как HTML, а не как XHTML, так что никакой разницы не будет. - person Javier; 24.01.2010
comment
Это может быть технически неправильным, но так оно и работает, поскольку статический сервер не может определить, что файл .html содержит xhtml ... И я не думаю, что справедливо рассчитывать на наличие мета-тега содержимого в каждом документе. И браузеры правильно отображают его, когда это текст / html и xhtml doctype, поэтому я не жалуюсь. - person Tor Valamo; 24.01.2010

XHTML состоит из всех элементов HTML 4.01 в сочетании со строгим синтаксисом XML.

person Derek Adair    schedule 24.01.2010
comment
В чем практическая польза от строгого синтаксиса XML? - person Jitendra Vyas; 24.01.2010
comment
Нет, правда. Это заставляет вас писать хорошо сформированный код, но если вам это небезразлично, вы можете сделать это в HTML. А если у вас есть контент, отправленный пользователями, искаженный тег sinalge приведет к падению всей вашей страницы. - person Javier; 24.01.2010
comment
Поскольку документы XHTML должны быть правильно сформированы, их можно анализировать с помощью стандартных синтаксических анализаторов XML - в отличие от HTML, для которого требуется гибкий анализатор, специфичный для HTML. - person Derek Adair; 24.01.2010
comment
@Javier Badia - правильно ли сформированный документ означает действительный документ W3C? - person Jitendra Vyas; 24.01.2010
comment
@ Джитендра: Нет. См. Ссылку, которую я дал в своем ответе, я думаю, что разница заметна где-то на этом сайте. - person Javier; 24.01.2010
comment
@Javier Badia - Не могли бы вы объяснить больше этой строки? И если у вас есть контент, отправленный пользователем, искаженный тег sinalge приведет к отключению всей вашей страницы. - person Jitendra Vyas; 24.01.2010
comment
@Jitendra: Я думаю, что ссылка, которую я дал, кое-что об этом говорит, но представьте себе: у вас есть блог. Вы можете оставлять комментарии пользователей и разрешать в них некоторый XHTML. Если ошибка (например, тег br без закрывающей косой черты) попадает на ваш сайт, браузер вообще откажется ее отображать. См. Мою ссылку в разделе «Преимущества XML». - person Javier; 24.01.2010
comment
Однако он имеет преимущество при использовании инструмента на основе XML для создания / анализа / обслуживания веб-страниц, как в средах MVC на основе компонентов. - Это тебе уже несколько раз говорили, Джитендра. - person BalusC; 24.01.2010