Полезная информация


W3C: REC-html32

Спецификация HTML 3.2

Рекомендация W3C от 14 января 1997 года

Автор: Дейв Раггетт (Dave Raggett) <dsr@w3.org>


Перевод на русский: Радик Усманов (Radik Usmanov) <radik@nsp.chg.ru>
Данный материал публикуется на сервере издательства ИнфоАрт с разрешения Дейва Раггетта (Dave Raggett)

Статус данного документа

Данный документ был рассмотрен членами группы W3C и другими заинтересованными сторонами и принят руководством W3C в качестве рекомендации. Данная рекомендация является неизменным документом и может быть использована в качестве исходного материала при создании ссылок или при цитировании в других документах в качестве норматива. Задача организации W3C в деле создания данной Рекомендации заключается в том, чтобы привлечь к ней внимание и способствовать широкому распространению данной спецификации. В конечном итоге это ведет к увеличению возможностей и универсальности Web.

Полный список рекомендаций, поддерживаемых организацией W3C, а также другие документы технического характера можно найти по адресу http://www.w3.org/pub/WWW/TR/.


Аннотация

Язык разметки гипертекста (HTML) является простым средством разметки, предназначенным для создания гипертекстовых документов, легко переносимых с одной платформы на другую. Документы на языке HTML, являющегося разновидностью SGML, имеют универсальную семантику, которая дает возможность предоставлять информации из большого набора приложений. Данная спецификация определяет версию 3.2 языка HTML. Цель разработчиков HTML 3.2 заключалась в обобщении практических рекомендаций, накопленных с начала 1996 года, а также в том, чтобы подготовить замену для версии 2.0 языка HTML (RFC 1866).


Содержание


Введение в язык HTML 3.2

Стандарт HTML 3.2 является спецификацией языка разметки гипертекста, предложенной организацией W3C и разработанной в начале 1996 года в кооперации с такими поставщиками, как IBM, Microsoft, Netscape Communication Corporation, Novell, SoftQuad, Spyglass, и Sun Microsystems. Версия 3.2 языка HTML дополнена такими широко распространенными элементами, как таблицы, апплеты и обтекание текстом изображений. При этом обеспечивается полная обратная совместимость с ныне существующим стандартом HTML 2.0.

W3C совместно с упомянутыми фирмами продолжает работу над расширением возможностей элементов языка HTML, таких как feagures, объекты мультимедиа, скрипты, типы стилей, разметка (layout), формы, математические символы, и над интернационализацией языка. W3C планирует включить результаты этой работы в следующие версии языка HTML.

HTML как частный случай SGML

Язык HTML 3.2 является реализацией SGML - стандартного обобщенного языка разметки (Standard Generalized Markup Language), отвечающей требованиям международного стандарта ISO 8879. Являясь реализацией SGML, синтаксис документа HTML 3.2 определяется комбинацией деклараций SGML и определений для типов документов (DTD). Данная спецификация дает определенную интерпретацию для элементов HTML 3.2, а также накладывает новые ограничения на допустимый синтаксис самого языка, что вызвано трудностями его формализации в DTD.

В языке SGML используются довольно сложные правила для границ записей (records). В частности, конец записи, следующий сразу за стартовым тэгом, должен игнорироваться. Например, разметка:

<P>

Текст

эквивалентна:

<P>Текст

Аналогично, должен игнорироваться конец записи, стоящий непосредственно перед завершающим тэгом. Например:

Текст

</P>

эквивалентно:

Текст</P>

Если не осуществляется разметка специального текста (например, текста с элементами PRE), в языке HTML последовательность из нескольких следующих друг за другом пробелов считается эквивалентной одному пробелу (в ASCII его десятичный код - 32). Подобные правила оставляют за авторами значительную свободу при внесении изменений в уже размеченный текст. Заметим, что в дальнейшие реализации языка HTML будет включена интерпретация для символа горизонтальной табуляции (в ASCII десятичный код 9), связанная с внесением в ассоциированную таблицу стиля некого правила для табуляций.

Объекты SGML, встречающиеся в контексте PCDATA или в атрибутах CDATA, должны адекватно расшифровываются анализатором языка. Например, &#233; должно заменятся на символ из набора ISO Latin-1 с десятичным кодом 233 (прописная буква e со знаком акцента). Данный символ могло также представить в виде записи, содержащей его название, например &eacute;. Даже сам символ & можно включить в текст, воспользовавшись записью с его названием: &amp;.

Спецификация HTML позволяет не ставить в кавычки атрибуты CDATA, если в них содержатся только буквы (от a до z и от A до Z), дефисы (в ASCII десятичный код 45) и точки (в ASCII десятичный код 46). В общем же случае значение атрибута может быть записано внутри двойных или одинарных кавычек (в ASCII их десятичные коды - 34 и 39 соответственно). Внутри атрибута, помещенного в двойные кавычки, можно ставить символы одинарных кавычек, и наоборот.

Заметим, что некоторые браузеры конечных пользователей требуют использования сокращенной записи для следующих атрибутов: COMPACT, ISMAP, CHECKED, NOWRAP, NOSHADE и NOHREF. Эти программы не воспринимают синтаксис типа COMPACT=COMPACT или ISMAP=ISMAP, хотя такая возможность и допускается в спецификации HTML 3.2 DTD.

Декларации SGML и DTD, используемые в спецификации HTML 3.2, даются в приложениях к данному документу. Остальные основополагающие принципы лексического анализа языка HTML даны в статье Дена Коннолли WD-html-lex.


Структура документов HTML

Документы в языке HTML 3.2 начинаются с декларации <!DOCTYPE>, затем следует элемент HTML, внутри которого содержатся HEAD и затем BODY:

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

  <HTML>

  <HEAD>

  <TITLE>Изучение динамики популяций</TITLE>

  ... другие элементы заголовка

  </HEAD>

  <BODY>

  ... тело документа

  </BODY>

  </HTML>

На практике же при разметке элементов HTML, HEAD и BODY начальный и конечный тэги могут быть опущены, поскольку они всегда могут быть восстановлены анализаторами, подчиняющимися требованиям стандарта HTML 3.2 DTD.

Каждый документ, отвечающий требованиям HTML 3.2, должен начинаться с декларации <!DOCTYPE>, которая необходима для того, чтобы отличить документ, составленный по спецификации HTML 3.2, от документов, написанных для других версий языка HTML. Спецификация HTML не конкретизирует объекты хранения. Как следствие, отсутствует ограничение, чтобы декларация для типа документа находилась в том же самом элементе хранения, что и сам документ (то есть находилась в том же файле). Web сайт может автоматически дополнять предоставляемые HTML-файлы такой декларацией для типа документа, если известно, что все имеющиеся на сайте HTML файлы соответствуют спецификации HTML 3.2.

Каждый документ, согласно спецификации HTML 3.2, должен также содержать описательный элемент title. В итоге, минимальный документ HTML 3.2 выглядит следующим образом:

  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

  <TITLE>Изучение динамики популяций</TITLE>

Замечание: Теперь в декларации слово "Final" заменяет "Draft", поскольку спецификация языка HTML 3.2 была одобрена организациями-членами W3C.


Элемент HEAD и его производные

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

<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">

<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK">



<!ELEMENT HEAD O O  (%head.content) +(%head.misc)>

Запись %head.misc используется для того, чтобы позволить соответствующим элементам многократно возникать в произвольных позициях в пределах элемента HEAD.

Итак, в состав заголовка документа могут входить следующие элементы:

TITLE определяет заголовок документа, необходим во всех случаях.
ISINDEX используется при простом поиске по ключевому слову, см. атрибут PROMPT.
BASE определяет базовый адрес URL, используемый относительными ссылками (relative URLs).
SCRIPT зарезервировано для использования в будущем в описательных языках.
STYLE зарезервировано для использования в будущем таблицами стилей.
META используется для предоставления некой метаинформации (парные конструкции типа "название/значение").
LINK используется для создания связей с другими документами.

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

TITLE

