Учебники

XHTML против HTML

В связи с тем, что XHTML является приложением XML, некоторые методы, которые были совершенно законными в HTML 4 на основе SGML, должны быть изменены. Вы уже видели синтаксис XHTML в предыдущей главе, поэтому различия между XHTML и HTML очень очевидны. Ниже приводится сравнение между XHTML и HTML.

Документы XHTML должны быть правильно оформлены

Правильность — это новая концепция, представленная XML. По сути, это означает, что все элементы должны иметь закрывающие теги, и вы должны правильно их вкладывать.

ПРАВИЛЬНО: вложенные элементы

<p>Here is an emphasized <em>paragraph</em>.</p>

НЕПРАВИЛЬНО: перекрывающиеся элементы

<p>Here is an emphasized <em>paragraph.</p></em>

Элементы и атрибуты должны быть в нижнем регистре

Документы XHTML должны использовать строчные буквы для всех элементов HTML и имен атрибутов. Это различие необходимо, поскольку предполагается, что документ XHTML является документом XML, а XML чувствителен к регистру. Например, <li> и <LI> — это разные теги.

Конечные теги необходимы для всех элементов

В HTML некоторые элементы могут опускать конечный тег. Но XML не позволяет опускать конечные теги.

ПРАВИЛЬНО: завершенные элементы

<p>Here is a paragraph.</p><p>here is another paragraph.</p>
<br><hr/>

НЕПРАВИЛЬНО: неопределенные элементы

<p>Here is a paragraph.<p>here is another paragraph.
<br><hr>

Значения атрибута всегда должны быть в кавычках

Все значения атрибутов, включая числовые значения, должны быть заключены в кавычки.

ПРАВИЛЬНО: цитируемые значения атрибутов

<td rowspan="3">

НЕПРАВИЛЬНО: Значения атрибутов без кавычек

<td rowspan=3>

Минимизация атрибутов

XML не поддерживает минимизацию атрибутов. Пары атрибут-значение должны быть записаны полностью. Имена атрибутов, такие как компактный и проверенный, не могут встречаться в элементах без указания их значения.

ПРАВИЛЬНО: не минимизированные атрибуты

<dl compact="compact">

НЕПРАВИЛЬНО: минимизированные атрибуты

<dl compact>

Обработка пробелов в значениях атрибутов

Когда браузер обрабатывает атрибуты, он делает следующее —

  • Удаляет ведущие и конечные пробелы.

  • Сопоставляет последовательности одного или нескольких символов пробела (включая разрывы строк) с одним межсловным пространством.

Удаляет ведущие и конечные пробелы.

Сопоставляет последовательности одного или нескольких символов пробела (включая разрывы строк) с одним межсловным пространством.

Элементы скрипта и стиля

В XHTML элементы script и style не должны иметь символы «<» и «&» напрямую, если они существуют; тогда они рассматриваются как начало разметки. Такие объекты, как «<» и «&», распознаются процессором XML как ссылки на объекты для отображения символов «<» и «&» соответственно.

Обтекание содержимого скрипта или элемента стиля внутри раздела, помеченного CDATA, позволяет избежать расширения этих объектов.

<script type="text/JavaScript">
   <![CDATA[
      ... unescaped VB or Java Script here... ...
   ]]>
</script>

Альтернативой является использование внешнего скрипта и стиля документов.

Элементы с атрибутами id и name

XHTML рекомендует заменить атрибут name на атрибут id . Обратите внимание, что в XHTML 1.0 атрибут name этих элементов формально устарел и будет удален в последующих версиях XHTML.

Атрибуты с предопределенными наборами значений

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

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

Ссылки на сущности как шестнадцатеричные значения

HTML и XML разрешают ссылки на символы с использованием шестнадцатеричного значения. В HTML эти ссылки могут быть сделаны с помощью & # Xnn; или & # xnn; и они действительны, но в документах XHTML вы должны использовать только строчную версию, например & # xnn; ,

Элемент <html> является обязательным

Все элементы XHTML должны быть вложены в корневой элемент <html>. Все остальные элементы могут иметь подэлементы, которые должны быть попарно и правильно вложены в родительский элемент. Основная структура документа —