webspace hosting reseller hosting|             | blog| forum| dating| free hosting| openhost| report abuse
Internet Fax To Email - Unlimited

Unlimited Faxes, No Fees, Dedicated Phone Number

Free Website Templates
 
 
 
На главную

Введение в структуру документа HTML

Документ в формате HTML 4.0 состоит из трех частей:

  1. строки, содержащей информацию о версии HTML,
  2. раздела заголовков (определяемого элементом HEAD),
  3. тела, которое включает собственно содержимое документа. Тело может вводиться элементом 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>

7.2 Информация о версии HTML

В документе HTML должна быть объявлена используемая в нем версия языка HTML. Объявление типа документа указывает определение типа документа (DTD), используемое в этом документе (см. [ISO8879]).

HTML 4.0 определяет три DTD, так что авторы должны включать в свои документы одно из следующих объявлений типов. Разница между DTD заключается в поддерживаемых ими элементах.

  • HTML 4.0 Strict DTD (строгое определение) включает все элементы и атрибуты, не являющиеся нежелательными и не использующиеся в документах с кадрами. Для документов, использующих это DTD, используйте такое объявление типа документа:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
            "http://www.w3.org/TR/REC-html40/strict.dtd">
    
  • HTML 4.0 Transitional DTD (переходное определение) включает все, что включено в строгое DTD, а также нежелательные элементы и атрибуты (большинство из которых относится к визуальному представлению). Для документов, использующих это DTD, используйте такое объявление типа документа:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
            "http://www.w3.org/TR/REC-html40/loose.dtd">
    
  • HTML 4.0 Frameset DTD (определение для кадров) включает все, что включено в переходное 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 и наборы комбинаций для HTML 4.0, поддерживаемого W3C:

Связь между общими идентификаторами и файлами можно указать с использованием файла каталога, за которым следует формат, рекомендуемый Открытым консорциумом SGML (см. [SGMLOPEN]). Примерный файл каталога для HTML 4.0 включен в начало раздела о справочной информации об SGML для HTML. Две последние буквы декларации указывают язык DTD. Для HTML это всегда английский ("EN").

7.3 Элемент HTML

<!ENTITY % html.content "HEAD, BODY">

<!ELEMENT HTML O O (%html.content;)    -- корневой элемент документа -->
<!ATTLIST HTML
  %i18n;                               -- lang, dir --
  >

Начальный тег: необязателен, Конечный тег: необязателен

Определения атрибутов
версия = cdata[CN]
Нежелателен. Значение этого атрибута указывает версию HTML DTD, которой подчиняется этот документ. Этот атрибут является нежелательным, поскольку он является избыточным при наличии информации о версии, указываемой в объявлении типа документа.
Атрибуты, определяемые в любом другом месте

После объявления типа документа остальная часть документа HTML содержится в элементе HTML. Таким образом, типичный документ HTML имеет такую структуру:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
...Здесь идут заголовок, тело и т.д...
</HTML>

7.4 Заголовок документа

7.4.1 Элемент 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. Профили обсуждаются ниже в разделе о метаданных.
Атрибуты, определяемые в любом другом месте

Элемент HEAD содержит информацию о текущем документе, такую как заголовок, ключевые слова, которые могут использоваться поисковыми машинами, и другие данные, которые не считаются содержимым документа. Агенты пользователей обычно не используют при генерации элементы из раздела HEAD. Однако они могут предоставлять пользователям информацию из раздела HEAD с помощью своих собственных механизмов.

7.4.2 Элемент TITLE

<!-- Элемент TITLE не считается частью текста.
       Он должен отображаться, например, в качестве заголовка страницы
       или окна. В документе должен быть ровно один заголовок.
    -->
<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) - заголовок документа -->
<!ATTLIST TITLE %i18n>

Начальный тег: обязателен, Конечный тег: обязателен

Атрибуты, определяемые в любом другом месте

Каждый документ HTML должен иметь элемент TITLE в разделе HEAD.

Авторы должны использовать элемент TITLE для идентификации содержимого документа. Поскольку пользователи часто обращаются к документам за пределами контекста, авторам следует обеспечивать заголовки в широком контексте. Таким образом, вместо заголовков типа "Введение", ничего не говорящих о контексте, авторам следует использовать заголовки типа "Введение в средневековое пчеловодство".

Из соображений доступности агенты пользователей всегда должны делать содержимое элемента TITLE доступным пользователям (включая элементы TITLE в кадрах). Механизм этого зависит от агента пользователя (например, в виде заголовка или произносимый).

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

<!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>

7.4.3 Атрибут title

Определения атрибутов
title = text [CS]
Этот атрибут предлагает информацию об элементе, для которого он устанавливается.

В отличие от элемента TITLE, который предоставляет информацию обо всем документе и может присутствовать в тексте только один раз, атрибут title может сопровождать любое число элементов. Узнать, поддерживает ли элемент этот атрибут, можно в определении элемента.