<!ELEMENT TITLE - -  (#PCDATA)* -(%head.misc)>

Согласно спецификации HTML 3.2, каждый документ обязан иметь ровно один элемент TITLE в поле HEAD. С его помощью программе конечного пользователя сообщается название-уведомление данного документа, которое может быть выставлено в заголовке над окном соответствующей программы и т.д. Модель используемого контекста - PCDATA. Следовательно, в контексте могут использоваться объекты, обозначающие символы из второй половины кодовой таблицы, а также заменяющие такие специальные символы, как & и <. Внутри TITLE нельзя использовать элементы разметки.

Пример элемента TITLE:

    <TITLE>Изучение динамики популяции</TITLE>

STYLE and SCRIPT


<!ELEMENT STYLE  - - CDATA -- место под информацию стиля  -->

<!ELEMENT SCRIPT - - CDATA -- место под описания скриптов  -->

Данные элементы разметки оставляют в документе место под запись стилей (в будущих версиях HTML), а также скриптов, которые будут выполняться на компьютерах конечных пользователей. Браузеры не должны выводить на экран содержимое этих элементов.

Тип контекста для данных элементов определяется как CDATA. Поэтому эти элементы могут содержать внутри себя только объекты-символы SGML. Все элементы разметки или разделители браузером игнорируются и передаются приложению как исходные данные. Исключение составляют разделители ETAGO ("</"), за которыми сразу следует какая- либо буква из названия [a-zA-Z]. Это значит, что распознается завершающий тэг соответствующего элемента (или тэг того элемента, в который он был вложен), однако фиксируется ошибка, если разделитель ETAGO был указан неправильно.

ISINDEX

    <!ELEMENT ISINDEX - O EMPTY>

    <!ATTLIST ISINDEX

        prompt CDATA #IMPLIED -- текст сообщения -->

Элемент ISINDEX указывает на то, что браузер должен выделить отдельное текстовое поле для ручного ввода строки запроса. Не имеется никаких ограничений на количество символов, которые можно было бы ввести таким образом. Чтобы выбрать сообщение, изначально записываемое самим браузером в такое поле, можно воспользоваться атрибутом PROMPT, например

    <ISINDEX PROMPT="Искомая фраза">

Семантика элементов ISINDEX в настоящее время хорошо разработана только для тех случаев, когда базовый адрес для текущего документа - URL, построенный на протоколе HTTP. В таком случае, как правило, как только пользователь нажимает клавишу Enter, серверу посылается строка запроса, составной частью которой является базовый адрес URL текущего документа. Например, если в строку запроса введена фраза "десять зеленых яблок" и документ имеет базовый URL:

    http://www.acme.com/

то генерируемый запрос имеет вид:

    http://www.acme.com/?десять+зеленых+яблок"

Заметим, что при этом символы пробела отображаются в символы " + " и что в адресе URL используются стандартные символы-ограничители. Остальные подробности см. в спецификации HTTP .

Примечание На практике, конструируемая таким образом строка запроса ограничивается символами из набора Latin-1, поскольку в настоящее время не существует какого-либо механизма, позволяющего в URL указать, какой набор символов был использован для составления запроса.

BASE

    <!ELEMENT BASE - O EMPTY>

    <!ATTLIST BASE

        href %URL  #REQUIRED

        >

Элемент BASE указывает для данного документа базовый адрес URL, который затем будет использоваться при переопределении относительных адресов URL с использованием правил, задаваемых соответствующей спецификацией URL. Например, в случае разметки

    <BASE href="http://www.acme.com/intro.html" rel="nofollow" >

     ...

    <IMG SRC="icons/logo.gif">

соответствующее изображение будет соотнесено с источником

    http://www.acme.com/icons/logo.gif

В отсутствии элемента BASE для преобразования относительных адресов в абсолютные должен использоваться URL самого документа. Заметим, что не обязательно это будет тот же самый адрес URL, который использовался для вызова документа, поскольку его базовый URL может быть переопределен заголовком HTTP, сопровождающим в сети рассматриваемый документ.

META


<!ELEMENT META - O EMPTY    -- Общая метаинформация -->

<!ATTLIST META

        http-equiv  NAME    #IMPLIED  -- имя заголовка ответа HTTP  --

        name        NAME    #IMPLIED  -- название метаинформации    --

        content     CDATA   #REQUIRED -- соответствующая информация --

        >

Элемент META может использоваться для записи парных элементов "название/значение", которые описывают свойства данного документа. Например, это может быть имя автора, дата истечения срока действия, список ключевых слов и т.д. Атрибут NAME определяет название определенного качества, в то время как CONTENT указывает соответствуще ему значение, например.

    <META NAME="Author" CONTENT="Dave Raggett">

Вместо атрибута NAME может использоваться атрибут HTTP- EQUIV, что имеет особое значение, если документы возвращаются по Протоколу Передачи Гипертекста (HTTP). Сервера HTTP могут использовать название свойства, указываемое атрибутом HTTP-EQUIV, для создания в HTTP-ответе особого заголовка в стиле RFC 822. Однако такой механизм оказывается неприменим, если используются некоторые типы HTTP-заголовков. Детали см. в спецификации HTTP. Например,

    <META HTTP-EQUIV="Expires" CONTENT="Tue, 20 Aug 1996 14:25:27 

GMT">

при передаче приведет к появлению в HTTP заголовке дополнительного сообщения:

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

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

LINK

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

В принципе элементы LINK могут использоваться для:

  1. создания в документе специальных навигационных кнопок или меню
  2. управления процессом отображения набора HTML файлов в печатные документы
  3. привязки таких ассоциированных ресурсов, как таблицы стилей и скрипты
  4. предоставления альтернативных форм для данного документа

    <!ELEMENT LINK - O EMPTY>

    <!ATTLIST LINK

        href    %URL    #IMPLIED    -- URL привязанного ресурса     --

        rel     CDATA   #IMPLIED    -- типы прямых связей           --

        rev     CDATA   #IMPLIED    -- типы обратных связей         --

        title   CDATA   #IMPLIED    -- строка заголовка для справки --

        >

href
Задает некий адрес URL, указывающий на ассоциированный ресурс.
rel
Прямая связь, известная также как "тип связи". Вводит определенное взаимоотношение между текущим документом и ресурсом, на который указывает атрибут HREF . Типы связей в HTML пока еще нестандартизированы, хотя некоторые соглашения в этом плане и были достигнуты.
rev
Данный элемент определяет обратные отношения. Например, если есть привязка документа A к документу B, выраженная параметром REV=отношение, то в документе B то же самое отношение фиксируется с помощью атрибута REL=отношение. Так в некоторых случаях может использоваться отношение REV=made для того, чтобы указать имя автора данного документа, адрес его электронной почты (посредством URL типа mailto), либо установить связь с личной страницей данного человека.
title
Заголовок ассоциированного ресурса, указываемый для справки.

Некоторые из рекомендованых типов взаимосвязей:

rel=top
Данная связь указывает на вершину в некой иерархической структуре, например на первую, либо титульную страницу в неком наборе документов.
rel=contents
Данная связь указывает на некий файл, где приводится оглавление к данному документу.
rel=index
Данная связь указывает на другой документ, который можно использовать в целях индексного поиска по текущему документу.
rel=glossary
Данная связь указывает на некий документ, где содержится глоссарий терминов, относящихся к текущему документу.
rel=copyright
Данная связь ссылается на текст, где указаны авторские права на данный документ.
rel=next
Данная связь указывает на следующий документ в неком заранее предопределенном маршруте просмотра. Например, она может использоваться для упреждающей автоматической загрузки браузером следующей страницы.
rel=previous
Данная связь ссылается на предыдущий документ в неком предопределенном маршруте просмотра.
rel=help
Данная связь указывает на документ, предлагающий некую помощь, например это может быть текст, дающий более развернутое описание и предлагающий ссылки на другие документы по этой теме. Назначение этой связи - оказание помощи тем читателям, кто потерял свой путь в Web.
rel=search
Данная ссылка ведет к поисковой странице, контролирующей некий набор страниц, связанных общей темой.

Примеры элементов LINK:


    <LINK REL=Contents HREF=toc.html>

    <LINK REL=Previous HREF=doc31.html>

    <LINK REL=Next HREF=doc33.html>



    <LINK REL=Chapter REV=Contents HREF=chapter2.html>

Элемент BODY и его производные

Данный элемент содержит собственно тело (текст) документа. При этом и начальный и конечный тэги элемента BODY могут быть опущены. В теле документа может содержаться достаточно большой набор элементов:

Ключевые атрибуты данного элемента - BACKGROUND, BGCOLOR, TEXT, LINK, VLINK и ALINK - могут использоваться для того, чтобы задать повторяющееся фоновое изображение, дополнительный цвет фона и цвет, который будет использоваться при печати на экране обычного текста и гипертекстовых связей.

<!ENTITY % body.content "(%heading | %text | %block | ADDRESS)*">



<!ENTITY % color "CDATA" -- a color specification: #HHHHHH @@ details? -->



<!ENTITY % body-color-attrs "

        bgcolor %color #IMPLIED

        text %color #IMPLIED

        link %color #IMPLIED

        vlink %color #IMPLIED

        alink %color #IMPLIED

        ">



<!ELEMENT BODY O O  %body.content>

<!ATTLIST BODY

        background %URL #IMPLIED  -- texture tile for document background --

        %body-color-attrs;  -- bgcolor, text, link, vlink, alink --

        >

Пример:

 <body bgcolor=white text=black link=red vlink=maroon alink=fuschia>
bgcolor
Определяет цвет фона для тела документа. См. ниже синтаксис для кодировки таких цветов.
text
Определяет цвет, используемый при выводе на экран текста из данного документа. Обычно используется, когда Вы меняете фоновый цвет с помощью атрибутов BGCOLOR или BACKGROUND.
link
Определяет цвет, который будет использоваться при выводе на экран текста из еще не выбранных вами гипертекстовых связей.
vlink
Определяет цвет, который будет использоваться при выводе на экран текста из уже проверенных вами гипертекстовых связей.
alink
Задает цвет, которым будут выделяться в тексте гипертекстовые связки в тот момент, когда пользователь щелкает по ним клавишей мыши.
background
Определяет адрес URL, откуда будет браться изображение для подготовки фона к текущему документу.

В языке HTML цвета задаются по схеме RGB шестнадцатеричными числами (например как COLOR="#C0FFC0"), либо одним из 16 общепринятых названий для цвета. Первоначально эти цвета были выбраны в соответствии со стандартными 16-ю цветами, которые использовала VGA палитра в системе Windows.

Названия цветов и соответствующие значения RGB
Black = "#000000" Green = "#008000"
Silver = "#C0C0C0" Lime = "#00FF00"
Gray = "#808080" Olive = "#808000"
White = "#FFFFFF" Yellow = "#FFFF00"
Maroon = "#800000" Navy = "#000080"
Red = "#FF0000" Blue = "#0000FF"
Purple = "#800080" Teal = "#008080"
Fuchsia = "#FF00FF" Aqua = "#00FFFF"

Элементы на уровне блоков и текста

Большинство элементов, которые могут появляться в теле документа, подпадают под одну из двух категорий: элементы на уровне блоков, инициирующие переход к следующему параграфу, и элементы на уровне текста, которые этого не делают. Основные элементы на уровне блоков - заголовки (от H1 до H6), параграфы (P), элементы списков (LI), и горизонтальные линейки (HR). Основные элементы на уровне текста - элементы выделения (EM, I, B и FONT), связи для гипертекста (A), вложенные объекты (IMG и APPLET) и концы строк (BR). Заметим, что элементы на уровне блоков обычно выступают как контейнеры для материалов и элементов на уровне текста, а также для других элементов уровня блоков (исключение составляют заголовки и элементы адресации). В то же время внутри элементов текстового уровня могут содержаться лишь элементы того же уровня. Конкретная же модель разметки у каждого элемента своя.

Заголовки


<!--

  There are six levels of headers from H1 (the most important)

  to H6 (the least important).

-->



<!ELEMENT ( %heading )  - -  (%text;)*>

<!ATTLIST ( %heading )

        align  (left|center|right) #IMPLIED

        >

Элементы H1, H2, H3, H4, H5 и H6 используются в документе для разметки заголовков. Всегда нужно указывать как начальный, так и конечный тэги. При этом заголовки, размеченные элементами H1, главенствуют над заголовками, размеченными элементами H2, и так далее вплоть до элементов H6, определяющих в документе заголовки самого нижнего уровеня. В общем случае более главные заголовки и печатаются соответственно большее крупным шрифтом, чем остальные. Для выравнивания текста в рамках заголовка вы можете использовать атрибут ALIGN, например.

  <H1 ALIGN=CENTER> ... центрированный заголовок ... 

</H1>

По умолчанию заголовки в документе выравнивается по левому краю листа, однако это правило можно переопределить посредством включения в документ элементов DIV или CENTER.

ADDRESS

    <!ENTITY % address.content "((%text;) | P)*">



    <!ELEMENT ADDRESS - - %address.content>

При внесении в документ элемента ADDRESS необходимо указывать как начальный, так и конечный тэги, а также такую информацию, как авторство и сведения, необходимые для контакта с автором этого документа. Браузеры конечных пользователей должны воспроизводить содержимое этого элемента в виде отдельного параграфа (или группы параграфов). Заметим, что внутри этого элемента могут содержаться элементы параграфов, простой текст и элементы текстового уровня (имеющие в HTML3.2 DTD запись %text).

Пример:

<ADDRESS>

Newsletter editor<BR>

J.R. Brown<BR>

8723 Buena Vista, Smallville, CT 01234<BR>

Tel: +1 (123) 456 7890

</ADDRESS>

Блочные элементы разметки

P параграфы
Для этого элемента разметки параграфов необходимо указывать начальный тэг, однако при этом конечный тэг может быть всегда опущен. Для выравнивания текста в рамках одного параграфа используйте атрибут ALIGN, например <P ALIGN=RIGHT>
UL неупорядоченные списки
В данном случае обязательно указывать как начальный, так и конечный тэги, а также один или несколько элементов LI, представляющие отдельные пункты списка.
OL упорядоченные (т.е. нумерованные) списки
Здесь также требуется указывать как начальный, так и конечный тэги, а также один или несколько элементов LI, представляющие в списке отдельные пункты.
DL списки определений
Требуется указывать начальный и конечный тэги. В таком списке элементом DT размечается термин, а элементом DD - соответствующее ему определение.
PRE преформатированный текст
Для данного элемента необходимо указывать начальный и конечный тэги. Внутри такого элемента текст печатается шрифтом фиксированной ширины и при этом сохраняется разметка оригинала (пробелы и символы конца строк).
DIV деление документа на отдельные блоки
Для данного элемента необходимо указывать как начальный, так и конечный тэги. Элемент DIV обычно используется с атрибутом ALIGN, указывающим способ выравнивания текста внутри тех блочных элементов, которые его содержат. Элемент ALIGN может иметь одно из следующих значений: LEFT, CENTER или RIGHT.
CENTER выравнивание текста
Для этого элемента необходимо указывать начальный и конечный тэги. Используется для центрирования стоящего между ними текста. Более радикальное решение проблемы выравнивания текстов см. в DIV.
BLOCKQUOTE разметка цитат
Необходимо указывать как начальный, так и конечный тэги. Данный элемент используется при разметке протяженных цитат, текст которых при этом обычно печатается со сдвинутыми краями.
FORM заполняемые формы
Необходимо указывать и начальный, и конечный тэги. Используется для создания заполняемой формы, которая будет обработываться на HTTP сервере. Атрибутами этого элемента могут быть ACTION, METHOD и ENCTYPE. Заполняемые формы не могут быть вложены друг в друга.
ISINDEX примитивные формы HTML
Данный элемент не является контейнером, так что конечный тэг для него использовать нельзя. Подменяет элемент FORM и используется для создания простых форм, имеющих единственное поле под ввод текста. В документе может использоваться только один элемент ISINDEX, появляющийся в заголовке, либо основном тексте.
HR горизонтальные линейки
Не является контейнером, так что использовать конечный тэг нельзя. Может иметь атрибуты ALIGN, NOSHADE, SIZE и WIDTH.
TABLE таблица, может быть вложенной
Требуется указывать начальный и конечный тэги. Каждая таблица начинается с необязательного элемента CAPTION, за которым следует один или несколько элементов TR, формирующих строки таблицы. Каждая строка имеет одну или несколько ячеек, задаваемых элементами TH или TD . Элемент TABLE может иметь атрибуты WIDTH, BORDER, CELLSPACING и CELLPADDING.

Параграфы

    <!ELEMENT P     - O (%text)*>

    <!ATTLIST P

        align  (left|center|right) #IMPLIED

        >

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

Пример:

    <P>Первый параграф.

    <P>Второй параграф.

Обычно параграфы выравниваются по левому краю листа. Указать же другой тип горизонтального выравнивания можно с помощью атрибута ALIGN:

align=left
Параграф, выровненный по левому краю.
align=center
Центрированный параграф.
align=right
Параграф, выровненный по правому краю.

Например:

<p align=center>Это центрированный параграф.

<p align=right>А это параграф, выровненный по правому краю.

По умолчанию текст документа выравнивается по левому краю листа, изменить этот режим разметки можно с помощью элементов DIV или CENTER.

Списки

Пунктами списка в HTML могут быть блочные элементы, элементы на уровне текста, и даже другие списки. Однако в списки не могут быть занесены заголовки и элементы address. Данное ограничение накладывается в HTML 3.2 DTD в записи %flow.

Неупорядоченные списки


    <!ELEMENT UL - -  (LI)+>

    <!ENTITY % ULStyle "disc|square|circle">



    <!ATTLIST UL -- unordered lists --

        type    (%ULStyle)   #IMPLIED   -- bullet style --

        compact (compact)    #IMPLIED   -- reduced interitem spacing --

        >



    <!ELEMENT LI - O %flow -- list item -->

    <!ATTLIST LI

        type   (%LIStyle)    #IMPLIED   -- list item style --

        >

Неупорядоченные списки имеют вид:

    <UL>

      <LI> ... первый пункт списка

      <LI> ... второй пункт списка

      ...

    </UL>

Итак, элемент UL используется для создания неупорядоченных списков. Причем для этого элемента всегда необходимо указывать и начальный и конечный тэги. Для маркировки отдельных пунктов списка используется элемент LI. Конечный же тэг для элемента LI может быть всегда опущен. Заметим, что элементы LI могут содержать вложенные списки. Для того, чтобы заставить программу пользователя печатать списки в более компактном стиле, может дополнительно использоваться атрибут COMPACT.

В элементах UL и LI может использоваться атрибут TYPE, устанавливающий стиль разметки для данного списка. Допустимые значения атрибута - "disc", "square" и "circle". Стиль разметки в общем случае зависит от уровня вложенности данного списка. Примеры значков, предшествующих каждому элементу в списке:

При выборе такого списка ставилась цель обеспечить совместимость с разметкой, которая изначально использовалась в 1993 году программой Mosaic.

Упорядоченные (нумерованные) списки


    <!ELEMENT OL - -  (LI)+>

    <!ATTLIST OL -- ordered lists --

        type      CDATA      #IMPLIED   -- numbering style --

        start     NUMBER     #IMPLIED   -- starting sequence number --

        compact  (compact)   #IMPLIED   -- reduced interitem spacing --

        >



    <!ELEMENT LI - O %flow -- list item -->

    <!ATTLIST LI

        type      CDATA      #IMPLIED   -- list item style --

        value     NUMBER     #IMPLIED   -- set sequence number --

        >

Упорядоченные (или нумерованные) списки имеют следующий вид:

    <OL>

      <LI> ... первый пункт списка

      <LI> ... второй пункт списка

      ...

    </OL>

В элементе OL может использоваться атрибут START, задающий первое число, с которого начнется нумерация пунктов в таком списке (по умолчанию нумерация начинается с первого номера - 1). Вы можете в любой момент изменить порядок нумерации, записав другой атрибут VALUE в любом из элементов LI. Предполагается, что оба из эти атрибута будут иметь значением целое число. Вы не можете запрограммировать разметку так, чтобы каким-либо образом автоматически продолжить текущую нумерацию в следующем списке, либо пропустить несколько номеров (т.е. не задавая явным образом в элементах OL или LI требуемый номер).

Для того, чтобы заставить программу пользователя печатать списки в более компактном стиле, можно воспользоваться атрибутом COMPACT. Атрибут TYPE в элементе OL дает вам возможность выбрать стиль, каким будет осуществляется нумерация списка:

Тип Стиль нумерации
1 арабские числа1, 2, 3, ...
a прописные буквыa, b, c, ...
A заглавные буквыA, B, C, ...
i маленькие римские числаi, ii, iii, ...
I большие римские числаI, II, III, ...

Списки определений


<!-- definition lists - DT for term, DD for its definition -->



<!ELEMENT DL    - -  (DT|DD)+>

<!ATTLIST DL

        compact (compact) #IMPLIED -- more compact style --

        >



<!ELEMENT DT - O  (%text)*>

<!ELEMENT DD - O  %flow;>

Списки определений имеют вид:

  <DL>

    <DT> название термина

    <DD> определение термина

    ...

  </DL>

Заметим, что элементы DT можно использовать только как контейнеры для элементов текстового уровня. Но в то же время внутри DD можно использовать блочные элементы (исключение составляют заголовки и элементы address).

Пример списка определений:

<DL>

<DT>Первый термин<dd>Определение первого термина.

<DT>Второй термин<dd>Определение для второго термина.

</DL>

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

Первый термин
Определение первого термина.
Второй термин
Определение для второго термина.

Чтобы заставить программу пользователя при печати списка определений использовать более компактный стиль, в элементе DL вы можете использовать атрибут COMPACT .

DIR и MENU

<!ELEMENT (DIR|MENU) - -  (LI)+ -(%block)>

<!ATTLIST (DIR|MENU)

        compact (compact) #IMPLIED

        >

Данные элементы были составной частью языка HTML с самых первых дней. Предназначение их - создание неотсортированных списков, подобных тем, что получаются при использовании элемента UL. Программам просмотра было рекомендовано воспроизводить элементы DIR в виде списка из нескольких колонок, а элемент MENU - в виде списка из одной колонки типа меню. На практике же, Mosaic и большинство других браузеров игнорировали это требование и осуществляли разметку элементов DIR и MENU точно так же, как и UL.

Предварительно отформатированный текст

<!ELEMENT PRE - - (%text)* -(%pre.exclusion)>

<!ATTLIST PRE

        width NUMBER #implied

        >

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

Заметим, что согласно стандарту SGML, анализатор гипертекста должен удалять символы конца строки, следующие сразу за начальным тэгом, либо непосредственно предшествующие конечному тэгу.

Элемент PRE имеет ту же самую модель контекста, что и параграф, за исключением графических изображений и элементов, вызывающих изменение размера шрифта, таких как IMG, BIG, SMALL, SUB, SUP и FONT.

Некоторые браузеры имеют возможность использовать атрибут WIDTH, указывающий какой ширины шрифт следует использовать в предварительно отформатированном тексте. Браузер может использовать это значение либо для того, чтобы выбрать соответствующий размер шрифта, либо для того чтобы сделать соответствующий отступ.

Пример использования элемента PRE:

<PRE>

       Higher still and higher

         From the earth thou springest

       Like a cloud of fire;

         The blue deep thou wingest,

And singing still dost soar, and soaring ever singest.

</PRE>
будет воспроизведено как:
       Higher still and higher

         From the earth thou springest

       Like a cloud of fire;

         The blue deep thou wingest,

And singing still dost soar, and soaring ever singest.

Символ горизонтальной табуляции (записываемый в кодировках Unicode, US ASCII и ISO 8859-1 как десятичное число 9) должен интерпретироваться стандартным образом как наименьшее количество пробелов, кратное 8. Использовать этот символ крайне нежелательно, поскольку при редактировании текстов символу табуляции обычно на странице ставятся в соответствие другие позиции, что в свою очередь приводит к неадекватному воспроизведению данного документа другими программами.

XMP, LISTING и PLAINTEXT

<![ %HTML.Deprecated [



<!ENTITY % literal "CDATA"

        -- historical, non-conforming parsing mode where

           the only markup signal is the end tag

           in full

        -->



<!ELEMENT (XMP|LISTING) - -  %literal>

<!ELEMENT PLAINTEXT - O %literal>



]]>

Данные тэги для воспроизведения предварительно отформатированного текста являются устаревшими и использовались до появления элемента PRE. Браузеры еще могут распознавать эти тэги в целях обратной совместимости. Авторам же следует избегать их использования в новых документах!

DIV и CENTER

<!ELEMENT DIV - - %body.content>

<!ATTLIST DIV

        align   (left|center|right) #IMPLIED -- alignment of following text --

        >



<!-- CENTER is a shorthand for DIV with ALIGN=CENTER -->

<!ELEMENT center - - %body.content>

Элементы DIV могут использоваться для разбивки HTML документа на несколько разделов с соблюдением определенной иерархической структоры. Для того, чтобы в пределах такого раздела выравнивание текста по умолчанию осуществлялось определенным образом, внутри соответствующего элемента DIV можно использовать атрибут ALIGN. При этом значением последнего могут быть LEFT, CENTER или RIGHT (причем указанные значения имеют тот же смысл, что и в случае параграфов <P>).

Заметим, что поскольку DIV является блочным элементом, в документе он будет дополнительно играть роль закрывающего тэга для еще открытого элемента P, если таковой имеется. В остальных случаях браузеры конечных пользователей не должны делать разбивку на параграфы до и после элементов DIV. Элемент CENTER полностью эквивалентен элементу DIV с атрибутом ALIGN=CENTER. Для обоих элементов DIV и CENTER надо указывать начальный и конечный тэги.

Элемент CENTER был введен в спецификацию браузера Netscape еще до того, как в HTML 3.0 был внесен выполняющий аналогичную функцию элемент DIV. Затем этот элемент был сохранен и в спецификации HTML 3.2 из-за широко распространения упомянутого браузера.

BLOCKQUOTE

<!ELEMENT BLOCKQUOTE - - %body.content>

Данный элемент используется для разметки цитат, взятых из других источников, причем необходимо указывать как начальный, так и конечный тэги. Часто разметка цитат на практике сводится к созданию дополнительного отступа, например.

They went in single file, running like hounds on a strong scent, and an eager light was in their eyes. Nearly due west the broad swath of the marching Orcs tramped its ugly slot; the sweet grass of Rohan had been bruised and blackened as they passed.

from "The Two Towers" by J.R.R. Tolkien.

FORM


<!ENTITY % HTTP-Method "GET | POST"

        -- as per HTTP specification

        -->



<!ELEMENT FORM - - %body.content -(FORM)>

<!ATTLIST FORM

        action %URL #IMPLIED  -- server-side form handler --

        method (%HTTP-Method) GET -- see HTTP specification --

        enctype %Content-Type; "application/x-www-form-urlencoded"

        >

Элемент FORM используется в языке разметки HTML для создания заполняемых форм. Причем вы можете иметь сразу несколько таких форм в одном и том же документе. Для элемента FORM во всех случаях необходимо писать и начальный, и конечный тэги. (Заметим, что для создания простейших форм Вы также можете воспользоваться элементом ISINDEX). В пределах элемента FORM можно использовать большой набор элементов HTML, кроме того при создании форм вы можете задавать поля несколько типов (текстовые поля в одну или несколько строк, группы радиокнопок, контрольные квадратики, и меню).

Атрибуты элемента FORM:

action
Определяет URL адрес, который используется либо для отправления формы по электронной почте (например, action="mailto:foo@bar.com"), либо для запуска на сервере посредством протокола HTTP специальной программы, обслуживающей данную форму (к примеру, action="http://www.acme.com/cgi- bin/register.pl").
method
Если предыдущий атрибут action задает адрес HTTP-сервера, то атрибут method определяет, какой из HTTP методов будет использоваться для пересылки этому серверу содержимого текущей формы. Это может быть либо GET, либо POST (по умолчанию используется GET).
enctype
Данный атрибут определяет механизм, который следует использовать при кодировании содержания данной формы. По умолчанию используется application/x-www-form- urlencoded.

Остальные подробности касательно работы с формами приводятся в документе RFC 1867.

HR - горизонтальные линейки

В общем случае горизонтальные линейки могут использоваться в документе в том месте, где осуществляется переход от одного обсуждаемого вопроса к другому. В браузерах с речевым интерфейсом такая линейка должна воспроизводиться как пауза в речи.

<!ELEMENT HR    - O EMPTY>

<!ATTLIST HR

        align (left|right|center) #IMPLIED

        noshade (noshade) #IMPLIED

        size  %Pixels #IMPLIED

        width %Length #IMPLIED

        >

Элементы HR не являются контейнерами, так что конечный тэг использовать в этом случае нельзя. Элемент может иметь атрибуты ALIGN, NOSHADE, SIZE и WIDTH:

align
Определяет, сдвинута ли линейка влево, вправо или стоит на текущей строке по центру (атрибуты align=left, align=center или align=right соответственно). По умолчанию линейка центрируется.
noshade
Данный атрибут заставляет программу пользователя закрашивать линейку сплошным цветом, а не делать ее как традиционную двухцветную "выемку".
size
Данный атрибут может использоваться, чтобы необходимо задать в пикселах высоту линейки.
width
Данный атрибут может использоваться когда необходимо указать ширину линейки в пикселах (например width=100), либо как определенный процент от расстояния между левым и правым ограничителями текущей строки (например width="50%"). По умолчанию ширина линейки принимается равной 100 %.

Таблицы

В версию 3.2 языка HTML включен хорошо разработанный набор элементов из спецификации RFC 1942, который может использоваться для разметки табличных материалов, либо при осуществлении еще более сложных вариантов разметки. Заметим, что в последнем случае обычно возникают проблемы при работе с браузерами, ориентированными на голосовой интерфейс, а также с браузерами, работающими исключительно в текстовом режиме.


<!-- horizontal placement of table relative to window -->

<!ENTITY % Where "(left|center|right)">



<!-- horizontal alignment attributes for cell contents -->

<!ENTITY % cell.halign

        "align  (left|center|right) #IMPLIED"

        >



<!-- vertical alignment attributes for cell contents -->

<!ENTITY % cell.valign

        "valign  (top|middle|bottom)  #IMPLIED"

        >



<!ELEMENT table - - (caption?, tr+)>

<!ELEMENT tr - O (th|td)*>

<!ELEMENT (th|td) - O %body.content>



<!ATTLIST table                       -- table element --

        align     %Where;   #IMPLIED  -- table position relative to window --

        width     %Length   #IMPLIED  -- table width relative to window --

        border    %Pixels   #IMPLIED  -- controls frame width around table --

        cellspacing %Pixels #IMPLIED  -- spacing between cells --

        cellpadding %Pixels #IMPLIED  -- spacing within cells --

        >



<!ELEMENT CAPTION - - (%text;)* -- table or figure caption -->

<!ATTLIST CAPTION

        align (top|bottom) #IMPLIED

        >



<!ATTLIST tr                       -- table row --

        %cell.halign;              -- horizontal alignment in cells --

        %cell.valign;              -- vertical alignment in cells --

        >



<!ATTLIST (th|td)                  -- header or data cell --

        nowrap (nowrap)  #IMPLIED  -- suppress word wrap --

        rowspan NUMBER   1         -- number of rows spanned by cell --

        colspan NUMBER   1         -- number of cols spanned by cell --

        %cell.halign;              -- horizontal alignment in cells --

        %cell.valign;              -- vertical alignment in cells --

        width   %Pixels  #IMPLIED  -- suggested width for cell --

        height  %Pixels  #IMPLIED  -- suggested height for cell --

        >

В общем случае таблицы имеют следующий вид:

  <TABLE BORDER=3 CELLSPACING=2 CELLPADDING=2 WIDTH="80%">

  <CAPTION> ... заголовок таблицы ... </CAPTION>

  <TR><TD> первая клетка таблицы <TD> вторая клетка

  <TR> ...

  ...

  </TABLE>

У элемента TABLE нет обязательных атрибутов. По умолчанию таблица печатается без рамки. Разметка таблицы в общем случае осуществляется автоматически в соответствии с объемом содержащейся в ней информации, однако у автора всегда имеется возможность самому выбрать ширину таблицы, воспользовавшись атрибутом WIDTH. Дополнительный контроль над процессом разметки (таблицы) достигается также через атрибуты BORDER, CELLSPACING и CELLPADDING. Заголовки таблицы (CAPTION) выравниваются по верхнему или нижнему краю таблицы в зависимости от атрибута ALIGN.

В таблице каждый ряд ячеек содержит открывающий тэг элемента TR, хотя соответствующий закрывающий тэг всегда может быть опущен. Отдельные клетки таблицы размечаются элементом TD, если это данные, и элементом TH, если это заголовки. Как и в случае с TR, эти элементы являются контейнерами и могут быть записаны без указания закрывающего тэга. Элементы TH и TD могут иметь несколько атрибутов: ALIGN и VALIGN для выравнивания содержимого ячейки, ROWSPAN и COLSPAN для нестандартных ячеек, простирающихся на несколько рядов или колонок. В отдельной ячейке таблицы можно размещать самые разнообразные элементы разметки как блочного, так и текстового уровня, включая поля заполняемых форм и даже целые новые таблицы.

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

align
Данный атрибут принимает одно из следующих значений: LEFT, CENTER или RIGHT (используемый при этом регистр значения не имеет). Указывает для текущей таблицы, каким образом при разметке осуществляется ее горизонтальное выравнивание. По умолчанию выполняется выравнивание таблицы по левой границе листа, однако это правило можно переопределить посредством элементов DIV или CENTER.
width
В отсутствии данного атрибута ширина таблицы определяется автоматически в соответствии с объемом содержащегося в ней материала. Однако посредством атрибута WIDTH вы можете сами задать ширину таблицы либо в пикселах (например WIDTH=212), либо как процент от расстояния между левой и правой границами экрана (например WIDTH="80%" ).
border
Этот атрибут позволяет задавать для таблицы ширину внешней рамки - в пикселах (например, BORDER=4). Данному атрибуту может быть также присвоено значение нуль, чтобы полностью отказаться от внешней рамки. Рамка таблицы не рисуется также, если атрибут border вообще отсутствует в разметке. Заметим, что некоторые из браузеров способны воспринимать также конструкцию <TABLE BORDER>, считая ее семантически эквивалентной атрибуту BORDER=1.
cellspacing
В традиционных настольных издательских системах смежные ячейки в таблице имеют общую границу. В языке HTML это не так. Каждая ячейка имеет собственную границу, отделенную промежутком от границ соседних ячеек. Ширину этого промежутка в писелах можно устанавливать посредством атрибута CELLSPACING, (например CELLSPACING=10). То же самое значение определяет расстояние между общей границей таблицы и границами крайних ячеек.
cellpadding
Данный атрибут устанавливает для каждой ячейки в таблице расстояние в пикселах между рамкой ячейки и содержащимся в ней материалом.

Элемент CAPTION может иметь только один атрибут - ALIGN, который может принимать два значения: ALIGN=TOP или ALIGN=BOTTOM. Посредством этого атрибута можно выбирать, помещать ли заголовок над таблицей или, соответственно, под ней. Большинство браузеров по умолчанию ставит заголовок над таблицей. Для элемента CAPTION необходимо всегда указывать начальный и конечный тэги. Содержание заголовка должно ограничиваться простым текстом и элементами текстового уровня, задаваемыми объектом %text. Использование блочных элементов в этом случае недопустимо.

Для TR - элемента, начинающего новый ряд таблицы - необходимо указывать начальный тэг, однако всегда можно опустить конечный тэг. Элемент TR выступает в роли контейнера для ячеек таблицы и может иметь два атрибута:

align
Устанавливает стиль горизонтального выравнивания для содержимого ячейки, который будет использоваться по умолчанию. Атрибут может принимать одно из следующих значений (независимо от используемого регистра): LEFT, CENTER или RIGHT и выполняет ту же самую роль, что и атрибут ALIGN при разметке параграфов.
valign
Данный атрибут может использоваться при выборе правила, согласно которому - если нет других указаний - будет осуществляться вертикальное выравнивание во всех ячейках данной строки. Атрибут может принимать одно из следующих значений (независимо от используемого регистра): TOP, BOTTOM или MIDDLE. При этом содержимое ячейки будет, соответственно, выравниваться по ее верхнему или нижнему краю, либо посередине.

Для разметки таблицы на уровне ячеек предусмотрено уже два элемента: элемент TH используется для разметки заголовков, а TD - для ячеек с данными. Такое разграничение позволяет программам пользователей оформлять заголовок таблицы и данные разными шрифтами, а кроме того улучшает работу браузеров, использующих речевой интерфейс. Для элементов TH и TD всегда необходимо указывать начальные тэги, конечные же всегда могут быть опущены. При разметке ячеек таблицы могут использоваться следующие атрибуты:

nowrap
В присутствии этого атрибута блокируется автоматический перенос слов в пределах текущей ячейки (например в случае <TD NOWRAP>). Действие этого атрибута эквивалентно использованию в ячейке объектов &nbsp;, создающих неотменяемые пробелы.
rowspan
Данный атрибут имеет значением положительное целое число, определяющее количество рядов, на которые простирается данная ячейка. Этому атрибуту по умолчанию присваивается значение 1.
colspan
Данный атрибут имеет значением положительное целое число, определяющее количество колонок, на которые простирается данная ячейка. По умолчанию атрибуту присваивается значение 1.
align
Определяет выполняемое по умолчанию правило горизонтального выравнивания для содержимого текущей ячейки, тем самым отменяя действие атрибута ALIGN, задаваемого при общей разметке текущего ряда ячеек. При этом используются все те же самые значения: LEFT, CENTER и RIGHT. Если атрибут ALIGN для данной ячейки не был указан, то по умолчанию для элементов <td> выполняется выравнивание по левому краю, а для элементов <th> - центрирование. Напомним, что вы можете отменить это правило, задав трубуемый атрибут ALIGN в элементе TR.
valign
Определяет способ вертикального выравнивания для содержимого текущей ячейки, отменяя тем самым действие атрибута VALIGN, заданного при общей разметке данного ряда таблицы. Использует при этом те же самые значения: TOP, MIDDLE и BOTTOM. Если для данной ячейки атрибуту VALIGN вы не присвоили какого-либо значения, то по умолчанию для нее осуществляется выравнивание по центру. Те не менее вы можете изменить такое правило, задав нужный атрибут VALIGN в элементе TR.
width
Задает ширину площадки, отводимой под содержимое данной ячейки, в пикселах и без учета ширины границ. Как правило, при разметке будет использоваться предложенное здесь значение за исключением тех случаев, когда оно начинает вступать в противоречие с минимальной шириной остальных ячеек в той же самой колонке.
height
Задает высоту площадки, отводимой под содержимое данной ячейки, в пикселах и без учета ширины границ. Как правило, при разметке будет использоваться предложенное здесь значение за исключением тех случаев, когда оно начинает вступать в противоречие с минимальной высотой других ячеек в той же самой колонке.

Таблицы обычно рисуются в виде некой рельефной поверхности, приподнимающейся над поверхностью листа и имеющей внешние скошенные края. Далее на этой поверхности размещаются уже отдельные ячейки таблицы. Границы вокруг конкретной ячейки рисуются только в том случае, если она имеет некое содержание. Пустые ячейки в разметке не участвуют за исключением случаев, когда в них используется объект &nbsp;.

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

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

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

Минимальная и максимальная ширина вложенных таблиц дает вклад в минимальную и максимальную ширину ячейки, куда они помещены. Как только ширина для таблицы верхнего уровня становится известной, в ней может быть произведен расчет колонок. Далее появляется возможность назначить ширину для вложенных таблиц и, следовательно, рассчитать ширину колонок и для них. Если это возможно, всем колонкам должна назначаться по крайней мере их минимальная ширина. При этом предлагается, что оставшееся после этой процедуры свободное место будет также распределено между колонками, но уже пропорционально разнице между максимальной и требуемой минимальной шириной каждой из них.

Заметим, что указываемые в пикселах ширина и высота относятся к изображению на экране и должны умножаться на определенный множитель при подготовке к печати на устройствах с очень высоким решением (таких как лазерные принтеры). Например, если программа пользователя выводит изображение на дисплей с разрешением 75 пикселов на дюйм и при этом печатает его же на лазерном принтере с разрешением 600 точек в дюйм, то в последнем случае значения в пикселах, заданные в атрибутах разметки HTML, должны быть умножены на 8.


Элементы текстового уровня

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

Элементы, задающие шрифт, используемый при разметке документа

Для всех элементов данного класса требуется указывать как начальный, так и конечный тэг, например.

  Это некий <B>жирный текст</B>.

Элементы текстового уровня, если в этом есть необходимость, должны быть вложены правильным образом - следующий пример иллюстрирует ошибку:

  Это некий <B>жирный и <I></B>наклонный текст</I>.
Браузеры должны стараться максимально точно следовать указаниям вложенных элементов разметки, осуществляющих выделение, например.
  Это некий <B>жирный и <I>наклонный текст</I></B>.

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

TT телетайпный текст или текст фиксированной ширины
I стиль с наклонным шрифтом
B стиль с жирным шрифтом
U стиль с подчеркиванием текста
STRIKE стиль с перечеркиванием текста
BIG печать текста шрифтом увеличенного размера
SMALL печать текста шрифтом уменьшенного размера
SUB печать текста со сдвигом вниз (нижний индекс)
SUP печать текста со сдвигом вверх (верхний индекс)

Замечание: в будущих версиях языка HTML элемент STRIKE может быть заменен на более краткий тэг "S", введенный в HTML версии 3.0.

Элементы разметки фраз

Для всех элементов данного класса необходимо указывать как начальный тэг, так и конечный, например.

  Это некий <EM>выделенный текст</EM>.
EM основной элемент, используемый в HTML для выделения текстов, обычно реализуется с привлечением наклонного шрифта
STRONG усиленное выделение, обычно реализуемое посредством жирного шрифта
DFN дает пример для обсуждаемого термина (понятия)
CODE используется для выделения программного кода
SAMP используется при предоставлении в документе распечаток программ, программных сценариев и т.д.
KBD используется для выделения текста, который пользователь должен набрать на клавиатуре
VAR используется для обозначения переменных, либо аргументов, передаваемых с командами
CITE используется для обозначения цитат или ссылок на другие источники

Поля заполняемых форм

В пределах элемента FORM разрешается использовать только INPUT, SELECT и TEXTAREA. Элемент INPUT может использоваться в заполняемых формах для разметки самых разнообразных типов полей, включая поля с одной строкой текста, поля для ввода паролей, контрольные ящички, радиокнопки, кнопки подтверждения и перезагрузки, скрытые поля формы, поля для загрузки файлов, а также кнопки с изображениями. Элементы SELECT используются для разметки меню с единственным или множественным выбором. Элементы TEXTAREA используются для разметки полей, изначально содержащих несколько строк текста. Текст, помещенный в такой элементе при разметке, используется затем при инициализации соответствующего поля.

INPUT текстовые поля, радиокнопки, контрольные ящички, ...

Элементы INPUT не являются контейнерами, так что закрывающий тэг использовать в этом случае не разрешается.


<!ENTITY % InputType

        "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT

            | RESET | FILE | HIDDEN | IMAGE)">



