XHTML - Синтаксис
Синтаксис XHTML очень похож на синтаксис HTML, и почти все допустимые элементы HTML также действительны в XHTML. Но когда вы пишете документ XHTML, вам нужно уделять немного больше внимания тому, чтобы ваш HTML-документ соответствовал XHTML.
Вот важные моменты, которые следует помнить при написании нового документа XHTML или преобразовании существующего документа HTML в документ XHTML:
Напишите объявление DOCTYPE в начале документа XHTML.
Пишите все теги и атрибуты XHTML только в нижнем регистре.
Правильно закройте все теги XHTML.
Правильно вложите все теги.
Цитируйте все значения атрибутов.
Запретить минимизацию атрибутов.
Заменить name атрибут с id атрибут.
Устарело language атрибут тега скрипта.
Вот подробное объяснение приведенных выше правил 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 |
---|---|
компактный | compact = "компактный" |
проверил | checked = "проверено" |
объявить | declare = "объявить" |
только чтение | readonly = "только для чтения" |
отключен | disabled = "disabled" |
выбранный | selected = "selected" |
отложить | defer = "отложить" |
ismap | ismap = "ismap" |
nohref | nohref = "nohref" |
без тени | noshade = "noshade" |
теперь | nowrap = "nowrap" |
множественный | multiple = "несколько" |
размер | noresize = "размер без размера" |
Идентификатор Атрибут
Атрибут 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" />
Язык Атрибут
Атрибут языка тега скрипта устарел. Следующий пример показывает эту разницу -
<!-- 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>. |
<pre> | Не должен содержать элементы <img>, <object>, <big>, <small>, <sub> или <sup>. |
<кнопка> | Не должен содержать элементы <input>, <select>, <textarea>, <label>, <button>, <form>, <fieldset>, <iframe> или <isindex>. |
<метка> | Не должно содержать других элементов <label>. |
<форма> | Не должен содержать других элементов <form>. |
Минимальный документ XHTML
В следующем примере показано минимальное содержимое документа XHTML 1.0 -
<?xml version="1.0" encoding="UTF-8"?>
<!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/TR/xhtml1" xml:lang="en" lang="en">
<head>
<title>Every document must have a title</title>
</head>
<body>
...your content goes here...
</body>
</html>