Значения атрибута title могут использоваться агентами пользователя в генерации изображения по-разному. Например, визуальные браузеры часто отображают заголовок как подсказку (краткое сообщение, которое появляется, если Вы указываете на объект). Аудиоагенты пользователя могут проговаривать информацию заголовка. Например, установка этого атрибута для ссылки позволяет агентам пользователей (визуальным и невизуальным) сообщить пользователям о природе связанного ресурса:

...текст...
Вот фотография
<A href="http://someplace.com/neatstuff.gif" title="Me scuba diving">
   как я нырял в прошлом году
</A>
...еще текст...

Атрибут title играет дополнительную роль при использовании с элементом LINK для назначения внешней таблицы стилей. Подробнее см. в разделе о ссылках и таблицах стилей.

Примечание.Для улучшения качества синтеза речи в случае плохой обработки стандартными механизмами будущие версии HTML могут включать атрибут для кодирования фонематической информации.

7.4.4 Метаданные

Во время написания этой спецификации проводились работы по предоставлению авторам возможности задания большего количества машинно-читаемой информации о документах HTML и других сетевых ресурсах. Для метаданных W3C разработан Язык описания ресурсов (см. [RDF]).

HTML позволяет авторам указывать метаданные -- информацию о документе вместо содержимого документа - множеством способов.

Например, чтобы указать автора документа, можно использовать элемент META следующим образом:
<META name="Author" content="Дэйв Рэггетт">

Элемент META задает свойство (здесь "Author (Автор)") и назначает ему значение (здесь - "Дэйв Рэггетт").

Данная спецификация не определяет набор допустимых свойств метаданных. Значение свойства и набор допустимых значений этого свойства должны определяться в относительном словаре, называемом профилем. Например, профиль, разработанный для помощи в индексировании документов для поисковых машин может определять такие свойства как "author", "copyright", "keywords" и т.д.

Указание метаданных 

В общем случае задание метаданных состоит из двух шагов:

  1. Объявление свойства и его значения. Это можно сделать двумя способами:
    1. Из документа с помощью элемента META.
    2. Не из документа с помощью ссылки на метаданные через элемент LINK (см. раздел о типах ссылок).
  2. Сославшись на профиль, в котором определяются свойства и их допустимые значения. Для назначения профиля используйте атрибут profile элемента 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.
Атрибуты, определяемые в любо другом месте

Элемент META может использоваться для идентификации свойств документа (например, автора, срок истечения, список ключевых слов и т.д.) и назначения им значений. В этой спецификации не определяется нормативный набор значений.

Каждый элемент META задает пару свойство/значение. Атрибут name определяет свойства, а атрибут content - значение.

Например, в следующем объявлении устанавливается значение свойства Author:
<META name="Author" content="Дэйв Рэггетт">

Атрибут lang может использоваться с элементом META для указания языка значения атрибута content. Это позволяет синтезаторам речи использовать правила произношения для разных языков.

В этом примере имя автора объявляется на французском языке:
<META name="Author" lang="fr" content="Arnaud Le Hors">
Примечание. Элемент META - это общий механизм задания метаданных. Однако некоторые элементы и атрибуты HTML уже обрабатывают некоторые части метаданных и могут использоваться авторами вместо элементов META для указания этих частей: элементы TITLE, ADDRESS, INS и DEL, атрибут title и атрибут cite.
Примечание. Если свойство, заданное с помощью элемента META, принимает значение URI, некоторые авторы предпочитают указывать метаданные с помощью элемента LINK. Таким образом, следующее объявление:
<META name="DC.identifier"
      content="ftp://ds.internic.net/rfc/rfc1866.txt">

можно также записать следующим образом:

<LINK rel="DC.identifier"
         type="text/plain"
         href="ftp://ds.internic.net/rfc/rfc1866.txt">
META и заголовки HTTP

Атрибут http-equiv может использоваться вместо атрибута name; он особенно важен, если документы загружаются по протоколу передачи гипертекста (HTTP). Серверы HTTP могут использовать имя свойства, указанное в атрибуте http-equiv для создания заголовка в ответе HTTP в стиле [RFC822]. Подробнее о допустимых заголовках HTTP см. в спецификации HTTP ([RFC2068]).

В следующем примере объявление META:
<META http-equiv="Expires" content="Tue, 20 Aug 1996 14:25:27 GMT">

вернет следующий заголовок HTTP:

Expires: Tue, 20 Aug 1996 14:25:27 GMT

Это может использоваться кэш-памятью для определения того, когда следует загрузить новую копию связанного документа.

Некоторые агенты пользователей поддерживают использование элемента META для обновления текущей страницы по истечении указанного числа секунд с возможностью замены на другой URI.
<META http-equiv="refresh" content="3,http://www.acme.com/intro.html">

content - это число, указывающее задержку в секундах, за которым следует URI, который нужно загрузить по прошествии этого времени. Этот механизм широко используется для создания кратковременных заставок. Однако поскольку некоторые агенты пользователей не поддерживают этот механизм, авторам следует включить в заставку возможность перейти на следующую страницу (чтобы они на "зависли" на заставке).

META и поисковые машины