<!ELEMENT INPUT - O EMPTY>

<!ATTLIST INPUT

        type %InputType TEXT     -- what kind of widget is needed --

        name  CDATA #IMPLIED     -- required for all but submit and reset --

        value CDATA #IMPLIED     -- required for radio and checkboxes --

        checked (checked) #IMPLIED -- for radio buttons and check boxes --

        size CDATA  #IMPLIED     -- specific to each type of field --

        maxlength NUMBER #IMPLIED

        src   %URL  #IMPLIED     -- for fields with background images --

        align  (top|middle|bottom|left|right) top -- image alignment --

        >
type
Конкретизирует тип поля, используемого под ввод данных:

type=text (по умолчанию)
Создает поле ввода под одну строку текста, чей размер можно устанавливать посредством атрибута size (например атрибут size=40 задает поле длиной, достаточной для прямого ввода 40-а символов). При этом браузер должен предоставлять пользователю возможность ввести в подобное поле строку текста, чей размер превышает указанный предел. На практике это должно осуществляться посредством автоматического скроллинга текста, когда курсор выходит за рамки видимого поля. Посредством атрибута maxlength вы можете наложить уже настоящее ограничение на максимальное количество символов, которое можно ввести в данное поле. Для присвоения некого имени данному полю может использоваться атрибут name, а атрибут value задает некую строку инициализации, которая при загрузке документа будет изначально печататься в этом поле:
    <input type=text size=40 name=user value="ваше имя">
