какой смысл использовать XHTML, если мне нужно это сделать, я мог бы просто использовать HTML?
Вы используете , используя HTML, при условии, что вы отображаете свои страницы как Content-Type: text/html
, что (к сожалению) должно быть в данный момент.
Если вы хотите получить преимущества простоты разметки XML, вам придется использовать страницу как тип носителя XML, например application/xhtml+xml
. К сожалению, это сломает старые браузеры и IE. Некоторые люди рекомендуют обслуживать XHTML с переменным типом содержимого, зависящим от заголовка запроса Accept
браузера, но я бы не стал, поскольку это означает, что у вас есть два набора очень немного отличающихся правил разметки, стилей и сценариев, которые необходимо соблюдать, и это делает кеширование менее эффективным. (Если вы установите Vary: Accept
, как вы должны в таком ответе, это нарушит кеширование в IE, и если вы не сделаете этого, браузеры могут получить кешированный неправильный тип.)
Допустимо использовать самозакрывающуюся форму для любого элемента в «реальном» XHTML, но в настоящий момент вы не используете «настоящий» XHTML, вы используете HTML-совместимый XHTML как определяется Приложением C стандарта XHTML. HTML-совместимый XHTML на самом деле не дает никаких преимуществ на стороне браузера, но это означает, что вы можете создавать свой контент в инструментах с поддержкой XML, которые могут легко выполнять такие вещи, как проверки правильности формы, а также преобразовывать или шаблонировать файлы.
HTML-совместимый XHTML требует, чтобы вы использовали самозакрывающиеся теги, если (и только если) рассматриваемый элемент имеет модель содержимого EMPTY (т. Е. Он никогда не может содержать никаких других элементов или текстового содержимого). Элементы в строгом DTD XHTML 1.0 (и, следовательно, также строгий DTD HTML 4.01), которые определены как EMPTY:
base
meta
link
hr
br
param
img
area
input
col
Переходные DTD и Frameset добавляют:
basefont
isindex
frame