Марк Кан - Основы программирования на JavaScript
[x]. Проверка XHTML
[x]. Модуляризация XHTML
XHTML является объединением HTML и XML (EXtensible Markup Language – Расширяемого языка разметки).
XHTML состоит из всех элементов HTML 4.01, объединенных с синтаксисом XML.
В настоящее время многие страницы в Интернет содержат "плохой" код HTML.
Следующий код HTML будет нормально работать при просмотре в браузере, даже хотя он не полностью следует правилам HTML:
<html> <head> <title>Это плохой код HTML</title> <body> <h1>Плохой код HTML </body>
XML является языком разметки, в котором каждый элемент должен быть правильно размечен, что приводит к "грамматически-правильным" ("well-formed") документам.
Язык XML предназначен для описания данных, а язык HTML создан для представления данных.
На современном рынке представлены различные технологии браузеров, одни браузеры предназначены для использования Интернет на компьютерах, другие для использования Интернет на мобильных телефонах и c помощью карманных коммуникаторов. Последние устройства имеют недостаточно ресурсов или мощности для интерпретации "плохого" языка разметки.
Объединяя сильные стороны HTML и XML, мы получаем язык разметки, который будет полезен сегодня и в будущем -- XHTML.
Страницы XHTML можно читать с помощью любых устройств, которые поддерживают XML. Пока весь мир не перейдет на использование поддерживающих XML браузеров, XHTML предоставляет возможность сейчас писать "синтаксически-правильные" документы, которые можно использовать во всех браузерах.
XHTML можно начать использовать просто строго следуя правилам HTML.
XHTML не очень существенно отличается от стандарта HTML 4.01.
Поэтому хорошим началом будет приведение кода к стандарту 4.01.
Кроме того, необходимо писать код HTML символами нижнего регистра, и никогда не пропускать завершающие теги (такие как
).Вот собственно и все. Удачного кодирования!
Элементы XHTML должны быть правильно вложены
Элементы XHTML всегда должны быть замкнутыми
Элементы XHTML должны записываться в нижнем регистре
Документы XHTML должны иметь один корневой элемент
В HTML некоторые элементы могут вкладываться друг в друга некорректно, например как в случае: <b><i>Этот текст жирный и наклонный</b></i>
В XHTML все элементы должны правильно вкладываться друг в друга, например: <b><i>Этот текст жирный и наклонный</i></b>
Примечание: Достаточно часто при создании вложенных списков забывают о том, что внутренний список должен находится между тегами <li> и </li>.
Неправильно:
<ul> <li>Кофе</li> <li>Чай <ul> <li>Черный чай</li> <li>Зеленый чай</li> </ul> <li>Молоко</li> </ul>
Правильно:
<ul> <li>Кофе</li> <li>Чай <ul> <li>Черный чай</li> <li>Зеленый чай</li> </ul> </li> <li>Молоко</li> </ul>
Обратите внимание, что в примере "правильного" кода вставлен тег </li> после тега </ul>.
Непустые элементы должны иметь замыкающий тег.
Неправильно:
Это -- параграф
Это -- еще один параграф
Правильно:
Это -- параграф
Это -- еще один параграф
Пустые элементы должны иметь замыкающий тег или начальный тег должен заканчиваться символами />.
Неправильно:
Разрыв строки: <br> Горизонтальная линия: <hr> Изображение: <img src="happy.gif" alt="Веселое лицо ">
Правильно:
Разрыв строки: <br /> Горизонтальная линия: <hr /> Изображение: <img src="happy.gif" alt="Веселое лицо " />
Спецификация XHTML определяет, что имена и атрибуты тегов должны записываться в нижнем регистре.
Неправильно:
<BODY> <P>Параграф </P> </BODY>
Правильно:
<body>
Параграф
</body>Все элементы XHTML должны быть вложены в корневой элемент <html>. Все другие элементы могут иметь вложенные элементы (потомков). Вложенные элементы должны быть парными и правильно вкладываться в свой родительский элемент. Общая структура документа имеет следующий вид:
<html> <head> ... </head> <body> ... </body> </html>
При записи документа XHTML требуется использовать четкий синтаксис HTML.
[x]. Имена атрибутов должны записываться в нижнем регистре
[x]. Значения атрибутов должны заключаться в кавычки
[x]. Минимизация атрибутов запрещена
[x]. Атрибут id заменяет атрибут name
[x]. DTD XHTML определяет обязательные элементы
Неправильно:
<table WIDTH="100%">
Правильно:
<table width="100%">
Неправильно:
<table width=100%>
Правильно:
<table width="100%">
Неправильно:
<input checked> <input readonly> <input disabled> <option selected> <frame noresize>
Правильно:
<input checked="checked" /> <input readonly="readonly" /> <input disabled="disabled" /> <option selected="selected" /> <frame noresize="noresize" />
Ниже представлен список минимизированных атрибутов HTML и их запись в XHTML.
HTMLXHTMLcompactcompact="compact"
checked
declare
checked="checked"
declare="declare"
readonlyreadonly="readonly"disableddisabled="disabled"selectedselected="selected"deferdefer="defer"ismapismap="ismap"nohrefnohref="nohref"noshadenoshade="noshade"nowrapnowrap="nowrap"multiplemultiple="multiple"noresizenoresize="noresize"HTML 4.01 определяет атрибут name для элементов a, applet, frame, iframe, img, и map. В XHTML атрибут name исключен. Вместо него используется атрибут id.
Неправильно:
<img src="picture.gif" name="рис. 1" />
Правильно:
<img src="picture.gif" id="рис. 1" />
Примечание: Для взаимодействия со старыми браузерами в течение некоторого времени необходимо будет использовать оба атрибута name и id, с одинаковыми значениями атрибутов, например: <img src="picture.gif" id="рис. 1" name="рис. 1" />.
Для совместимости XHTML с современными браузерами, необходимо добавить дополнительный пробел перед символом "/".
Атрибут lang применим почти к любому элементу XHTML. Он определяет язык содержимого внутри элемента.
Если в каком-то элементе используется атрибут lang, то необходимо добавить атрибут xml:lang, например: <div lang="fr" xml:lang="fr">Bonjour, madam!</div>.
Все документы XHTML должны иметь объявление DOCTYPE. Также должны присутствовать элементы html, head и body, а внутри элемента head должен присутствовать элемент title.
Шаблон минимального документа XHTML имеет следующий вид:
<!DOCTYPE Здесь определяется тип документа> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Здесь задается заголовок </title> </head> <body> </body> </html>
Примечание: Объявление DOCTYPE не является частью самого документа XHTML. Это объявление не является элементом XHTML и не должно иметь закрывающий тег.
Примечание: Атрибут xmlns в теге <html> является в XHTML обязательным. Однако программа проверки (валидатор) на сайте w3.org не высказывает претензий, когда этот атрибут отсутствует в документе XHTML. Это обусловлено тем, что атрибут "xmlns=http://www.w3.org/1999/xhtml" имеет фиксированное значение и будет добавлен в тег <html>, даже если он не был включен.
В следующем разделе представлена дополнительная информация об определении типа документа XHTML.
Стандарт XHTML определяет три определения типа документа (Document Type Definitions – DTD).