type=password
В основном подобен атрибуту type=text, однако в данном случае вводимые символы отображаются на экране в виде условных значков, таких как *. Делается это с тем, чтобы скрыть текст от любопытных глаз при входе паролей с клавиатуры. Вы можете точно так же, как и в случае обычных текстовых полей, воспользоваться атрибутами size и maxlength для наложения ограничений на количество символов, отображаемых на экране компьютера в даном поле, и на фактическую длину вводимой строки текста:
    <input type=password size=12 name=pw>
type=checkbox
Данный тип используется для ввода в заполняемую форму простых значений булевого типа ("да"/"нет"), либо для ввода некой величины, которая одновременно может характеризоваться по нескольким позициям. Последний вариант реализуется в форме в виде нескольких полей - контрольных ящичков, имеющих один и тот же атрибут name и различные атрибуты value. Каждый активированный в ходе заполнения контрольный ящичек генерирует отдельную пару "название/значение" в соответствующем поле данных, даже если это приводит к дублированию имен. Для изначальной установки некоторого ящичка в состояние "активированно" используйте атрибут checked.
    <input type=checkbox checked name=uscitizen value=yes>
type=radio
Используется для ввода в форму некого параметра, являющегося результатом однозначного выбора из определенного набора альтернатив. Последним при разметке ставится в соответствие группа "радиокнопок", в каждую из которых должен быть записан один и тот же атрибут name. В радиокнопках обязательно следует указывать также и атрибут value. При заполнении формы среди некой группы радиокнопок только активированная генерирует пару "название/значение" в соответствующем поле данных. В каждой группе радиокнопок одна должна быть изначально активирована посредством атрибута checked.

    <input type=radio name=age value="0-12">

    <input type=radio name=age value="13-17">

    <input type=radio name=age value="18-25">

    <input type=radio name=age value="26-35" checked>

    <input type=radio name=age value="36-">

type=submit
Посредством этого типа создается кнопка, по которой пользователь может щелкнуть клавишей мыши, желая предоставить содержимое формы на соответствующий сервер. Надпись на кнопке задается с помощью атрибута value. Если к тому же задан атрибут name, то в передаваемую на сервер информацию дополнительно включается пара данных "название кнопки/значение". В одну и ту же форму вы можете поместить несколько кнопок, инициирующих передачу данных. См. в пункте type=image как создавать графический вариант для подобных кнопок.
    <input type=submit value="Принадлежность к ...">
type=image
Данный атрибут используется при создании графического образа для кнопок, инициирующих передачу данных. URL для соответствующего изображения задается посредством атрибута src. Выравнивание картинки осуществляется согласно значению атрибута align. В этом отношении графические изображения кнопок подобны элементам IMG, так что вы можете точно так же осуществлять их выравнивание по правому, верхнему, нижнему краю, либо ставить их по центру. При передаче данных серверу сообщаются координаты x и y той точки на изображении, где был произведен щелчок клавишей мыши. При этом информация о поле типа image записывается в виде двух пар значений "название/величина". "название" получается посредством добавления к названию соответствующего поля image суффикса ".x" в случае абсциссы, и ".y" в случае ординаты:
<p>Теперь укажите точку на следующей карте:



    <input type=image name=point src="map.gif">

Замечание: Воспроизведение графических полей обычно сопровождается проблемами в случае с браузерами, работающими с текстовом режиме, и в случае браузеров, имеющих речевой интерфейс!

type=reset
Посредством этого атрибута создается кнопка, по которой можно щелкнуть клавишей мыши, чтобы вернуть все поля формы в исходное состояние, когда документ был еще только загружен в браузер. Вы можете выбрать для этой кнопки ту или иную надпись, воспользовавшись атрибутом value. Информация о кнопке перезагрузки никогда не включаются в набор сведений, пересылаемых на сервер после заполнения формы.
    <input type=reset value="Инициирует пере...">
type=file
Дает пользователям возможность дополнить содержимое текущей формы неким файлом. При разметке этого элемента обычно создается поле для ввода текста, к которому прилагается кнопка. Щелчок по этой кнопке приводит к раскрытию нового окошка, где можно просмотреть имеющиеся файлы, и выбрать один из них. Имя файла можно также ввести непосредственно в исходном текстовом поле. Точно так же, как и в случае type=text, вы можете использовать здесь атрибут size, чтобы выбрать ширину данного поля формы (единицей измерения здесь служит средняя ширина символов). Вы можете также установить верхний предел для длины вводимого имени файла посредством атрибута maxlength. Некоторые браузеры имеют возможность накладывать ограничения и на тип выбираемых файлов в соответствии со списком в стиле MIME (через запятую), заданным в атрибуте ACCEPT. Например, в случае accept="image/*", выбор файлов ограничен графическими изображениями. Дополнительную информацию можно найти в RFC 1867.
    <input type=file name=photo size=20 accept="image/*">
type=hidden
Поля, записываемые с этим атрибутом, не должны появляться на экране монитора, что дает возможность размещать на серверах в рамках некой формы секретную информацию. Когда заполненная форма предоставляется серверу, данная информация передается посредством пары "название/величина", создаваемой соответствующими атрибутами. Данный вопрос связан с безопасностью протокола HTTP. Другой подход к данной задаче связан с использованием в рамках HTTP механизма "Cookies".
    <input type=hidden name=customerid value="c2415-345-8563">
name
Используется при выборе названия для данного поля, которое впоследствии будет использоваться для его идентифицикации во время передачи сведений на сервер.
value
Используется при инициализации данного поля, либо задает текстовый заголовок для кнопок (передачи введенных данных на сервер, либо повторной инициализации формы).
checked
Данный атрибут первоначально используется для установки контрольных ящичков и радиокнопок в состояние "активировано".
size
Используется при выборе размера для создаваемых текстовых полей, единица измерения - средняя ширина символов. Например, size=20
maxlength
Задает максимальное количество символов, которые можно ввести в текстовом поле.
src
Задает URL-адрес картинки, используемой при создании графической кнопки, инициирующей передачу данных.
align
Указывает способ выравнивания для графических кнопок, инициирующих передачу данных. Полностью аналогичен атрибуту align элемента IMG и может принимать одно из следующих значений: top, middle, bottom, left или right, по умолчанию считается, что этот атрибут имеет значение bottom.

меню SELECT


<!ELEMENT SELECT - - (OPTION+)>

<!ATTLIST SELECT

        name CDATA #REQUIRED

        size NUMBER #IMPLIED

        multiple (multiple) #IMPLIED

        >



