Документ в формате HTML 4.0 состоит из трех частей:
- строки, содержащей информацию о версии HTML
- раздела заголовков (определяемого элементом HEAD)
- тела, которое включает собственно содержимое документа. Тело может вводиться элементом BODYили элементом FRAMESET.
Перед каждым элементом или после каждого элемента может находиться пустое пространство (пробелы, переход на новую строку, табуляции и комментарии). Разделы 2 и 3 должны отделяться элементом HTML.
Вот пример простого документа HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd"> <HTML> <HEAD>
<TITLE>Мой первый документ HTML</TITLE> </HEAD> <BODY> <P>Всем привет!
</BODY> </HTML>
Информация о версии HTML
В документе HTML должна быть объявлена используемая в нем версия языка HTML. Объявление типа документа указывает определение типа документа (DTD), используемое в этом документе.
HTML 4.0 определяет три DTD, так что авторы должны включать в свои документы одно из следующих объявлений типов. Разница между DTD заключается в поддерживаемых ими элементах.
HTML 4.0 StrictDTD (строгое определение) включает все элементы и атрибуты, не являющиеся нежелательными и не использующиеся в документах с кадрами. Для документов, использующих это DTD, используйте такое объявление типа документа:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-tml40/strict.dtd">
HTML 4.0 TransitionalDTD (переходное определение) включает все, что включено в строгое DTD, а также нежелательные элементы и атрибуты (большинство из которых относится к визуальному представлению). Для документов, использующих это DTD, используйте такое объявление типа документа:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
HTML 4.0 FramesetDTD (определение для кадров) включает все, что включено в переходное DTD, а также кадры. Для документов, использующих это DTD, используйте такое объявление типа:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd">
URI в каждом объявлении типа документа позволяет браузерам загрузить DTD и все необходимые entity sets. Следующие URI указывают на DTD и entity setsдля HTML 4.0, поддерживаемого W3C:
"http://www.w3.org/TR/REC-html40/strict.dtd"
— строгое DTD по умолчанию "http://www.w3.org/TR/REC-html40/loose.dtd"
— переходное DTD "http://www.w3.org/TR/REC-html40/frameset.dtd"
— DTD для документов, использующих кадры
"http://www.w3.org/TR/REC-html40/HTMLlat1.ent"
— Latin-1 entities "http://www.w3.org/TR/REC-html40/HTMLsymbol.ent"
— Symbol entities "http://www.w3.org/TR/REC-html40/HTMLspecial.ent"
— Special entities
Связь между общими идентификаторами и файлами можно указать с использованием файла каталога, за которым следует формат, рекомендуемый Открытым консорциумом SGML.
Элемент HTML
<!ENTITY % html.content "HEAD, BODY">
<!ELEMENT HTML O O (%html.content;) -- корневой элемент документа
-->
<!ATTLIST HTML
%i18n; -- lang, dir --> Начальный тэг: не обязательный, Конечный тэг: не обязательный.
Определения атрибутов версия = cdata[CN]
Нежелателен. Значение этого атрибута указывает версию HTML DTD, которой подчиняется этот документ. Этот атрибут является нежелательным, поскольку он является избыточным при наличии информации о версии, указываемой в объявлении типа документа.
Атрибуты, определяемые в любом другом месте
lang (информация о языке), dir (направление текста)
После объявления типа документа остальная часть документа HTML содержится в элементе HTML. Таким образом, типичный документ HTML имеет такую структуру:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
...Здесь идут заголовок, тело и т.д...
</HTML>
Заголовок документа
Элемент HEAD
<!-- %head.misc;, определенный ранее как "SCRIPT|STYLE|META|LINK|OBJECT" --> <!ENTITY % head.content "TITLE & BASE?">
<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) — заголовок документа --> <!ATTLIST HEAD
%i18n; -- lang, dir --
profile %URI; #IMPLIED -- каталог метаинформации --> Начальный тэг: не обязателен. Конечный тэг: не обязателен.
Определения атрибутов profile = uri [CT]
Этот атрибут указывает местоположение одного или нескольких профилей метаданных, отделяемых пробелами. Для расширения в будущем браузеры должны предполагать, что значение является списком, хотя в как правило значащим считается только первый URI.
Атрибуты, определяемые в любом другом месте
lang (информация о языке), dir (направление текста)
Элемент HEADсодержит информацию о текущем документе, такую как заголовок, ключевые слова, которые могут использоваться поисковыми машинами, и другие данные, которые не считаются содержимым документа. Браузеры обычно не используют при генерации элементы из раздела HEAD. Однако они могут предоставлять пользователям информацию из раздела HEADс помощью своих собственных механизмов.
Элемент TITLE
<!-- Элемент TITLE не считается частью текста.
Он должен отображаться, например, в качестве заголовка страницы или окна. В документе должен быть ровно один заголовок. --> <!ELEMENT TITLE — — (#PCDATA) -(%head.misc;) -- document title --> <!ATTLIST TITLE %i18n>
Начальный тэг: обязателен. Конечный тэг: обязателен.
Атрибуты, определяемые в любом другом месте
lang (информация о языке), dir (направление текста)
Каждый документ HTML должен иметь элемент TITLEв разделе HEAD.
Авторы должны использовать элемент TITLEдля идентификации содержимого документа. Поскольку пользователи часто обращаются к документам за пределами контекста, авторам следует обеспечивать заголовки в широком контексте. Таким образом, вместо заголовков типа «Введение», ничего не говорящих о контексте, авторам следует использовать заголовки типа «Введение в средневековое пчеловодство».
Из соображений доступности браузеры всегда должны делать содержимое элемента TITLEдоступным пользователям (включая элементы TITLEв кадрах). Механизм этого зависит от браузера (например, в виде заголовка или произносимый). Заголовки могут включать character entities(для символов со знаком ударения, специальных символов и т.д.), но не могут содержать другой разметки. Вот образец заголовка документа:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
<HEAD>
<TITLE>Исследование динамики популяции </TITLE>
... другие элементы заголовка...
</HEAD>
<BODY>
... тело документа...
</BODY>
</HTML>
Атрибут title
Определения атрибутов title = text [CS]
Этот атрибут предлагает информацию об элементе, для которого он устанавливается. В отличие от элемента TITLE, который предоставляет информацию обо всем документе и может присутствовать в тексте только один раз, атрибут titleможет сопровождать любое число элементов. Узнать, поддерживает ли элемент этот атрибут, можно в определении элемента.
Значения атрибута titleмогут использоваться браузерами в генерации изображения по-разному. Например, визуальные браузеры часто отображают заголовок как подсказку (краткое сообщение, которое появляется, если вы указываете на объект). Аудио-браузеры могут проговаривать информацию заголовка. Например, установка этого атрибута для ссылки позволяет браузерам (визуальным и невизуальным) сообщить пользователям о природе связанного ресурса:
...текст... Вот фотография
<A href="http://someplace.com/neatstuff.gif" title="Me scuba diving">
как я нырял в прошлом году </A> ...еще текст...
Атрибут titleиграет дополнительную роль при использовании с элементом LINKдля назначения внешней таблицы стилей.
Для улучшения качества синтеза речи в случае плохой обработки стандартными механизмами будущие версии HTML могут включать атрибут для кодирования фонематической информации.
Метаданные
HTML позволяет авторам указывать метаданные — информацию о документе вместо содержимого документа — множеством способов.
Например, чтобы указать автора документа, можно использовать элемент METAследующим образом:
<META name="Author" content="Иван Иванов">
Элемент METAзадает свойство (здесь «Author (Автор)») и назначает ему значение (здесь — «Иван Иванов»).
Значение свойства и набор допустимых значений этого свойства должны определяться в относительном словаре, называемом профилем. Например, профиль, разработанный для помощи в индексировании документов для поисковых машин может определять такие свойства как «author», «copyright», «keywords» и т.д.
Задание метаданных
В общем случае задание метаданных состоит из двух шагов:
- Объявление свойства и его значения. Это можно сделать двумя способами:
- Из документа с помощью элемента META.
- Не из документа с помощью ссылки на метаданные через элемент LINK.
- Сославшись на профиль, в котором определяются свойства и их допустимые значения. Для назначения профиля используйте атрибут профиль элемента HEAD.
Помните, что поскольку профиль определяется для элемента HEAD, этот профиль применяется ко всем элементам METAи LINKв заголовке документа.
Браузеры не обязательно должны поддерживать механизмы метаданных.
Элемент META
<!ELEMENT META — O EMPTY <!ATTLIST META
-- общая метаинформация -->
%i18n; -- lang, dir, для использования с содержимым --http-equiv NAME #IMPLIED -- имя заголовка ответа HTTP --name NAME #IMPLIED -- имя метаинформации --content CDATA #REQUIRED — связанная информация --scheme CDATA #IMPLIED -- выбор формы содержимого --> Начальный тэг: обязателен. Конечный тэг: запрещен.
Определения атрибутов
Для следующих атрибутов допустимые значения и их интерпретация зависят от профиля:
name = name [CS]
Этот атрибут определяет имя свойства.
content = cdata [CS]
Этот атрибут определяет значение свойства.
scheme = cdata [CS]
Этот атрибут дает имя схеме, используемой для интерпретации значения свойства.
http-equiv = name [CI]
Этот атрибут может использоваться вместо атрибута name. Серверы HTTP используют этот атрибут для сбора информации для заголовков сообщений ответов HTTP.