Синтаксис XHTML очень похож на синтаксис HTML, и почти все действительные элементы HTML также допустимы в XHTML. Но когда вы пишете документ XHTML, вам нужно уделить немного дополнительного внимания, чтобы ваш HTML-документ соответствовал XHTML.
Вот важные моменты, которые следует помнить при написании нового документа XHTML или преобразовании существующего документа HTML в документ XHTML —
-
Напишите объявление DOCTYPE в начале документа XHTML.
-
Запишите все теги и атрибуты XHTML только в нижнем регистре.
-
Закройте все теги XHTML правильно.
-
Вложите все теги правильно.
-
Укажите все значения атрибутов.
-
Запретить минимизацию атрибутов.
-
Замените атрибут имени атрибутом id .
-
Устаревать атрибут языка тега script.
Напишите объявление DOCTYPE в начале документа XHTML.
Запишите все теги и атрибуты XHTML только в нижнем регистре.
Закройте все теги XHTML правильно.
Вложите все теги правильно.
Укажите все значения атрибутов.
Запретить минимизацию атрибутов.
Замените атрибут имени атрибутом id .
Устаревать атрибут языка тега script.
Вот подробное объяснение вышеуказанных правил XHTML —
Декларация DOCTYPE
Все документы XHTML должны иметь объявление DOCTYPE в начале. Существует три типа объявлений DOCTYPE, которые подробно обсуждаются в главе XHTML Doctypes. Вот пример использования DOCTYPE —
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Чувствительность к регистру
XHTML — чувствительный к регистру язык разметки. Все теги и атрибуты XHTML должны быть написаны только в нижнем регистре.
<!-- This is invalid in XHTML --> <A Href="/xhtml/xhtml_tutorial.html">XHTML Tutorial</A> <!-- Correct XHTML way of writing this is as follows --> <a href="/xhtml/xhtml_tutorial.html">XHTML Tutorial</a>
В этом примере Href и тег привязки A не в нижнем регистре, поэтому это неверно.
Закрытие тегов
Каждый тег XHTML должен иметь эквивалентный закрывающий тег, даже пустые элементы также должны иметь закрывающие теги. Вот пример, показывающий действительные и недействительные способы использования тегов —
<!-- This is invalid in XHTML --> <p>This paragraph is not written according to XHTML syntax. <!-- This is also invalid in XHTML --> <img src="/images/xhtml.gif" >
Следующий синтаксис показывает правильный способ написания вышеуказанных тегов в XHTML. Разница в том, что здесь мы правильно закрыли оба тега.
<!-- This is valid in XHTML --> <p>This paragraph is not written according to XHTML syntax.</p> <!-- This is also valid now --> <img src="/images/xhtml.gif" />
Атрибут Котировки
Все значения атрибутов XHTML должны быть заключены в кавычки. В противном случае ваш документ XHTML считается недействительным документом. Вот пример, показывающий синтаксис —
<!-- This is invalid in XHTML --> <img src="/images/xhtml.gif" width=250 height=50 /> <!-- Correct XHTML way of writing this is as follows --> <img src="/images/xhtml.gif" width="250" height="50" />
Минимизация атрибутов
XHTML не позволяет минимизировать атрибуты. Это означает, что вам нужно явно указать атрибут и его значение. Следующий пример показывает разницу —
<!-- This is invalid in XHTML --> <option selected> <!-- Correct XHTML way of writing this is as follows --> <option selected="selected">
Вот список свернутых атрибутов в HTML и способ их записи в XHTML:
HTML стиль | Стиль XHTML |
---|---|
компактный | компактный = «компактный» |
проверено | проверено = «проверено» |
объявлять | объявить = «объявить» |
только для чтения | = только для чтения «ReadOnly» |
отключен | отключено = «отключено» |
выбранный | выбран = «выбрано» |
откладывать | отложить = «отложить» |
ISMAP | ISMAP = «ISMAP» |
nohref | nohref = «nohref» |
noshade | noshade = «noshade» |
Nowrap | Nowrap = «Nowrap» |
множественный | множественные = «несколько» |
NORESIZE | NORESIZE = «NORESIZE» |
Атрибут id
Атрибут id заменяет атрибут name. Вместо использования name = «name», XHTML предпочитает использовать id = «id». В следующем примере показано, как —
<!-- This is invalid in XHTML --> <img src="/images/xhtml.gif" name="xhtml_logo" /> <!-- Correct XHTML way of writing this is as follows --> <img src="/images/xhtml.gif" id="xhtml_logo" />
Атрибут языка
Атрибут языка тега script устарел. Следующий пример показывает эту разницу —
<!-- This is invalid in XHTML --> <script language="JavaScript" type="text/JavaScript"> document.write("Hello XHTML!"); </script> <!-- Correct XHTML way of writing this is as follows --> <script type="text/JavaScript"> document.write("Hello XHTML!"); </script>
Вложенные теги
Вы должны правильно вложить все теги XHTML. В противном случае ваш документ считается неверным XHTML-документом. В следующем примере показан синтаксис —
<!-- This is invalid in XHTML --> <b><i> This text is bold and italic</b></i> <!-- Correct XHTML way of writing this is as follows --> <b><i> This text is bold and italic</i></b>
Запреты Элементов
Следующие элементы не могут иметь какие-либо другие элементы внутри них. Этот запрет распространяется на все глубины вложения. Значит, в него входят все нисходящие элементы.
Элемент | запрет |
---|---|
<a> | Не должен содержать другие элементы <a>. |
<Предварительно> | Не должен содержать элементы <img>, <object>, <big>, <small>, <sub> или <sup>. |
Кнопка <> | Не должен содержать элементы <input>, <select>, <textarea>, <label>, <button>, <form>, <fieldset>, <iframe> или <isindex>. |
<Метка> | Не должен содержать другие элементы <label>. |
<Форма> | Не должен содержать другие элементы <form>. |
Минимальный XHTML-документ
В следующем примере показано минимальное содержимое документа XHTML 1.0 —