<!ELEMENT OPTION - O (#PCDATA)*>

<!ATTLIST OPTION

        selected (selected) #IMPLIED

        value  CDATA  #IMPLIED -- defaults to element content --

        >

Элемент SELECT создает в заполняемой форме меню типа "выбор одного пункта из многих", либо "несколько пунктов из многих". Элемент SELECT должен содержать начальный и конечный тэги, а также один или несколько элементов OPTION, описывающих отдельные пункты меню. Меню типа "один из многих" обычно реализуется как выпадающее меню, в то время как меню типа "несколько из многих" обычно предстает в виде списка с контрольными ящичками против каждого пункта.

Пример:

    <SELECT NAME="вкус">

    <OPTION VALUE=a>Ваниль

    <OPTION VALUE=b>Клубника

    <OPTION VALUE=c>Ром and Изюм

    <OPTION VALUE=d>Персик and Апельсин

    </SELECT>

Атрибуты элемента SELECT:

name
Сообщает название для данного качества, которое затем будет использоваться во время передачи данных на сервер, чтобы указать, какие пункты в меню выбрал читатель. Каждый выбранный пункт меню ассоциируется с парой значений "название/величина", которая заносится в заполняемую форму.
size
В меню типа "несколько из многих" устанавливает количество одновременно видимых пунктов.
multiple
Наличие этого атрибута говорит о том, что в данном меню пользователи могут сразу выбрать несколько пунктов. По умолчанию же предоставляется возможность выбрать только один пункт.

Атрибуты элемента OPTION:

selected
Если для элемента OPTION указан атрибут selected, то соответствующий этому элементу пункт меню уже при загрузке документа изначально помечается как выбранный. Однако если в меню типа "один из нескольких" изначально таким образом помечено более одного пункта, то это будет ошибкой.
value
Задает некое значение, которое соответствует данному пункту меню и впоследствии может быть представлено наряду с другими сведениями о содержимом заполненной формы. В последнем случае это значение будет объединено с названием соответствующего свойства, указанным ранее в элементе SELECT посредством атрибута name.

Поля для ввода нескольких строк текста TEXTAREA


<!-- Multi-line text input field. -->



<!ELEMENT TEXTAREA - - (#PCDATA)*>

<!ATTLIST TEXTAREA

        name CDATA #REQUIRED

        rows NUMBER #REQUIRED

        cols NUMBER #REQUIRED

        >

Для элементов TEXTAREA необходимо указывать как начальный, так и конечный тэги. Содержимое данного элемента должно ограничиваться лишь текстом и объектами-символами. Обычно содержит текст инициализации, который при загрузке документа изначально будет записываться в данное поле.

Пример:


    <TEXTAREA NAME=address ROWS=4 COLS=40>

    Ваш адрес ...

    </TEXTAREA>

Браузерам конечных пользователей рекомендуется, подготавливая информацию такого поля к передаче на сервер, обозначать концы строк в виде пары символов CR и LF (в кодах ASCII это десятичные числа 13 и 10). В данных, представляемых на сервер, должен использоваться набор символов ISO Latin-1, если о сервере заранее не сообщается, что он может работать и с другими наборами символов.

name
Определяет название, которое будет использовано для идентификации данного поля textarea при предоставлении заполненной формы на сервер.
rows
Задает количество строк текста, видимых на экране. Пользователям должна быть предоставлена возможность ввести большее количество строк, чем задано этим параметром, так что браузеры конечных пользователей должны иметь некие средства для прокрутки содержимого поля textarea в случаях, когда текст уходит за пределы видимой области.
cols
Определяет ширину создаваемого текстового поля (единицей измерения служит средняя ширина символов). Пользователи должны тем не менее иметь возможность ввести строку текста гораздо большей длины, поэтому браузеры конечных пользователей должны иметь некие средства для прокрутки содержимого поля textarea в горизонтальном направлении, когда строка уходит за пределы видимой области. Программы конечных пользователей могут также автоматически разбивать длинные строки текста на несколько более коротких, зато целиком видимых на экране компьютера, тем самым устраняя надобность в подобных средствах горизонтальной прокрутки.

Специальные элементы текстового уровня

A (анкер), IMG, APPLET, FONT, BASEFONT, BR and MAP.

Элемент A (анкер)


<!ELEMENT A - - (%text)* -(A)>

<!ATTLIST A

        name    CDATA   #IMPLIED    -- named link end --

        href    %URL    #IMPLIED    -- URL for linked resource --

        rel     CDATA   #IMPLIED    -- forward link types --

        rev     CDATA   #IMPLIED    -- reverse link types --

        title   CDATA   #IMPLIED    -- advisory title string --

        >

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

   Путь к <a href="hands-on.html">счастью</a>.

и

   <h2><a name=mit>545 Tech Square - Рай для 

хакеров</a></h2>
name
Этот атрибут должен одной строкой уникальным образом характеризовать данное место в текущем HTML-документе. Атрибут NAME используется для того, чтобы связать с конкретной частью документа некое название, которое в дальнейшем можно было бы использовать в составе различных URL-указателей, направляющих читателя именно в эту область.
href
Задает некую URL-конструкцию, выступающую в роли сетевого адреса для ресурса, соответствующего данному анкеру. Таким ресурсом может быть другой HTML документ, файл PDF, картинка и т.д.
rel
Прямая ссылка, известная также как "тип связи". Может выступать в качестве инструкции, как поступать с конкретным ассоциированным ресурсом при выдаче на печать информационных ресурсов Сети, связанных с нашим документом посредством гипертекстовых связей.
rev
Определяет обратную связь. Так связь документа A с документом B посредством анкета с атрибутом REV=relation означает те же самое, что и связь B с A посредством анкера с атрибутом REL=relation. Так в некоторых случаях для идентификации автора документа используется атрибут REV=made (сообщающий адрес его электронной почты посредством URL типа mailto, либо дающий ссылку на домашную страницу этого человека).
title
Предоставляемое для справки название (title) ассоциированного ресурса.

IMG - встроенные изображения

<!ENTITY % IAlign "(top|middle|bottom|left|right)">



<!ELEMENT IMG    - O EMPTY --  Embedded image -->

<!ATTLIST IMG

        src     %URL     #REQUIRED  -- URL of image to embed --

        alt     CDATA    #IMPLIED   -- for display in place of image --

        align   %IAlign  #IMPLIED   -- vertical or horizontal alignment --

        height  %Pixels  #IMPLIED   -- suggested height in pixels --

        width   %Pixels  #IMPLIED   -- suggested width in pixels --

        border  %Pixels  #IMPLIED   -- suggested link border width --

        hspace  %Pixels  #IMPLIED   -- suggested horizontal gutter --

        vspace  %Pixels  #IMPLIED   -- suggested vertical gutter --

        usemap  %URL     #IMPLIED   -- use client-side image map --

        ismap   (ismap)  #IMPLIED   -- use server image map --

        >

Данный элемент используется в документе HTML для вставки различных изображений. Элемент IMG не является контейнером, так что использовать здесь закрывающий тэг не разрешается. Изображение может смещаться по вертикали относительно текущей строки текста, либо ставиться с левого или правого края. См. описание атрибута CLEAR в элементе BR, диктующего как тексту следует "обтекать" подобные изображения.

например,  <IMG SRC="canyon.gif" ALT="Большой Каньон">

Элементы IMG могут иметь следующие атрибуты:

src
Данный атрибут необходимо указывать для каждого элемента IMG. Определяет URL-адрес того источника, откуда берется изображение, например это может быть графический файл типа GIF, JPEG или PNG.
alt
Используется в качестве текстового описания к данному изображению и совершенно необходим для взаимодействия с браузерами, ориентированными на речевой интерфейс либо работающими исключительно в текстовом режиме.
align
Определяет, как будет позиционироваться данное изображение относительно строки текста, в которую оно помещено:

align=top
Ставит на один уровень верхний край изображения и верхнюю границу текущей строки. Разработчики браузеров расходятся в том, как интерпретировать этот атрибут. Некоторые из браузеров принимают во внимание лишь строку текста, стоящую перед элементом IMG, и игнорируют все, что стоит за ним.
align=middle
Ставит базовую линию текущей строки вровень с центром изображения.
align=bottom
Используется по умолчанию и выравнивает нижнюю часть изображения по базовой линии текущей строки.
align=left
Ставит изображение с левого краю. При этом левый маркер разметки временно смещается так, чтобы текст, следующий за изображением, "обтекал" его по правому краю. Описанный здесь алгоритм компоновки изменяется в присутствии любого текста, выровненного по левому краю, либо любой другой картинки, оказавшейся при разметке прямо перед нашим изображением. При наличии такого текста (но не картинки) изображения, подлежащие выравниванию по левому краю, как правило, переносятся на новую строку, а текст, следующий за всем этим, печатается опять на прежнем уровне.
align=right
Смещает картинку к правому краю страницы. Затем правый маркер разметки временно передвигается так, чтобы текст, выводимый на экран вслед за картинкой, обтекал ее по левому краю. На предложенную здесь схему разметки влияет наличие любого выровненного по правому краю текста или другой картинки, оказавшейся при разметке перед нашим изображением. При наличии такого текста (но не картинки) изображение, подлежащее выравниванию по правому краю, как правило, смещается вниз на новую строку, а следующий за этим изображением текст продолжает печататься на прежнем уровне.

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

width
Задает в пикселах ширину изображения. Если этот атрибут указан одновременно с атрибутом height, то это дает возможность браузеру для очередного изображения заранее зарезервировать место на экране, еще до того, как сама картинка будет доставлена ему 1по сети.
height
Задает в пикселах высоту изображения. Если этот атрибут указан одновременно с атрибутом width, то это позволяет браузеру заранее резервировать место на экране для очередного изображения, еще до того, как последнее будет доставлено по сети.
border
Если элемент IMG участвует в разметке как составная часть некой гипертекстовой связи, то браузеры, как правило, будут отмечать это обстоятельство, рисуя цветную рамку вокруг подобной картинки (обычно синего цвета). Атрибутом border можно воспользоваться, желая выбрать определенную ширину для подобной рамки (в пикселах). Если же необходимо полностью избавиться от рамки, укажите border=0. Браузеры конечных пользователей должны иметь дополнительные средства, напоминающие им, что над данным изображением можно щелкать клавишей мыши. Например, это может быть изменение формы указателя мыши при попадании на подобное изображение.
hspace
Данный атрибут может использоваться для того, чтобы слева и справа от изображения оставлять чистые поля. Ширину этих полей (в пикселах) как раз и задает атрибут HSPACE. По умолчанию считается, что атрибут HSPACE имеет малое, но все же ненулевое значение.
vspace
Данный атрибут может использоваться для того, чтобы над и под текущим изображением создавать чистые поля. Занчение атрибута VSPACE указывает ширину этих полей (в пикселах). По умолчанию считается, что атрибут VSPACE имеет малое, но все же ненулевое значение.
usemap
Может использоваться для того, чтобы сообщить браузеру URL-идентификатор фрагмента навигационной карты, создаваемой элементом MAP на компьютере клиента.
ismap
Если элемент IMG является составной частью гипертекстовой связи и пользователь щелкает клавишей мыши над соответствующим изображением, то атрибут ISMAP заставляет браузер передавать на сервер координаты точки, где был произведен щелчок. Реализация данного механизма встречается с проблемами в случае браузеров с чисто текстовым и речевым интерфейсом. Там, где это возможно, вместо ISMAP используйте элемент MAP.

В следующем примере показано, как пользоваться атрибутом ISMAP:

<a href="/cgibin/navbar.map"><img src=navbar.gif ismap 

border=0></a>

Передача серверу координат точки, где произведен щелчок, осуществляется следующим образом. Браузер конечного пользователя сам конструирует новый адрес URL, отталкиваясь от старого URL, заданного в атрибуте HREF. Делает он это, добавляя в конце символ "? ", координату X, запятую ", " и координату Y соответствующей точки (единицей измерения служит пиксел). Затем осуществляется переход на созданый таким образом адрес URL. Например, если пользователь щелкнул клавишей мыши по точке с координатами x=10 и y=27, то будет создан следующий URL: "/cgibin/navbar.map?10,27". Обычно удачным оказывается подход, когда окружающая изображение цветная рамка удаляется, а вместо этого используются другие чисто графические элементы, показывающие, что по данному изображению можно щелкать клавишей мыши.

Заметим, что что когда мы говорим о пикселах, мы имеем ввиду пикселы на экране монитора, и указываемые при разметке значения должны умножаться на соответствующий коэффициент при воспроизведении соответствующих изображений на устройствах с очень высоким разрешением, например при распечатке на лазерных принтерах. Например, если браузер пользователя имеет на дисплее монитора разрешение 75 пикселов на дюйм, то при передаче этой информации на лазерный принтер с разрешением 600 точек на дюйм, величины, указанные при разметке HTML-страниц в пикселах, должны умножаться на коэффициент 8.

APPLET (Апплеты Java)


<!ELEMENT APPLET - - (PARAM | %text)*>

<!ATTLIST APPLET

        codebase %URL     #IMPLIED   -- code base --

        code     CDATA    #REQUIRED  -- class file --

        alt      CDATA    #IMPLIED   -- for display in place of applet --

        name     CDATA    #IMPLIED   -- applet name --

        width    %Pixels  #REQUIRED  -- suggested width in pixels --

        height   %Pixels  #REQUIRED  -- suggested height in pixels --

        align    %IAlign  #IMPLIED   -- vertical or horizontal alignment --

        hspace   %Pixels  #IMPLIED   -- suggested horizontal gutter --

        vspace   %Pixels  #IMPLIED   -- suggested vertical gutter --

        >



<!ELEMENT PARAM - O EMPTY>

<!ATTLIST PARAM

    name    NMTOKEN   #REQUIRED  -- The name of the parameter --

    value   CDATA     #IMPLIED   -- The value of the parameter --

    >

Для данного элемента необходимо указывать и начальный, и конечный тэги. Поддерживается всеми браузерами, имеющими поддержку для языка Java. Данный элемент позволяет включать апплеты Java прямо в HTML-документы. Для передачи параметров такому апплету в блок APPLET должны заноситься соответствующие элементы PARAM. Вслед за элементами PARAM в теле APPLET-а должна даваться альтернативная информация для тех браузеров, которые не имеют средств для поддержки языка Java. При этом подобная информация должна ограничиваться элементами разметки на уровне текста, указанными в блоке %text в DTD. Java-совместимые браузеры игнорируют указанный дополнительный блок информации, написанный на языке HTML. Вы можете также использовать описанную возможность для контроля за ходом выполнением апплета, публикуя здесь текст, поясняющий его действия. Среди других возможных применений альтернативного блока информации - переадресация читателя на страницу с разметкой, более приемлимой для браузеров, не имеющих поддержки языка Java, либо просто распечатка очередной колкости в адрес пользователя, не имеющего Java-совместимого браузера.

Простой пример использования Java-апплета:


    <applet code="Bubbles.class" width=500 height=500>

    Java апплет, рисующий движущиеся пузыри.

    </applet>

Другой пример, где уже задействован элемент PARAM:


    <applet code="AudioItem" width=15 height=15>

    <param name=snd value="Hello.au|Welcome.au">

    Java апплет, исполняющий мелодию приглашения.

    </applet>

codebase = codebaseURL
Необязательный атрибут, задающий для данного апплета базовый URL-адрес. Это может быть каталог или папка, где содержится его код. Если же данный атрибут не указан, то в качестве базового используется URL-адрес самого HTML-документа.

code = appletFile
Обязательный атрибут, сообщающий название файла, где находится скомпилированный подкласс Applet, используемый в данном апплете. Указываемый в атрибуте адрес не является абсолютным, а отсчитывается начиная с базового URL-адреса текущего апплета.

alt = alternateText
Необязательный атрибут, содержащий некий текст, который должен быть выведен на экран, если браузер пользователя понимает тэг APPLET, но не может по каким-либо причинам запускать на выполнение апплеты Java.

name = appletInstanceName
Необязательный атрибут, дающий название данному апплету. Последнее позволяет любым апплетам, находящимся на одной и той же странице, находить друг друга (и взаимодействовать).

width = пикселов
height = пикселов
Обязательные атрибуты, определяющие (в пикселах) исходные ширину и высоту окна, в котором будет работать данный апплет. Это не относится к другим рабочим и диалоговым окнам, генерируемым уже в ходе выполнения апплета.

align = alignment
Обязательный атрибут, указывающий способ выравнивания для данного апплета. Возможные значения этого атрибута - те же самые (и с тем же результатом), что и для элемента IMG: top, middle, bottom, left и right,

vspace = pixels
hspace = pixels
Необязательные атрибуты, определяющие (в пикселах) ширину чистых полей над и под текущим апплетом (VSPACE), либо слева и справа (HSPACE). В данном случае используются те же механизмы разметки, что и в случае с элементом IMG, когда он имеет атрибуты VSPACE и HSPACE.

Элемент PARAM используется для передачи апплету именованных параметров:

   <PARAM NAME = ПараметрАпплета VALUE = 

значение>

Элементы PARAM - единственная возможность передавать параметры для апплета. Апплеты читают выбранные пользователем параметры посредством метода getParameter().

name = название параметра для апплета
value = значение параметра

Объекты-символы языка SGML, такие как &eacute;, &quot; и &#185;, проходят расшифровку перед тем, как параметры будут переданы апплету. Чтобы в качестве параметра использовать символ &, замените его объектом &amp;.

Замечание: Элементы PARAM должны стоять в самом начале контейнера APPLET. Они не были занесены в состав DTD из-за технических особенностей SGML моделей со смешанным контексом.

FONT


<!ELEMENT FONT - - (%text)*     -- local change to font -->

<!ATTLIST FONT

    size    CDATA   #IMPLIED    -- [+]nn e.g. size="+1", size=4 --

    color   CDATA   #IMPLIED    -- #RRGGBB in hex, e.g. red: color="#FF0000" --

    >

Для элемента FONT необходимо указывать как начальный, так и конечный тэги. При этом у вас появляется возможность изменить у текста, оказавшегося меж этими двумя тэгами, размер шрифта и/или цвет. Возможные атрибуты - SIZE и COLOR. Размер шрифта задается по некой шкале, самостоятельно определяемой браузером конечного пользователя и не имеющей прямой связи к размером типографской точки и другими единицами измерения. Предлагаемая в данной спецификации интерпретация элемента FONT может иметь дальнейшее развитие в новых версиях языка HTML.

size
Устанавливает размер шрифта, который будет использоваться текстом, содержащимся в пределах элемента font. Вы можете задать абсолютный размер шрифта, указав какое-либо целое число от 1 до 7. Для шрифта можно также указывать относительный размер, сообщая атрибуту целое число со знаком (например, это может быть size="+1" или size="-2"). В последнем случае реальный размер шрифта определяется суммированием указанного в атрибуте значения и текущего базового размера, заданного элементом BASEFONT (см. ниже).
color
указывает цвет, которым будет выделен данный кусок текста. Цвета задаются в виде RGB-значения с шестнадцатеричной нотацией, либо выбирается один из 16 стандартных цветов, описанных в элементе BODY при рассмотрении атрибута BGCOLOR.

Браузеры некоторых разработчиков могут распознавать атрибут FACE, значением которого является список шрифтов, приведенных через запятую в порядке уменьшения приоритета. Если в системе клиента имеется шрифт с указанным названием, он будет использоваться при воспризведении данного фрагмента. Атрибут FACE официально не входит в состав языка HTML 3.2.

Результаты изменения абсолютного размера шрифта:

size=1 size=2 size=3 size=4 size=5 size=6 size=7

Результаты изменения относительного размера шрифта (базовый размер при этом равен 3):

size=-4 size=-3 size=-2 size=-1 size=+1 size=+2 size=+3 size=+4

То же самое, если базовый размер шрифта равен 6:

size=-4 size=-3 size=-2 size=-1 size=+1 size=+2 size=+3 size=+4

BASEFONT


<!ELEMENT BASEFONT - O EMPTY    -- base font size (1 to 7) -->

<!ATTLIST BASEFONT

    size    CDATA   #IMPLIED    -- e.g. size=4, defaults to 3 --

    >

Указывает базовый размер шрифта. BASEFONT является пустым элементом, так что в данном случае использовать закрывающий тэг нельзя. Данный элемент имеет атрибут SIZE, которому можно присваивать целые значения в пределах от 1 до 7. Указываемый ими базовый размер шрифта используется при печати нормального и предварительно форматированного текста. Однако это не относится к заголовкам, за исключением тех случаев, когда в них используется элемент FONT с указанием относительного размера шрифта.

BR - концы строк

Используется для принудительного завершения текущей строки. Является пустым элементом, так что использовать в данном случае закрывающий тэг нельзя. Для того, чтобы новая строка не "наезжала" на уже имеющиеся изображения, в тэге может использоваться атрибут CLEAR. Так в результате использования атрибута <BR CLEAR=LEFT> новая строка начнется уже подо всеми изображениями, имеющимися с левой стороны листа, точно так же атрибут <BR CLEAR=RIGHT> заставит новую строку спуститься ниже всех изображений на правой половине листа, и наконец, атрибут <BR CLEAR=ALL> заставит строку спуститься уже ниже всех изображений, как слева, как и справа.

MAP - навигационные карты, обрабатываемые браузерами конечных клиентов

Элемент MAP реализует механизм обработки графических навигационных карт самим браузером клиента. Элементы MAP могут находиться том же самом документе, где производится разметка, либо группироваться в отдельном файле (хотя до сих пор последнее еще не распространено достаточно широко). Для элемента MAP необходимо указывать как начальный, так и конечный тэги. Внутри него содержится один или несколько элементов AREA, которые определяют на карте контрольные зоны и связывают их с определенными URL-адресами.

<!ENTITY % SHAPE "(rect|circle|poly)">

<!ENTITY % COORDS "CDATA" -- comma separated list of numbers -->



<!ELEMENT MAP - - (AREA)+>

<!ATTLIST MAP

    name    CDATA   #REQUIRED

    >



<!ELEMENT AREA - O EMPTY>

<!ATTLIST AREA

    shape   %SHAPE  rect

    coords  %COORDS #IMPLIED  -- defines coordinates for shape --

    href    %URL    #IMPLIED  -- this region acts as hypertext link --

    nohref (nohref) #IMPLIED  -- this region has no action --

    alt     CDATA   #REQUIRED -- needed for non-graphical user agents --

    >

Простой пример использования графической навигационной карты типа "панель инструментов":

<img src="navbar.gif" border=0 usemap="#map1">



<map name="map1">

 <area href=guide.html alt="Access Guide" shape=rect coords="0,0,118,28">

 <area href=search.html alt="Search" shape=rect coords="184,0,276,28">

 <area href=shortcut.html alt="Go" shape=rect coords="118,0,184,28">

 <area href=top10.html alt="Top Ten" shape=rect coords="276,0,373,28">

</map>

Элемент MAP имеет единственный атрибут NAME, который дает карте некое название. Впоследствии это название указывается в элементе IMG с составе атрибута USEMAP с тем, чтобы сослаться на данную навигационную карту через URL-идентификатор фрагмента. Заметим, что для слова, указываемого в атрибуте NAME, строчные и прописные буквы отличаются друг от друга.

Элемент AREA является пустым элементом, и потому для него нельзя указывать закрывающий тэг. Может иметь следующие атрибуты: SHAPE, COORDS, HREF, NOHREF и ALT. Атрибуты SHAPE и COORDS создают на изображении карты контрольную зону. Если атрибут SHAPE не был указан при разметке, то по умолчанию предполагается, что задано SHAPE="RECT".

shape=rect coords="левое-x, верхнее-y, правое-x, нижнее-y"

shape=circle coords="центральное-x, центральное-y, радиус"

shape=poly coords="x1,y1, x2,y2, x3,y3, ..."

где координаты x и y даны в пикселах и отсчитываются от левого верхнего угла соответствующего изображения. Если в x и y после числа следует символ процента, то указанную величину следует интерпретировать как процент от ширины изображения (или, соответственно, от высоты). Например:

   SHAPE=RECT COORDS="0, 0, 50%, 100%"

Атрибут HREF сообщает URL-адрес точки, куда будет направлен читатель при выборе данной контрольной зоны. Если вы хотите на карте указать некую область, которая при этом не выполняла бы функции контрольной зоны, используйте атрибут NOHREF. Такая возможность бывает полезной, когда вы хотите сделать "дыру" в некой большой области, выполняющей функции контрольной зоны.

Если происходит перекрытие двух или более зон, то та из них, которая при разметке навигационной карты была записана первой, имеет приоритет над другими областям, определенными позднее. Это означает, что элементы AREA с атрибутом NOHREF должны, как правило, ставиться перед элементами с атрибутом HREF.

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


Пример SGML Open Catalog для языка HTML 3.2

Данный материал может использоваться SGML-браузерами в качестве инструкций языка sgml при проверке документов на соответствие правилам HTML 3.2 DTD. При этом предполагается, что данный набор правил был записан в виде файла "HTML32.dtd" и что в файле "ISOlat1.ent" указаны объекты Latin-1.


-- html32.soc: catalog for parsing HTML 3.2 documents --

SGMLDECL "HTML32.dcl"

PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" HTML32.dtd

PUBLIC "-//W3C//DTD HTML 3.2 Draft//EN" HTML32.dtd

PUBLIC "-//W3C//DTD HTML 3.2//EN" HTML32.dtd

PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML" ISOlat1.ent


Декларация языка HTML 3.2 в SGML

Используется 8-битный набор символов ISO Latin-1. По сравнению с версией HTML 2.0 значительно увеличен предельный размер для заголовков и названий тэгов, однако браузерам конечных пользователей рекомендуется избегать произвольного внесения ограничений на длину элементов разметки.


<!SGML  "ISO 8879:1986"

   --

        SGML Declaration for HyperText Markup Language version 3.2



        With support for ISO Latin-1 and increased limits

        for tag and literal lengths etc.

   --



   CHARSET

         BASESET  "ISO 646:1983//CHARSET

                   International Reference Version

                   (IRV)//ESC 2/5 4/0"

         DESCSET  0   9   UNUSED

                  9   2   9

                  11  2   UNUSED

                  13  1   13

                  14  18  UNUSED

                  32  95  32

                  127 1   UNUSED

         BASESET  "ISO Registration Number 100//CHARSET

                   ECMA-94 Right Part of

                   Latin Alphabet Nr. 1//ESC 2/13 4/1"

         DESCSET  128  32   UNUSED

                  160  96    32



   CAPACITY   SGMLREF

              TOTALCAP        200000

              GRPCAP          150000

              ENTCAP          150000



   SCOPE    DOCUMENT

   SYNTAX

      SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

              17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127

      BASESET  "ISO 646:1983//CHARSET

                International Reference Version

                (IRV)//ESC 2/5 4/0"

      DESCSET  0 128 0



      FUNCTION

              RE            13

              RS            10

              SPACE         32

              TAB SEPCHAR    9



      NAMING   LCNMSTRT ""

               UCNMSTRT ""

               LCNMCHAR ".-"

               UCNMCHAR ".-"

               NAMECASE GENERAL YES

                        ENTITY  NO

      DELIM    GENERAL  SGMLREF

               SHORTREF SGMLREF

      NAMES    SGMLREF

      QUANTITY SGMLREF

               ATTSPLEN 65536

               LITLEN   65536

               NAMELEN  65536

               PILEN    65536

               TAGLVL   100

               TAGLEN   65536

               GRPGTCNT 150

               GRPCNT   64



   FEATURES

     MINIMIZE

       DATATAG  NO

       OMITTAG  YES

       RANK     NO

       SHORTTAG YES

     LINK

       SIMPLE   NO

       IMPLICIT NO

       EXPLICIT NO

     OTHER

       CONCUR   NO

       SUBDOC   NO

       FORMAL   YES

   APPINFO      NONE

>


Определение типов в документе HTML 3.2


<!--

        W3C Document Type Definition for the HyperText Markup Language

        version 3.2 as ratified by a vote of W3C member companies.

        For more information on W3C look at  URL http://www.w3.org/



        Date: Tuesday January 14th 1997



        Author: Dave Raggett <dsr@w3.org>



        HTML 3.2 aims to capture recommended practice as of early '96

        and as such to be used as a replacement for HTML 2.0 (RFC 1866).

        Widely deployed rendering attributes are included where they

        have been shown to be interoperable. SCRIPT and STYLE are

        included to smooth the introduction of client-side scripts

        and style sheets. Browsers must avoid showing the contents

        of these element Otherwise support for them is not required.

        ID, CLASS and STYLE attributes are not included in this version

        of HTML.

-->



<!ENTITY % HTML.Version

        "-//W3C//DTD HTML 3.2 Final//EN"



        -- Typical usage:



            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

            <html>

            ...

            </html>

        --

        >



<!--================== Deprecated Features Switch =========================-->



<!ENTITY % HTML.Deprecated "INCLUDE">



<!--================== Imported Names =====================================-->



<!ENTITY % Content-Type "CDATA"

        -- meaning a MIME content type, as per RFC1521

        -->



<!ENTITY % HTTP-Method "GET | POST"

        -- as per HTTP specification

        -->



<!ENTITY % URL "CDATA"

        -- The term URL means a CDATA attribute

           whose value is a Uniform Resource Locator,

           See RFC1808 (June 95) and RFC1738 (Dec 94).

        -->



<!-- Parameter Entities -->



<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK" -- repeatable head elements -->



<!ENTITY % heading "H1|H2|H3|H4|H5|H6">



<!ENTITY % list "UL | OL |  DIR | MENU">



<![ %HTML.Deprecated [

    <!ENTITY % preformatted "PRE | XMP | LISTING">

]]>



<!ENTITY % preformatted "PRE">



<!--================ Character mnemonic entities ==========================-->



<!ENTITY % ISOlat1 PUBLIC

       "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">

%ISOlat1;



<!--================ Entities for special symbols =========================-->

<!-- &trade and &cbsp are not widely deployed and so not included here --

>



<!ENTITY amp    CDATA "&#38;"   -- ampersand          -->

<!ENTITY gt     CDATA "&#62;"   -- greater than       -->

<!ENTITY lt     CDATA "&#60;"   -- less than          -->



<!--=================== Text Markup =======================================-->



<!ENTITY % font "TT | I | B  | U | STRIKE | BIG | SMALL | SUB | SUP">



<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE">



<!ENTITY % special "A | IMG | APPLET | FONT | BASEFONT | BR | SCRIPT | MAP">



<!ENTITY % form "INPUT | SELECT | TEXTAREA">



<!ENTITY % text "#PCDATA | %font | %phrase | %special | %form">



<!ELEMENT (%font|%phrase) - - (%text)*>



<!-- there are also 16 widely known color names although

  the resulting colors are implementation dependent:



   aqua, black, blue, fuchsia, gray, green, lime, maroon,

   navy, olive, purple, red, silver, teal, white, and yellow



 These colors were originally picked as being the standard

 16 colors supported with the Windows VGA palette.

 -->



<!ELEMENT FONT - - (%text)*     -- local change to font -->

<!ATTLIST FONT

    size    CDATA   #IMPLIED    -- [+]nn e.g. size="+1", size=4 --

    color   CDATA   #IMPLIED    -- #RRGGBB in hex, e.g. red: color="#FF0000" --

    >



<!ELEMENT BASEFONT - O EMPTY    -- base font size (1 to 7)-->

<!ATTLIST BASEFONT

    size    CDATA   #IMPLIED    -- e.g. size=3 --

    >



<!ELEMENT BR    - O EMPTY    -- forced line break -->

<!ATTLIST BR

        clear (left|all|right|none) none -- control of text flow --

        >



<!--================== HTML content models ================================-->

<!--

    HTML has three basic content models:



        %text       character level elements and text strings

        %flow       block-like elements e.g. paragraphs and lists

        %bodytext   as %flow plus headers H1-H6 and ADDRESS

-->



<!ENTITY % block

     "P | %list | %preformatted | DL | DIV | CENTER |

      BLOCKQUOTE | FORM | ISINDEX | HR | TABLE">



<!-- %flow is used for DD and LI -->



<!ENTITY % flow "(%text | %block)*">



<!--=================== Document Body =====================================-->



<!ENTITY % body.content "(%heading | %text | %block | ADDRESS)*">



<!ENTITY % color "CDATA" -- a color specification: #HHHHHH @@ details? -->



<!ENTITY % body-color-attrs "

        bgcolor %color #IMPLIED

        text %color #IMPLIED

        link %color #IMPLIED

        vlink %color #IMPLIED

        alink %color #IMPLIED

        ">



<!ELEMENT BODY O O  %body.content>

<!ATTLIST BODY

        background %URL #IMPLIED  -- texture tile for document background --

        %body-color-attrs;  -- bgcolor, text, link, vlink, alink --

        >



<!ENTITY % address.content "((%text;) | P)*">



<!ELEMENT ADDRESS - - %address.content>



<!ELEMENT DIV - - %body.content>

<!ATTLIST DIV

        align   (left|center|right) #IMPLIED -- alignment of following text --

        >



<!-- CENTER is a shorthand for DIV with ALIGN=CENTER -->

<!ELEMENT center - - %body.content>



<!--================== The Anchor Element =================================-->



<!ELEMENT A - - (%text)* -(A)>

<!ATTLIST A

        name    CDATA   #IMPLIED    -- named link end --

        href    %URL    #IMPLIED    -- URL for linked resource --

        rel     CDATA   #IMPLIED    -- forward link types --

        rev     CDATA   #IMPLIED    -- reverse link types --

        title   CDATA   #IMPLIED    -- advisory title string --

        >



<!--================== Client-side image maps ============================-->



<!-- These can be placed in the same document or grouped in a

     separate document although this isn't yet widely supported -->



<!ENTITY % SHAPE "(rect|circle|poly)">

<!ENTITY % COORDS "CDATA" -- comma separated list of numbers -->



<!ELEMENT MAP - - (AREA)*>

<!ATTLIST MAP

    name    CDATA   #IMPLIED

    >



<!ELEMENT AREA - O EMPTY>

<!ATTLIST AREA

    shape   %SHAPE  rect

    coords  %COORDS #IMPLIED  -- defines coordinates for shape --

    href    %URL    #IMPLIED  -- this region acts as hypertext link --

    nohref (nohref) #IMPLIED  -- this region has no action --

    alt     CDATA   #REQUIRED -- needed for non-graphical user agents --

    >



<!--================== The LINK Element ==================================-->



<!ENTITY % Types "CDATA"

        -- See Internet Draft: draft-ietf-html-relrev-00.txt

           LINK has been part of HTML since the early days

           although few browsers as yet take advantage of it.



           Relationship values can be used in principle:



                a) for document specific toolbars/menus when used

                   with the LINK element in the document head:

                b) to link to a separate style sheet

                c) to make a link to a script

                d) by stylesheets to control how collections of

                   html nodes are rendered into printed documents

                e) to make a link to a printable version of this document

                   e.g. a postscript or pdf version

