Конечно. Ваш код будет меньше, так как вам не нужно включать дополнительные "
символы в атрибуты из одного слова, /
символы в самозакрывающиеся элементы, вы можете пропустить различные открывающие и закрывающие теги, такие как </p>
, </li>
и даже <html>
, <head>
, <body>
и т. Д. Являются необязательными в HTML 4.01 (и HTML5 ) , См. Оптимизация HTML и Оптимизация Оптимизация HTML для нескольких советов по упрощению HTML; Многие из этих советов работают только в HTML 4.01 или HTML5.
Теперь не всем нужно минимизировать это так много; но если вы это сделаете, использование HTML 4.01 (или HTML5) вместо XHTML может быть полезным.
Кроме того, Internet Explorer фактически не поддерживает XHTML как XHTML; если вы отправите его как application/xhtml+xml
, он просто попытается загрузить его. Итак, если вы используете XHTML, вам нужно отправить его в IE как text/html
, что заставит браузеры просто интерпретировать его как HTML. Несколько устаревшее обсуждение того, почему XHTML является плохой идеей, см. В XHTML Считается вредным , автором которого является нынешний редактор спецификации HTML5 (некоторые из этих причин все еще действительны, некоторые из них более не актуальны ).
Вот несколько примеров:
- Хорошо сформированный XHTML, служил
application/xhtml+xml
- Хорошо сформированный XHTML, служил
text/html
- Неправильно сформированный XHTML, используется как
application/xhtml+xml
- Не правильно сформированный XHTML, служил
text/html
- Хорошо сформированный HTML5, служил
text/html
Обратите внимание, что первый не работает в IE. Второй работает во всех браузерах, но вы просто теряете байты; например, браузеры неправильно интерпретируют пространства имен, поэтому, если вы включите XML в другое пространство имен, он фактически не появится в другом пространстве имен в ваших сценариях или CSS. Третий будет отображать большое сообщение об ошибке, а четвертый будет отображаться нормально, даже если он не правильно сформирован XHTML (что показывает, что браузеры используют свои HTML-парсеры).
Вы можете получить тот же эффект, что и в примерах text/html
, используя тип документа 4.01 или тип HTML5, как показано в пятом примере (это также допустимый код HTML 4.01, если в него вставить тип документа 4.01). ). Если вы используете HTML 4.01 или HTML5, вы можете сэкономить много места, и вы не будете обманывать себя, иногда обрабатывая документ как XHTML, а иногда - HTML.
Еще одна причина остерегаться использования XHTML как text/html
заключается в том, что он обрабатывается по-разному в зависимости от того, анализируется ли он парсером HTML или парсером XML. Например, самозакрывающийся тег script
, такой как <script type="text/javascript" src="foo.js"/>
, действителен в XHTML и, если он анализируется анализатором XML, будет проанализирован как пустой элемент. В HTML, однако, это будет рассматриваться просто как открывающий тег сценария, и он будет «съедать» остальную часть документа, поскольку анализатор продолжает анализировать, предполагая, что он находится внутри сценария, пока не найдет закрывающий тег. Это, вероятно, не то, что вам нужно, и может сбить вас с толку, если вы иногда рассматриваете документ как XML, а иногда - как HTML. Вот пример этой проблемы; эти два документа по-разному отображаются в Firefox, даже если они имеют одинаковое содержимое (Safari, по-видимому, обрабатывает их одинаково, поэтому масштабы этой проблемы различаются в разных браузерах):
Это не единственная разница между анализаторами HTML и XHTML. В HTML у <table>
будет <tbody>
, вставленный в DOM неявно, даже если у вас его нет в источнике; в XHTML, если вы не укажете <tbody>
явно, он не будет присутствовать в DOM.
Таким образом, использование XHTML в качестве text/html
сделает ваш код больше, чем он был бы, если бы вы просто использовали HTML 4.01 или HTML5, и это может привести к путанице, если вы иногда обрабатываете его как настоящий XML, а иногда рассматриваете его как HTML.