XHTML - Расширяемый язык гипертекста

XHTML (EXtensible HyperText Markup Language, расширяемый язык разметки гипертекста) - язык разметки веб-страниц, по возможностям сопоставимый с HTML, но с более строгим синтаксисом.

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

XHTML поддерживается во всех современных браузерах.

Отличие HTML и XHTML

При написании кода XHTML используется характерный для HTML синтаксис. Разница между HTML и XHTML состоит в наборе некоторых обязательных правил.

Структура документа

  • Объявление типа документа (DTD) <!DOCTYPE> является обязательным
  • Наличие атрибута xlmns (указывает на пространство имен xml) является обязательным
  • Теги <html>, <head>, <title> и <body> являются обязательными.

Пример

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Заголовок документа</title>
  </head>
  <body>
    Содержание страницы
  </body>
</html>

XHTML элементы

  • Вложенность тегов должна быть правильной.

XHTML критично относится к некорректной вложенности одного тега в другой и расположение тега в не соответствующем контейнере. К примеру, в разметке тексте <p> Lorem <b><i> ipsum dolor sit </b></i> amet </p> есть ошибка, тег </b> должен быть расположен после тега </i>, а не предшествовать ему.

  • Все теги должны быть закрыты.

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

<br /> - break 
<hr /> - horizontal line
<img src="image.jpg"/> - image
  • Все теги должны быть набраны в нижнем регистре

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

  • В XHTML документе должен быть как минимум один корневой элемент.

XHTML атрибуты

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

Это правило есть и в HTML, однако отсутствие кавычек не влияет на корректность кода, а в XHTML заключать в кавычки значения атрибутов надо обязательно.

<table width="200" border="1" cellpadding="5" cellspacing="0">
  • Запрещается использование сокращенных атрибутов тегов.

Сокращенным называют атрибут, которому не присвоено значение. Атрибуту можно присвоить атрибуту значение, совпадающее с названием. К примеру, вместо checked (HTML) используется checked="checked" (XHTML).

  • Вместо атрибута name следует указывать id.

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

Практикуйте свои знания

What are key attributes to note about XHTML?
Считаете ли это полезным?