-->



<!ELEMENT LINK - O EMPTY>

<!ATTLIST LINK

        href    %URL    #IMPLIED    -- URL for linked resource --

        rel     %Types  #IMPLIED    -- forward link types --

        rev     %Types  #IMPLIED    -- reverse link types --

        title   CDATA   #IMPLIED    -- advisory title string --

        >



<!--=================== Images ============================================-->



<!ENTITY % Length "CDATA"   -- nn for pixels or nn% for percentage length -->

<!ENTITY % Pixels "NUMBER"  -- integer representing length in pixels -->



<!-- Suggested widths are used for negotiating image size

     with the module responsible for painting the image.

     align=left or right cause image to float to margin

     and for subsequent text to wrap around image -->



<!ENTITY % IAlign "(top|middle|bottom|left|right)">



<!ELEMENT IMG    - O EMPTY --  Embedded image -->

<!ATTLIST IMG

        src     %URL     #REQUIRED  -- URL of image to embed --

        alt     CDATA    #IMPLIED   -- for display in place of image --

        align   %IAlign  #IMPLIED   -- vertical or horizontal alignment --

        height  %Pixels  #IMPLIED   -- suggested height in pixels --

        width   %Pixels  #IMPLIED   -- suggested width in pixels --

        border  %Pixels  #IMPLIED   -- suggested link border width --

        hspace  %Pixels  #IMPLIED   -- suggested horizontal gutter --

        vspace  %Pixels  #IMPLIED   -- suggested vertical gutter --

        usemap  %URL     #IMPLIED   -- use client-side image map --

        ismap   (ismap)  #IMPLIED   -- use server image map --

        >



<!-- USEMAP points to a MAP element which may be in this document

  or an external document, although the latter is not widely supported -->



<!--=================== Java APPLET tag ===================================-->

<!--

  This tag is supported by all Java enabled browsers. Applet resources

  (including their classes) are normally loaded relative to the document

  URL (or <BASE> element if it is defined). The CODEBASE attribute is used

  to change this default behavior. If the CODEBASE attribute is defined then

  it specifies a different location to find applet resources. The value

  can be an absolute URL or a relative URL. The absolute URL is used as is

  without modification and is not effected by the documents <BASE> element.

  When the codebase attribute is relative, then it is relative to the

  document URL (or <BASE> tag if defined).

-->

<!ELEMENT APPLET - - (PARAM | %text)*>

<!ATTLIST APPLET

        codebase %URL     #IMPLIED   -- code base --

        code     CDATA    #REQUIRED  -- class file --

        alt      CDATA    #IMPLIED   -- for display in place of applet --

        name     CDATA    #IMPLIED   -- applet name --

        width    %Pixels  #REQUIRED  -- suggested width in pixels --

        height   %Pixels  #REQUIRED  -- suggested height in pixels --

        align    %IAlign  #IMPLIED   -- vertical or horizontal alignment --

        hspace   %Pixels  #IMPLIED   -- suggested horizontal gutter --

        vspace   %Pixels  #IMPLIED   -- suggested vertical gutter --

        >



<!ELEMENT PARAM - O EMPTY>

<!ATTLIST PARAM

        name    NMTOKEN   #REQUIRED  -- The name of the parameter --

        value   CDATA     #IMPLIED   -- The value of the parameter --

        >



<!--

Here is an example:



    <applet codebase="applets/NervousText"

        code=NervousText.class

        width=300

        height=50>

    <param name=text value="Java is Cool!">

    <img src=sorry.gif alt="This looks better with Java support">

    </applet>

-->



<!--=================== Horizontal Rule ===================================-->



<!ELEMENT HR    - O EMPTY>

<!ATTLIST HR

        align (left|right|center) #IMPLIED

        noshade (noshade) #IMPLIED

        size  %Pixels #IMPLIED

        width %Length #IMPLIED

        >

<!--=================== Paragraphs=========================================-->



<!ELEMENT P     - O (%text)*>

<!ATTLIST P

        align  (left|center|right) #IMPLIED

        >



<!--=================== Headings ==========================================-->



<!--

  There are six levels of headers from H1 (the most important)

  to H6 (the least important).

-->



<!ELEMENT ( %heading )  - -  (%text;)*>

<!ATTLIST ( %heading )

        align  (left|center|right) #IMPLIED

        >



<!--=================== Preformatted Text =================================-->



<!-- excludes images and changes in font size -->



<!ENTITY % pre.exclusion "IMG|BIG|SMALL|SUB|SUP|FONT">



<!ELEMENT PRE - - (%text)* -(%pre.exclusion)>

<!ATTLIST PRE

        width NUMBER #implied -- is this widely supported? --

        >



<![ %HTML.Deprecated [



<!ENTITY % literal "CDATA"

        -- historical, non-conforming parsing mode where

           the only markup signal is the end tag

           in full

        -->



<!ELEMENT (XMP|LISTING) - -  %literal>

<!ELEMENT PLAINTEXT - O %literal>



]]>



<!--=================== Block-like Quotes =================================-->



<!ELEMENT BLOCKQUOTE - - %body.content>



<!--=================== Lists =============================================-->



<!--

    HTML 3.2 allows you to control the sequence number for ordered lists.

    You can set the sequence number with the START and VALUE attributes.

    The TYPE attribute may be used to specify the rendering of ordered

    and unordered lists.

-->



<!-- definition lists - DT for term, DD for its definition -->



<!ELEMENT DL    - -  (DT|DD)+>

<!ATTLIST DL

        compact (compact) #IMPLIED -- more compact style --

        >



<!ELEMENT DT - O  (%text)*>

<!ELEMENT DD - O  %flow;>



<!-- Ordered lists OL, and unordered lists UL -->

<!ELEMENT (OL|UL) - -  (LI)+>



<!--

       Numbering style

    1   arablic numbers     1, 2, 3, ...

    a   lower alpha         a, b, c, ...

    A   upper alpha         A, B, C, ...

    i   lower roman         i, ii, iii, ...

    I   upper roman         I, II, III, ...



    The style is applied to the sequence number which by default

    is reset to 1 for the first list item in an ordered list.



    This can't be expressed directly in SGML due to case folding.

-->



<!ENTITY % OLStyle "CDATA" -- constrained to: [1|a|A|i|I] -->



<!ATTLIST OL -- ordered lists --

        type      %OLStyle   #IMPLIED   -- numbering style --

        start     NUMBER     #IMPLIED   -- starting sequence number --

        compact  (compact)   #IMPLIED   -- reduced interitem spacing --

        >



<!-- bullet styles -->



<!ENTITY % ULStyle "disc|square|circle">



<!ATTLIST UL -- unordered lists --

        type    (%ULStyle)   #IMPLIED   -- bullet style --

        compact (compact)    #IMPLIED   -- reduced interitem spacing --

        >



<!ELEMENT (DIR|MENU) - -  (LI)+ -(%block)>

<!ATTLIST DIR

        compact (compact) #IMPLIED

        >

<!ATTLIST MENU

        compact (compact) #IMPLIED

        >



<!-- <DIR>              Directory list                  -->

<!-- <DIR COMPACT>      Compact list style              -->

<!-- <MENU>             Menu list                       -->

<!-- <MENU COMPACT>     Compact list style              -->



<!-- The type attribute can be used to change the bullet style

     in unordered lists and the numbering style in ordered lists -->



<!ENTITY % LIStyle "CDATA" -- constrained to: "(%ULStyle|%OLStyle)" -->



<!ELEMENT LI - O %flow -- list item -->

<!ATTLIST LI

        type    %LIStyle     #IMPLIED   -- list item style --

        value    NUMBER      #IMPLIED   -- reset sequence number --

        >



<!--================ Forms ===============================================-->



<!ELEMENT FORM - - %body.content -(FORM)>

<!ATTLIST FORM

        action %URL #IMPLIED  -- server-side form handler --

        method (%HTTP-Method) GET -- see HTTP specification --

        enctype %Content-Type; "application/x-www-form-urlencoded"

        >



<!ENTITY % InputType

        "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT

            | RESET | FILE | HIDDEN | IMAGE)">



<!ELEMENT INPUT - O EMPTY>

<!ATTLIST INPUT

        type %InputType TEXT     -- what kind of widget is needed --

        name  CDATA #IMPLIED     -- required for all but submit and reset --

        value CDATA #IMPLIED     -- required for radio and checkboxes --

        checked (checked) #IMPLIED -- for radio buttons and check boxes --

        size CDATA  #IMPLIED     -- specific to each type of field --

        maxlength NUMBER #IMPLIED

        src   %URL  #IMPLIED     -- for fields with background images --

        align  (top|middle|bottom|left|right) top -- image alignment --

        >



<!ELEMENT SELECT - - (OPTION+)>

<!ATTLIST SELECT

        name CDATA #REQUIRED

        size NUMBER #IMPLIED

        multiple (multiple) #IMPLIED

        >



<!ELEMENT OPTION - O (#PCDATA)*>

<!ATTLIST OPTION

        selected (selected) #IMPLIED

        value  CDATA  #IMPLIED -- defaults to element content --

        >



<!-- Multi-line text input field. -->



<!ELEMENT TEXTAREA - - (#PCDATA)*>

<!ATTLIST TEXTAREA

        name CDATA #REQUIRED

        rows NUMBER #REQUIRED

        cols NUMBER #REQUIRED

        >



<!--======================= Tables ========================================-->



<!-- Widely deployed subset of the full table standard, see RFC 1942

     e.g. at http://www.ics.uci.edu/pub/ietf/html/rfc1942.txt -->



<!-- horizontal placement of table relative to window -->

<!ENTITY % Where "(left|center|right)">



<!-- horizontal alignment attributes for cell contents -->

<!ENTITY % cell.halign

        "align  (left|center|right) #IMPLIED"

        >



<!-- vertical alignment attributes for cell contents -->

<!ENTITY % cell.valign

        "valign  (top|middle|bottom)  #IMPLIED"

        >



<!ELEMENT table - - (caption?, tr+)>

<!ELEMENT tr - O (th|td)*>

<!ELEMENT (th|td) - O %body.content>



<!ATTLIST table                       -- table element --

        align     %Where;   #IMPLIED  -- table position relative to window --

        width     %Length   #IMPLIED  -- table width relative to window --

        border    %Pixels   #IMPLIED  -- controls frame width around table --

        cellspacing %Pixels #IMPLIED  -- spacing between cells --

        cellpadding %Pixels #IMPLIED  -- spacing within cells --

        >



<!ELEMENT CAPTION - - (%text;)* -- table or figure caption -->

<!ATTLIST CAPTION

        align (top|bottom) #IMPLIED

        >



<!ATTLIST tr                       -- table row --

        %cell.halign;              -- horizontal alignment in cells --

        %cell.valign;              -- vertical alignment in cells --

        >



<!ATTLIST (th|td)                  -- header or data cell --

        nowrap (nowrap)  #IMPLIED  -- suppress word wrap --

        rowspan NUMBER   1         -- number of rows spanned by cell --

        colspan NUMBER   1         -- number of cols spanned by cell --

        %cell.halign;              -- horizontal alignment in cell --

        %cell.valign;              -- vertical alignment in cell --

        width   %Pixels  #IMPLIED  -- suggested width for cell --

        height  %Pixels  #IMPLIED  -- suggested height for cell --

        >



<!--================ Document Head ========================================-->



<!-- %head.misc defined earlier on as "SCRIPT|STYLE|META|LINK" -->



<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">



<!ELEMENT HEAD O O  (%head.content) +(%head.misc)>



<!ELEMENT TITLE - -  (#PCDATA)* -(%head.misc)

          -- The TITLE element is not considered part of the flow of text.

             It should be displayed, for example as the page header or

             window title.

          -->



<!ELEMENT ISINDEX - O EMPTY>

<!ATTLIST ISINDEX

        prompt CDATA #IMPLIED -- prompt message -->



<!--

    The BASE element gives an absolute URL for dereferencing relative

    URLs, e.g.



         <BASE href="http://foo.com/index.html" rel="nofollow" >

         ...

         <IMG SRC="images/bar.gif">



    The image is deferenced to



         http://foo.com/images/bar.gif



   In the absence of a BASE element the document URL should be used.

   Note that this is not necessarily the same as the URL used to

   request the document, as the base URL may be overridden by an HTTP

   header accompanying the document.

-->



<!ELEMENT BASE - O EMPTY>

<!ATTLIST BASE

        href %URL  #REQUIRED

        >



<!ELEMENT META - O EMPTY -- Generic Metainformation -->

<!ATTLIST META

        http-equiv  NAME    #IMPLIED  -- HTTP response header name  --

        name        NAME    #IMPLIED  -- metainformation name       --

        content     CDATA   #REQUIRED -- associated information     --

        >



<!-- SCRIPT/STYLE are place holders for transition to next version of HTML -->



<!ELEMENT STYLE  - - (#PCDATA)*  -(%head.misc) -- style info -->

<!ELEMENT SCRIPT - - (#PCDATA)*  -(%head.misc) -- script statements -->



<!--================ Document Structure ===================================-->



<!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'">



<![ %HTML.Deprecated [

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

]]>



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



<!ELEMENT HTML O O  (%html.content)>

<!ATTLIST HTML

        %version.attr;

        >


Коды символов в ISO Latin-1




<!-- (C) International Organization for Standardization 1986

     Permission to copy in any form is granted for use with

     conforming SGML systems and applications as defined in

     ISO 8879, provided this notice is included in all copies.

     This has been extended for use with HTML to cover the full

     set of codes in the range 160-255 decimal.

-->

<!-- Character entity set. Typical invocation:

     <!ENTITY % ISOlat1 PUBLIC

       "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">

     %ISOlat1;

-->

    <!ENTITY nbsp   CDATA "&#160;" -- no-break space -->

    <!ENTITY iexcl  CDATA "&#161;" -- inverted exclamation mark -->

    <!ENTITY cent   CDATA "&#162;" -- cent sign -->

    <!ENTITY pound  CDATA "&#163;" -- pound sterling sign -->

    <!ENTITY curren CDATA "&#164;" -- general currency sign -->

    <!ENTITY yen    CDATA "&#165;" -- yen sign -->

    <!ENTITY brvbar CDATA "&#166;" -- broken (vertical) bar -->

    <!ENTITY sect   CDATA "&#167;" -- section sign -->

    <!ENTITY uml    CDATA "&#168;" -- umlaut (dieresis) -->

    <!ENTITY copy   CDATA "&#169;" -- copyright sign -->

    <!ENTITY ordf   CDATA "&#170;" -- ordinal indicator, feminine -->

    <!ENTITY laquo  CDATA "&#171;" -- angle quotation mark, left -->

    <!ENTITY not    CDATA "&#172;" -- not sign -->

    <!ENTITY shy    CDATA "&#173;" -- soft hyphen -->

    <!ENTITY reg    CDATA "&#174;" -- registered sign -->

    <!ENTITY macr   CDATA "&#175;" -- macron -->

    <!ENTITY deg    CDATA "&#176;" -- degree sign -->

    <!ENTITY plusmn CDATA "&#177;" -- plus-or-minus sign -->

    <!ENTITY sup2   CDATA "&#178;" -- superscript two -->

    <!ENTITY sup3   CDATA "&#179;" -- superscript three -->

    <!ENTITY acute  CDATA "&#180;" -- acute accent -->

    <!ENTITY micro  CDATA "&#181;" -- micro sign -->

    <!ENTITY para   CDATA "&#182;" -- pilcrow (paragraph sign) -->

    <!ENTITY middot CDATA "&#183;" -- middle dot -->

    <!ENTITY ccedil CDATA "&#184;" -- small c, cedilla -->

    <!ENTITY sup1   CDATA "&#185;" -- superscript one -->

    <!ENTITY ordm   CDATA "&#186;" -- ordinal indicator, masculine -->

    <!ENTITY raquo  CDATA "&#187;" -- angle quotation mark, right -->

    <!ENTITY frac14 CDATA "&#188;" -- fraction one-quarter -->

    <!ENTITY frac12 CDATA "&#189;" -- fraction one-half -->

    <!ENTITY frac34 CDATA "&#190;" -- fraction three-quarters -->

    <!ENTITY iquest CDATA "&#191;" -- inverted question mark -->

    <!ENTITY Agrave CDATA "&#192;" -- capital A, grave accent -->

    <!ENTITY Aacute CDATA "&#193;" -- capital A, acute accent -->

    <!ENTITY Acirc  CDATA "&#194;" -- capital A, circumflex accent -->

    <!ENTITY Atilde CDATA "&#195;" -- capital A, tilde -->

    <!ENTITY Auml   CDATA "&#196;" -- capital A, dieresis or umlaut mark -->

    <!ENTITY Aring  CDATA "&#197;" -- capital A, ring -->

    <!ENTITY AElig  CDATA "&#198;" -- capital AE diphthong (ligature) -->

    <!ENTITY Ccedil CDATA "&#199;" -- capital C, cedilla -->

    <!ENTITY Egrave CDATA "&#200;" -- capital E, grave accent -->

    <!ENTITY Eacute CDATA "&#201;" -- capital E, acute accent -->

    <!ENTITY Ecirc  CDATA "&#202;" -- capital E, circumflex accent -->

    <!ENTITY Euml   CDATA "&#203;" -- capital E, dieresis or umlaut mark -->

    <!ENTITY Igrave CDATA "&#204;" -- capital I, grave accent -->

    <!ENTITY Iacute CDATA "&#205;" -- capital I, acute accent -->

    <!ENTITY Icirc  CDATA "&#206;" -- capital I, circumflex accent -->

    <!ENTITY Iuml   CDATA "&#207;" -- capital I, dieresis or umlaut mark -->

    <!ENTITY ETH    CDATA "&#208;" -- capital Eth, Icelandic -->

    <!ENTITY Ntilde CDATA "&#209;" -- capital N, tilde -->

    <!ENTITY Ograve CDATA "&#210;" -- capital O, grave accent -->

    <!ENTITY Oacute CDATA "&#211;" -- capital O, acute accent -->

    <!ENTITY Ocirc  CDATA "&#212;" -- capital O, circumflex accent -->

    <!ENTITY Otilde CDATA "&#213;" -- capital O, tilde -->

    <!ENTITY Ouml   CDATA "&#214;" -- capital O, dieresis or umlaut mark -->

    <!ENTITY times  CDATA "&#215;" -- multiply sign -->

    <!ENTITY Oslash CDATA "&#216;" -- capital O, slash -->

    <!ENTITY Ugrave CDATA "&#217;" -- capital U, grave accent -->

    <!ENTITY Uacute CDATA "&#218;" -- capital U, acute accent -->

    <!ENTITY Ucirc  CDATA "&#219;" -- capital U, circumflex accent -->

    <!ENTITY Uuml   CDATA "&#220;" -- capital U, dieresis or umlaut mark -->

    <!ENTITY Yacute CDATA "&#221;" -- capital Y, acute accent -->

    <!ENTITY THORN  CDATA "&#222;" -- capital THORN, Icelandic -->

    <!ENTITY szlig  CDATA "&#223;" -- small sharp s, German (sz ligature) --

>

    <!ENTITY agrave CDATA "&#224;" -- small a, grave accent -->

    <!ENTITY aacute CDATA "&#225;" -- small a, acute accent -->

    <!ENTITY acirc  CDATA "&#226;" -- small a, circumflex accent -->

    <!ENTITY atilde CDATA "&#227;" -- small a, tilde -->

    <!ENTITY auml   CDATA "&#228;" -- small a, dieresis or umlaut mark -->

    <!ENTITY aring  CDATA "&#229;" -- small a, ring -->

    <!ENTITY aelig  CDATA "&#230;" -- small ae diphthong (ligature) -->

    <!ENTITY ccedil CDATA "&#231;" -- small c, cedilla -->

    <!ENTITY egrave CDATA "&#232;" -- small e, grave accent -->

    <!ENTITY eacute CDATA "&#233;" -- small e, acute accent -->

    <!ENTITY ecirc  CDATA "&#234;" -- small e, circumflex accent -->

    <!ENTITY euml   CDATA "&#235;" -- small e, dieresis or umlaut mark -->

    <!ENTITY igrave CDATA "&#236;" -- small i, grave accent -->

    <!ENTITY iacute CDATA "&#237;" -- small i, acute accent -->

    <!ENTITY icirc  CDATA "&#238;" -- small i, circumflex accent -->

    <!ENTITY iuml   CDATA "&#239;" -- small i, dieresis or umlaut mark -->

    <!ENTITY eth    CDATA "&#240;" -- small eth, Icelandic -->

    <!ENTITY ntilde CDATA "&#241;" -- small n, tilde -->

    <!ENTITY ograve CDATA "&#242;" -- small o, grave accent -->

    <!ENTITY oacute CDATA "&#243;" -- small o, acute accent -->

    <!ENTITY ocirc  CDATA "&#244;" -- small o, circumflex accent -->

    <!ENTITY otilde CDATA "&#245;" -- small o, tilde -->

    <!ENTITY ouml   CDATA "&#246;" -- small o, dieresis or umlaut mark -->

    <!ENTITY divide CDATA "&#247;" -- divide sign -->

    <!ENTITY oslash CDATA "&#248;" -- small o, slash -->

    <!ENTITY ugrave CDATA "&#249;" -- small u, grave accent -->

    <!ENTITY uacute CDATA "&#250;" -- small u, acute accent -->

    <!ENTITY ucirc  CDATA "&#251;" -- small u, circumflex accent -->

    <!ENTITY uuml   CDATA "&#252;" -- small u, dieresis or umlaut mark -->

    <!ENTITY yacute CDATA "&#253;" -- small y, acute accent -->

    <!ENTITY thorn  CDATA "&#254;" -- small thorn, Icelandic -->

    <!ENTITY yuml   CDATA "&#255;" -- small y, dieresis or umlaut mark -->


Таблица кодов для печатаемых символов из Latin- 1


Благодарности

Автор выражает благодарность членам редакторского совета W3C HTML, штатным сотрудникам W3C, а также тем, кто внес вклад в разработку этой спецификации.


Материалы для дальнейшего чтения...

The World Wide Web Consortium
Дополнительную информацию о деятельности организации W3C и о состоянии работ над совершенствованием протоколов HTML, HTTP, а также другие материалы можно найти по адресу в http://www.w3.org/. Сведения о языке HTML можно также получить по адресу http://www.w3.org/pub/WWW/MarkUp/.
HTML 2.0 (RFC1866)
Авторы Tim Berners-Lee и Dan Connolly, ноябрь 1995 года Дает спецификацию для языка разметки гипертекста версии 2.0. Доступен по адресу ftp://ds.internic.net/rfc/rfc1866.txt .
Form-based File Upload in HTML (RFC1867)
Авторы E. Nebel и L. Masinter, ноябрь 1995 года. Описывает расширения к языку HTML 2.0 (RFC1866), реализующие подкачку файлов из форм HTML. Доступен по адресу ftp://ds.internic.net/rfc/rfc1867.txt .
HTML Tables (RFC1942)
Автор Dave Raggett, май 1996 года. Описывает модель таблиц, используемую в языке HTML. Является расширением для модели построения таблиц , заданной в спецификации HTML 3.2. Доступен по адресу ftp://ds.internic.net/rfc/rfc1942.txt , либо в качестве рабочего документа W3C по адресу http://www.w3.org/pub/WWW/TR/WD- tables.
A Lexical Analyzer for HTML and Basic SGML
Автор Dan Connolly, июнь 1996 года. Рассматривает лексические основы анализа HTML документов. Доступен по адресу http://www.w3.org/pub/WWW/TR/WD-html-lex
The Hypertext Transfer Protocol (HTTP)
Дополнительную информацию о протоколе HTTP можно найти по адресу:http://www.w3.org/pub/WWW/Protocols.
A Standard Default Color Space for the Internet - sRGB
Авторы Michael Stokes, Mathew Anderson, Srinivasan Chandrasekar и Ricardo Motta, ноябрь 1996 года. Доступен по адресу: http://www.w3.org/pub/WWW/Gr aphics/Color/sRGB.html. Дается четкое определение модели RGB, позволяющее осуществлять точное воспроизведение RGB изображений на различных компьютерных платформах и при различных условиях освещенности.