Абзацы: элемент P
<!ELEMENT - O ()* -- абзац --> <!ATTLIST P -- , , -- >
Начальный тег: обязателен, Конечный тег: необязателен
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
()
, , , , , , , , , (внутренние события)
Элемент представляет абзац. В нем не могут содержаться (включая и сам элемент ).
Мы призываем авторов не использовать пустой элемент . Агенты пользователей должны игнорировать пустые элементы .
Алгоритм поиска заголовочной информации
В отсутствии заголовочной информации в атрибуте или агенты пользователей могут составлять эту информацию в соответствии со следующим алгоритмом. Целью алгоритма является нахождение упорядоченного списка заголовков. (В следующем описании алгоритма принято слева направо.)
Сначала выполняется поиск влево от позиции ячейки для определения ячейки заголовка строки. Затем выполняется поиск вверх для определения ячейки заголовка столбца. Поиск в заданном направлении прекращается, если достигнут край таблицы или обнаружена ячейка данных после ячейки заголовка.
Заголовки строк помещаются в список в том порядке, в котором они расположены в таблице. Для таблиц, направленных слева направо, заголовки помещаются слева направо.
Заголовки столбцов помещаются после заголовков строк, в том порядке, в каком они расположены в таблице, сверху вниз.
Если для ячейки заголовка установлен атрибут , заголовки, на которые ссылается этот атрибут, помещаются в список, и поиск для текущего направления прекращается.
Ячейки , в которых устанавливается атрибут , обрабатываются так же, как и ячейки заголовков.
Атрибут title
Определения атрибутов
title =
Этот атрибут предлагает информацию об элементе, для которого он устанавливается.
В отличие от элемента , который предоставляет информацию обо всем документе и может присутствовать в тексте только один раз, атрибут может сопровождать любое число элементов. Узнать, поддерживает ли элемент этот атрибут, можно в определении элемента.
Значения атрибута могут использоваться агентами пользователя в генерации изображения по-разному. Например, визуальные браузеры часто отображают заголовок как подсказку (краткое сообщение, которое появляется, если Вы указываете на объект). Аудиоагенты пользователя могут проговаривать информацию заголовка. Например, установка этого атрибута для ссылки позволяет агентам пользователей (визуальным и невизуальным) сообщить пользователям о природе связанного ресурса:
...текст...
Вот фотография <A href="http://someplace.com/neatstuff.gif" title="Me scuba diving"> как я нырял в прошлом году </A> ...еще текст...
Атрибут играет дополнительную роль при использовании с элементом для назначения Подробнее см. в разделе о .
Примечание.
Для улучшения качества синтеза речи в случае плохой обработки стандартными механизмами будущие версии HTML могут включать атрибут для кодирования фонематической информации.
Captions таблиц: элемент CAPTION
<!ELEMENT - - ()* -- caption таблицы --> <!ENTITY % CAlign "(top|bottom|left|right)">
<!ATTLIST CAPTION -- , , -- >
Начальный тег: обязателен, конечный тег: обязателен
Определения атрибутов
align
= top|bottom|left|right
Нежелателен. Для визуальных агентов пользователей этот атрибут указывает положение caption относительно таблицы. Возможные значения:
top: caption находится наверху таблицы. Это значение используется по умолчанию.
bottom: caption находится внизу таблицы.
left: caption находится слева от таблицы.
right: caption находится справа от таблицы.
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , ,
()
Если элемент присутствует, его текст должен описывать предмет таблицы. Элемент может располагаться только непосредственно после начального тега . Элемент может включать только один элемент .
Визуальные агенты пользователей позволяют sighted people быстро grasp структуру таблицы из заголовков и caption. Последствием этого является то, что captions не будут совпадать с краткими описаниями назначения и структуры таблицы с точки зрения людей, использующих невизуальные агенты.
Таким образом, авторы должны позаботиться о предоставлении дополнительной информации, описывающей назначение и структуру таблицы с помощью атрибута элемента . Это особенно важно для таблиц, не имеющих captions. На примерах ниже показано использование атрибута .
Визуальные агенты пользователей должны избегать clipping любой части таблицы, включая caption, если не предоставлено средство доступа ко всем частям, например, с помощью горизонтальной или вертикальной прокрутки. Мы рекомендуем, чтобы текст caption разбивался так, чтобы иметь ту же ширину, что и таблица. (См. также раздел о .)
Другие отношения ссылок
Наиболее часто сейчас ссылки используются для загрузки других ресурсов Web, как показано в предыдущих примерах. Однако авторы могут помещать в свои документы ссылки, выражающие иные отношения между ресурсами, чем просто "использование ссылки для Просмотра связанного ресурса". Для ссылок, выражающих другие типы отношений, В исходном якоре указываются один или более .
Роли ссылок, определяемых элементом или указываются с помощью атрибутов и .
Например, ссылки, определяемые элементом , могут описывать положение документа в последовательности документов. В следующем примере ссылка в документе "Глава 5" указывает на предыдущую и последующую главы:
<HEAD> ...другая заголовочная информация...
<TITLE>Глава 5</TITLE> <LINK rel="prev" href="chapter4.html"> <LINK rel="next" href="chapter6.html"> </HEAD>
Тип первой ссылки - "prev", второй - "next" (два из ряда распознаваемых типов ссылок). Ссылки, задаваемые элементов , не генерируются с содержимым документа, хотя агенты пользователей могут отображать их различными способами (например, в виде средств перехода).
Даже если они не используются для перехода, эти ссылки могут интерпретироваться интересными способами. Например, агент пользователя, выполняющий печать ряда документов в формате HTML в виде одного документа, может использовать эту информацию для формирования последовательного линейного документа. Дальнейшая информация об использовании приведена ниже.
Форматирование таблиц визуальными агентами пользователей
Примечание. В следующих разделах описываются атрибуты таблиц HTML, относящиеся к визуальному форматированию. Хотя таблицы стилей предлагают лучшие возможности управления визуальным форматированием таблиц, во время написания этой спецификации в [CSS1] не было механизмов для управления всеми аспектами визуального форматирования таблиц.
В HTML 4.0 имеются механизмы для управления:
содержимого ячеек
и
Форматированный текст: Элемент PRE
<!ENTITY % pre.exclusion "IMG|OBJECT|BIG|SMALL|SUB|SUP">
<!ELEMENT - - ()* -() - форматированный текст --> <!ATTLIST PRE -- , , -- >
Начальный тег: обязателен, Конечный тег: обязателен
Определения атрибутов
width = Этот атрибут предоставляет визуальным агентам пользователей подсказку относительно желаемой ширины блока форматированного текста. Агент пользователя может использовать эту информацию для выбора соответствующего размера шрифта или для создания соответствующего отступа. Ширина выражается числом символов. Этот атрибут часто не поддерживается.
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , , (внутренние события)
Элемент сообщает визуальным агентам пользователей, что содержащийся в нем текст "отформатирован". При обработке форматированного текста визуальные агенты пользователей:
Могут оставлять так, как они указаны.
Могут использовать для отображения текста шрифт с символами одинаковой ширины.
Могут отключать автоматическое продолжение слов.
Не должны отключать обработку двунаправленности.
Невизуальные агенты пользователей не обязаны учитывать дополнительные в содержимом элемента .
Подробнее о переходе на новую строку в спецификации SGML см. в разделе в приложении.
В приведенном выше фрагменте DTD указывается, какие элементы не могут находиться в объявлении . То же самое выполняется в HTML 3.2; это предназначено для сохранения постоянного межстрочного интервала и выравнивания столбцов для текста, генерируемого с использованием шрифта с символами равной ширины. Авторам не рекомендуется изменять такую обработку с помощью таблиц стилей.
В следующем примере показана отформатированная строфа из стихотворения Шелли To a Skylark:
<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.
Символ горизонтальной табуляции
Символ горизонтальной табуляции (десятичный символ 9 в [ISO10646] и [ISO88591]) обычно интерпретируется визуальными агентами пользователей как наименьшее ненулевое число пробелов, необходимое для того, чтобы сдвинуть символы на позицию табуляции, которые находятся через каждые 8 символов. Настоятельно не рекомендуется использовать горизонтальные табуляции в форматированном тексте, поскольку при редактировании установка других значений табуляции может привести к неправильному выравниванию в документах.
Глобальные схемы именования объектов
Местоположение обработчика объекта задается адресом URI. Как было сказано во , первый сегмент абсолютного адреса URI задает схему именования, используемую для передачи данных, назначаемых адресом URI. Для документов в формате HTML этой схемой часто является "http". Некоторые апплеты могут использовать внешние схемы именования. Например, при указании апплета Java авторы могут использовать адреса URI, начинающиеся с "java", я для аппелтов ActiveX авторы могут использовать "clsid".
В следующем примере мы вставляем апплет на языке Java в документ в формате HTML.
<P><OBJECT classid="java:program.start"> </OBJECT>
Установив атрибут , агент пользователя может определить, нужно ли загружать ли приложение Java, в зависимости от своих возможностей.
<OBJECT codetype="application/java-archive" classid="java:program.start"> </OBJECT>
Некоторым схемам генерации для определения обработки необходима дополнительная информация, поэтому им необходимо указать, где находится эта информация. Авторы могут указать путь к обработчику объекта с помощью атрибута .
<OBJECT codetype="application/java-archive" classid="java:program.start"> codebase="http://foooo.bar.com/java/myimplementation/" </OBJECT>
В следующем примере (с помощью атрибута ) задается объект ActiveX в виде адреса URI, начинающегося со схемы именования "clsid". Атрибут определяет местоположение генерируемых данных (еще одни часы).
<P><OBJECT classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502" data="http://www.acme.com/ole/clock.stm"> Это приложение не поддерживается. </OBJECT>
Горизонтальное и вертикальное выравнивание
Для различных элементов таблицы можно установить следующие атрибуты (см. их определения).
<!- атрибуты горизонтального выравнивания содержимого ячейки --> <!ENTITY % cellhalign " (left|center|right|justify|char) #IMPLIED #IMPLIED -- символы выравнивания, например char=':' -- #IMPLIED -- отступ символа выравнивания --" >
<!-атрибуты вертикального выравнивания содержимого ячейки --> <!ENTITY % cellvalign " (top|middle|bottom|baseline) #IMPLIED" >
Определения атрибутов
align = left|center|right|justify|char
Этот атрибут задает выравнивание данных и выключку текста в ячейке. Возможные значения:
left: Выравнивание данных по левому краю/выключка текста влево. Это значение используется по умолчанию.
center: Выравнивание данных по центру/выключка текста по центру. Это значение используется по умолчанию в заголовках таблиц.
right: Выравнивание данных по правому краю/выключка текста вправо.
justify: Выключка по обоим краям.
char:Выравнивание текста вокруг указанного символа.
valign = top|middle|bottom|baseline
Этот атрибут задает вертикальное положение данных в ячейке. Возможные значения:
top: Данные ячейки сдвигаются вверх.
middle: Данные ячейки центрируются вертикально. Это значение используется по умолчанию.
bottom: Данные в ячейке сдвигаются вниз.
baseline: Во всех ячейках строки, в которой находится ячейка, для которой установлен атрибут valign, текст должен располагаться так, чтобы первая строка оказывалась на базовой линии, общей для всех ячеек в строке. Это ограничение не применяется к последующим текстовым строкам в этой ячейке.
char =
Этот атрибут определяет отдельный символ во фрагменте текста, служащий осью для выравнивания. По умолчанию в качестве значения этого атрибута используется символ десятичной точки для текущего языка, установленного в соответствии с атрибутом (например, точка (".") в английском языке и запятая (",") во французском). Агенты пользователя не обязательно должны поддерживать этот атрибут.
charoff =
Если этот атрибут задан, он определяет отступ первого экземпляра символа выравнивания в каждой строке. Если в строек нет символа выравнивания, она горизонтально сдвигается до конца в позиции выравнивания.
Если для установления смещения символа выравнивания используется атрибут , направление смещения определяется текущим направлением текста (устанавливаемым атрибутом ). В текста, направленных слева направо (по умолчанию), смещение производится от левого поля. В текстах, направленных справа налево, смещение производится от правого поля. Агенты пользователей не обязательно должны поддерживать этот атрибут.
В этом примере денежные единицы выровнены по десятичной точке. Мы явно установили выравнивание по символу ".".
<TABLE border="1"> <COLGROUP> <COL><COL align="char" char="."> <THEAD> <TR><TH>Овощи <TH>Цена за кг <TBODY> <TR><TD>Lettuce <TD>$1 <TR><TD>Silver carrots <TD>$10.50 <TR><TD>Golden turnips <TD>$100.30 </TABLE>
Отформатированная таблица может выглядеть следующим образом:
------------------------------ | Овощи |Цена за кг | |--------------|-------------| |Lettuce | $1 | |--------------|-------------| |Silver carrots| $10.50| |--------------|-------------| |Golden turnips| $100.30| ------------------------------
Если в ячейке содержится несколько экземпляров символов выравнивания, заданных в атрибуте , и содержимое ячейки переносится на другую строку, поведение агента пользователя не определено. Поэтому авторы должны внимательно использовать атрибут .
Примечание. Визуальные агенты пользователей обычно генерируют элементы выровненными вертикально и горизонтально по центру с использованием полужирного шрифта.
Границы
Изображение или объект может окружать граница (например, если она указана пользователем или изображение имеет содержимое элемента ).
Определения атрибутов
border =
Атрибут border определяет ширину границы в пикселах. Значение этого атрибута, используемое по умолчанию, зависит от агента пользователя.
Границы и rules
Следующие атрибуты влияют на внутренние кадры и внутренние rules таблицы.
Определения атрибутов
frame = void|above|below|hsides|lhs|rhs|vsides|box|border
Этот атрибут указывает, какие стороны кадра, окружающего таблицу, будут видимы. Возможные значения:
void: Сторон нет. Это значение используется по умолчанию.
above: Только верхняя часть.
below: Только нижняя часть.
hsides: Только верхняя и нижняя часть.
vsides: Только левая и правая части.
lhs: Только левая часть.
rhs: Только права часть.
box: Все четыре части.
border: Все четыре части.
rules = none|groups|rows|cols|all
Этот атрибут указывает, какие rules будут отображаться между ячейками. Генерация rules зависит от агента пользователя. Возможные значения:
none: Нет rules. Это значение используется по умолчанию.
groups: Rules отображаются только между группами строк (см. , , and ) и группами столбцов (см. and ).
rows: Rules отображаются только между строками.
cols: Rules отображаются только между столбцами.
all: Rules отображаются между строками и столбцами.
border =
Этот атрибут задает ширину (только в пикселах) кадра вокруг таблицы (подробнее об этом атрибуте см. в Примечании ниже).
Для простоты различия ячеек в таблице мы можем устанавливать атрибут элемента . Рассмотрим предыдущий пример:
<TABLE border="1" summary="В этой таблице приведены данные о числе чашек кофе, потребляемом каждым сенатором, типе кофе (без кофеина или обычный) и наличии сахара."> <CAPTION>Сколько чашек кофе выпивает каждый сенатор</CAPTION> <TR> <TH>Имя</TH> <TH>Число чашек</TH> <TH>Тип кофе</TH> <TH>Сахар?</TH> <TR> <TD>Т. Секстон</TD> <TD>10</TD> <TD>Эспрессо</TD> <TD>Нет</TD> <TR> <TD>Дж. Диннен</TD> <TD>5</TD> <TD>Без кофеина</TD> <TD>Да</TD> </TABLE>
В следующем примере агент пользователя должен отобразить границу шириной в пять пикселов слева и справа от таблицы и rules между столбцами.
<TABLE border="5" frame="vsides" rules="cols"> <TR> <TD>1 <TD>2 <TD>3 <TR> <TD>4 <TD>5 <TD>6 <TR> <TD>7 <TD>8 <TD>9 </TABLE>
Следующие настройки должны рассматриваться агентами пользователей для обеспечения совместимости с предыдущими версиями.
Настройка ="0" подразумевает ="void" и, если не указано другое, ="none".
Другие значения предполагают ="border" и, если не указано другое, ="all".
Значение "border" в начальном теге элемента должно интерпретироваться как значение атрибута . Предполагается, что ="all" и используется некоторое стандартное значение (не нулевое) для атрибута .
Например, следующие определения эквивалентны:
<TABLE border="2"> <TABLE border="2" frame="border" rules="all">
следующим:
<TABLE border> <TABLE frame="border" rules="all">
Примечание. Атрибут также определяет отображение границы для элементов и , но принимает для этих элементов различные значения.
Группировка элементов: элементы DIV и SPAN
<!ELEMENT - - ()* -- общий контейнер языка/стиля --> <!ATTLIST DIV -- , , -- > <!ELEMENT - - ()* -- общий контейнер языка/стиля --> <!ATTLIST SPAN -- , , -- >
Начальный тег: обязателен, Конечный тег: обязателен
Определения атрибутов
href =
Этот атрибут указывает ресурс, предоставляющий дополнительную информацию о содержимом элемента или .
Атрибуты, определяемые в любом другом месте
, () (информация о языке), () () (встроенная информация о стиле information) () , , , , , , , , , (внутренние события)
Элементы и вместе с атрибутами и обеспечивают общий механизм добавления в документы структуры. Эти элементы определяют встраиваемую информацию () или информацию уровня блока (), но не налагают никаких других выражений для представления контекста. Таким образом, авторы могут использовать эти элементы с , атрибутами и т.д..
Предположим, Вы хотите сгенерировать документ в формате HTML на основе базы данных информации о клиентах. Поскольку HTML не включает элементов для идентификации таких объектов как "клиент", "номер телефона", "адрес электронной почты" и т.д., мы используем элементы и для достижения нужных эффектов структуры и представления. Для структурирования информации мы могли использовать элемент следующим образом:
<!-- Пример данных из базы данных о клиентах: --> <!-- Имя: Stephane Boyera, Тел.: (212) 555-1212, Email: sb@foo.org -->
<DIV id="client-boyera" class="client"> <P><SPAN class="client-title">Информация о клиенте:</SPAN> <TABLE class="client-data"> <TR><TH>Фамилия:<TD>Boyera</TR> <TR><TH>Имя:<TD>Stephane</TR> <TR><TH>Тел:<TD>(212) 555-1212</TR> <TR><TH>Email:<TD>sb@foo.org</TR> </TABLE> </DIV>
<DIV id="client-lafon" class="client"> <P><SPAN class="client-title">Информация о клиенте:</SPAN> <TABLE class="client-data"> <TR><TH>Фамилия:<TD>Lafon</TR> <TR><TH>Имя:<TD>Yves</TR> <TR><TH>Тел:<TD>(617) 555-1212</TR> <TR><TH>Email:<TD>yves@coucou.com</TR> </TABLE> </DIV>
Затем мы легко сможем добавить объявление таблицы стиля для настройки представления этих записей.
Другой пример см. в разделе об атрибутах .
Визуальные агенты пользователей обычно помещают символ перевода строки перед и после элементов , например:
<P>ааааааааа<DIV>ббббббббб</DIV><DIV>ввввв<P>ввввв</DIV>
что обычно генерируется как:
ааааааааа ббббббббб ввввв
ввввв
Группы столбцов: элементы и
Группы столбцов позволяют создавать структурные подразделения внутри таблицы. Авторы могут выделять такую структуру с помощью таблиц стилей или атрибутов HTML (например, атрибут для элемента ). Пример визуального представления группы столбцов см. в .
Таблица может содержать одну неявную группу столбцов (элемент не разделяет столбцы) или любое число явных групп столбцов (каждая из которых отделяется одним экземпляром элемента ).
Элемент позволяет авторам использовать одни и те же атрибуты в различных столбцах, не используя структурной группировки. "span" элемента - это число столбцов, использующих атрибуты этого элемента.
Группы строк: элементы THEAD, TFOOT и TBODY
<!ELEMENT - O (TR)+ -- заголовок таблицы --> <!ELEMENT - O (TR)+ -- нижний заголовок таблицы -->
Начальный тег: обязателен, конечный тег: необязателен
<!ELEMENT O O (TR)+ -- тело таблицы -->
Начальный тег: необязателен, конечный тег: необязателен
<!ATTLIST (THEAD|TBODY|TFOOT) -- раздел таблицы -- -- , , -- -- горизонтальное выравнивание в ячейках -- -- вертикальное выравнивание в ячейках -- >
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , ,
()
, , ,
()
Строки таблицы могут группироваться в заголовки, нижние заголовки и один или несколько разделов тела таблицы с помощью элементов , и соответственно. Это подразделение позволяет агентам пользователей поддерживать прокрутку тела таблицы независимо от заголовков. При печати длинных таблиц информация из заголовков может повторяться на каждой странице, на которой имеются данные таблицы.
Заголовки таблицы должны содержать информацию о столбцах таблицы. Тело таблицы должно содержать строки данных таблицы.
Если элементы , и присутствуют, каждый из них содержит группу строк. Каждая группа строк должна содержать по крайней мере одну строку, определяемую элементом .
В этом примере показан порядок и структура заголовков таблицы, нижних заголовков и тел.
<TABLE> <THEAD> <TR> ...заголовок...
</THEAD> <TFOOT> <TR> ...нижний заголовок...
</TFOOT> <TBODY> <TR> ...первая строка данных блока 1...
<TR> ...вторая строка данных блока 1...
</TBODY> <TBODY> <TR> ...первая строка данных блока 2...
<TR> ...вторая строка данных блока 2...
<TR> ...третья строка данных блока 2...
</TBODY> </TABLE>
Элемент должен располагаться до элемента в определении , чтобы агенты пользователей могли генерировать нижний заголовок до получения всех (возможно, многочисленных) строк данных. Ниже приводится сводка обязательных тегов и тегов, которые можно опустить:
Начальный тег всегда обязателен, если только таблица не содержит единственного тела без верхних и нижних заголовков. Конечный тег всегда можно опускать.
Начальные теги для элементов и обязательны, если в таблице присутствуют верхний и нижний заголовки, но соответствующие конечные теги можно опускать.
Соответствующий спецификации агент пользователя при разборе должен obey эти правила из соображений совместимости с предыдущими версиями.
Таблицу из предыдущего примера можно сократить, удалив конечные теги, как показано ниже:
<TABLE> <THEAD> <TR> ...верхний заголовок...
<TFOOT> <TR> ...нижний заголовок...
<TBODY> <TR> ...первая строка данных блока 1...
<TR> ...вторая строка данных блока 1...
<TBODY> <TR> ...первая строка данных блока 2...
<TR> ...вторая строка данных блока 2...
<TR> ...третья строка данных блока 2...
</TABLE>
Разделы , и должны содержать одинаковое число столбцов.
Идентификаторы элементов: атрибуты id and class
Определения атрибутов
id = name
Этот атрибут назначает элементу имя. Имя в пределах документа должно быть уникальным.
class = cdata-list
Этот атрибут назначает элементу имя класса или набор имен классов. Одно и то же имя или имена классов могут быть назначены любому числу элементов. Несколько имен классов должны быть разделены пробелами.
Атрибут назначает элементу уникальный идентификатор (который может проверяться синтаксическим анализатором SGML). Например, следующие абзацы распознаются по значениям их атрибутов :
<P id="myparagraph"> Этот абзац имеет уникальное имя.</P> <P id="yourparagraph"> Этот абзац тоже имеет уникальное имя.</P>
Атрибут имеет в HTML несколько ролей:
Способ выбора .
Назначение цели для гипертекстовых ссылок.
Средство ссылки на определенный элемент сценария.
Имя объявленного объекта .
В целях обработки агентами пользователей (например. для полей идентификации при извлечении данных из страниц HTML в базу данных, преобразовании документов HTML в другие форматы и т.д.).
Атрибут , с другой стороны, назначает одно или несколько имен классов элементу; при этом элемент может называться принадлежащим к этим классам. Имя класса может использоваться несколькими экземплярами элемента. Атрибут имеет в HTML несколько ролей:
Способ выбора (когда автор хочет назначить информацию о стиле набору элементов).
Для общей обработки агентами пользователей.
Далее элемент example используется вместе с атрибутами и для пометки сообщений документа. Сообщения отображаются в английской и русской версиях.
<!-- английские сообщения --> <P><SPAN id="msg1" class="info" lang="en">Variable declared twice</SPAN> <P><SPAN id="msg2" class="warning" lang="en">Undeclared variable</SPAN> <P><SPAN id="msg3" class="error" lang="en">Bad syntax for variable name</SPAN>
<!-- русские сообщений --> <P><SPAN id="msg1" class="info" lang="fr">Переменная объявлена дважды</SPAN> <P><SPAN id="msg2" class="warning" lang="fr">Переменная не объявлена</SPAN> <P><SPAN id="msg3" class="error" lang="fr">Синтаксическая ошибка в имени переменной</SPAN>
Следующие правила стиля CSS сообщат агентам пользователя о необходимости отображения информации зеленым цветом, предупреждений - желтым, а сообщений об ошибках - красным:
SPAN.info { color: green } SPAN.warning { color: yellow } SPAN.error { color: red }
Помните, что русской "msg1" и английское "msg1" не могут отображаться в одном документе, поскольку они используют одно и то же значение атрибута . Авторы могут извлечь дальнейшую пользу, используя атрибут для усовершенствования представления отдельных сообщений, указания их в качестве целей (якорей) и т.д.
Почти каждому элементу HTML может быть назначен идентификатор и информация о классе.
Предположим, мы пишем документ о языке программирования. Этот документ должен включать ряд отформатированных примеров. Для форматирования примеров мы используем элемент . Мы также назначаем цвет фона (зеленый) всем экземплярам элемента , принадлежащим классу "example".
<HEAD> <TITLE>... название документа...</TITLE> <STYLE type="text/css"> PRE.example { background : green } </STYLE> </HEAD> <BODY> <PRE class="example" id="example-1"> ...код примера...
</PRE> </BODY>
Установив атрибут для этого примера, мы можем (1) создать на него гиперссылку и (2) использовать информацию о стиле, отличную от определенной в таблицы, для одного экземпляра информации о стиле.
Примечание. Атрибут использует одно пространство имен с атрибутом name, если он используется для имен якорей. Подробнее см. в разделе о .
Информация о языке и направление текста
В этом разделе документа обсуждаются два важных вопроса интернационализации HTML: задание языка (атрибут ) и направления (атрибут ) текста в документе.
Информация о пути: элемент BASE
<!ELEMENT - O EMPTY -- базовый URI документа --> <!ATTLIST BASE #REQUIRED -- URI, служащий базовым -- >
Начальный тэг: обязателен, Конечный тэг: запрещен
Определения атрибутов
href =
Этот атрибут задает абсолютный URI, служащий базовым URI для разрешения относительных URI.
Атрибуты, определяемые в другом месте
()
В HTML ссылки на внешние изображения, апплеты, программы для обработки форм, таблицы стилей и т.д. всегда задаются с помощью URI. Относительные URI в соответствии с базовым URI, который может определяться из различных источников. Элемент позволяет авторам явно указать базовый URI документа.
Если элемент указан, он должен присутствовать в разделе документа HTML, до элементов, ссылающихся на внешние ресурсы. Информация о пути, указанная в элементе , влияет только на URI в документе, в котором присутствует этот элемент.
Например, даны следующее объявление и объявление :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <HTML> <HEAD> <TITLE>Наши продукты</TITLE> <BASE href="http://www.aviary.com/products/intro.html"> </HEAD>
<BODY> <P>Вы видели наши <A href="../cages/birds.gif">клетки для птиц</A>? </BODY> </HTML>
относительный URI "../cages/birds.gif" будет разрешен в:
http://www.aviary.com/cages/birds.gif
Информация о версии HTML
В документе HTML должна быть объявлена используемая в нем версия языка HTML. Объявление типа документа указывает определение типа документа (DTD), используемое в этом документе (см. [ISO8879]).
HTML 4.0 определяет три DTD, так что авторы должны включать в свои документы одно из следующих объявлений типов. Разница между DTD заключается в поддерживаемых ими элементах.
HTML 4.0 Strict DTD (строгое определение) включает все элементы и атрибуты, не являющиеся и не использующиеся в документах с кадрами. Для документов, использующих это DTD, используйте такое объявление типа документа:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
HTML 4.0 Transitional DTD (переходное определение) включает все, что включено в строгое DTD, а также нежелательные элементы и атрибуты (большинство из которых относится к визуальному представлению). Для документов, использующих это DTD, используйте такое объявление типа документа:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
HTML 4.0 Frameset DTD (определение для кадров) включает все, что включено в переходное DTD, а также кадры. Для документов, использующих это DTD, используйте такое объявление типа:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd">
URI в каждом объявлении типа документа позволяет агентам пользователей загрузить DTD и все необходимые . Следующие URI указывают на DTD и наборы комбинаций для HTML 4.0, поддерживаемого W3C:
"" - строгое DTD по умолчанию "" - переходное DTD "" -- DTD для документов, использующих кадры "" - комбинации Latin-1 "" - комбинации символов "" - специальные комбинации
Связь между общими идентификаторами и файлами можно указать с использованием файла каталога, за которым следует формат, рекомендуемый Открытым консорциумом SGML (см. [SGMLOPEN]). включен в начало раздела о справочной информации об SGML для HTML. Две последние буквы декларации указывают язык DTD. Для HTML это всегда английский ("EN").
Инициализация объекта: элемент PARAM
<!ELEMENT - O EMPTY -- значение именованного свойства --> <!ATTLIST PARAM #IMPLIED -- идентификатор в пределах документа -- #REQUIRED -- имя свойства -- #IMPLIED -- значение свойства -- (DATA|REF|OBJECT) DATA -- Как интерпретировать значение -- #IMPLIED -- тип содержимого для значения, если valuetype=ref -- >
Начальный тег: обязателен, Конечный тег: запрещен
Определения атрибутов
name = cdata Этот атрибут определяет имя рабочего параметра, которое должно быть понятно вставляемому объекту. Учитывает ли имя свойства регистр, зависит от конкретной реализации объекта.
value = Этот атрибут определяет значение рабочего параметра, задаваемого атрибутом . Значения свойств не имеют значения в HTML; их значение определяется объектом.
valuetype = data|ref|object
Этот атрибут определяет тип атрибута value. Возможные значения:
data: Это значение используется по умолчанию. Оно означает, что значение, задаваемое атрибутом value, будет определяться и передаваться в объект в виде строки.
ref: Значение, задаваемое атрибутом value, является адресом URI ресурса, где хранятся рабочие значения. Это позволяет средствам поддержки идентифицировать адреса URI, данные в качестве параметров. Адрес URI должен передаваться в объект как есть, то есть неразрешенным.
object: Значение, задаваемое атрибутом value, является идентификатором, ссылающимся на объявление в этом же документе. Идентификатором должно быть значение атрибута для объявленного элемента .
type = content-type [CI]
Этот атрибут задает тип содержимого ресурса, назначаемого атрибутом value только в случае, если значением атрибута является "ref". Таким образом, этот атрибут определяет для агента пользователя тип значений, которые будут находиться по адресу URI, назначенному атрибутом value.
Атрибуты, определенные в другом месте
()
Элементы определяют набор значений, которые могут понадобиться объекту во время работы. В элементах или может присутствовать любое число атрибутов в любом порядке, но они должны помещаться в начале тела включающего элемента или .
Синтаксис имен и значений считается понятным обработчику объекта. Данный документ не указывает, как агенты пользователей должны загружать пары имя/значение, а также того, как они должны интерпретировать повторяющиеся имена параметров.
Вернемся к примеру с часами и покажем использование элемента : предположим, что апплет может принимать два рабочих параметра, определяющих его начальную высоту и ширину. Мы можем установить исходные размеры 40x40 пикселов с помощью двух элементов .
<P><OBJECT classid="http://www.miamachina.it/analogclock.py"> <PARAM name="height" value="40" valuetype="data"> <PARAM name="width" value="40" valuetype="data"> Этот агент пользователя не может сгенерировать приложение на языке Python. </OBJECT>
В следующем примере рабочие данные для параметра "Init_values" объекта задаются в виде внешнего ресурса (файл GIF). Таким образом для атрибута устанавливается значение "ref", а атрибутом value является адрес URI ресурса.
<P><OBJECT classid="http://www.gifstuff.com/gifappli" standby="Загрузка Элвиса..."> <PARAM name="Init_values" value="./images/elvis.gif"> valuetype="ref"> </OBJECT>
Обратите внимание, что мы также установили атрибут , так что агент пользователя может отобразить сообщение во время загрузки генерирующего механизма.
Когда элемент сгенерирован, агенты пользователя должны выполнить поиск содержимого только для тех элементов , которые являются их прямыми дочерними элементами и "feed" их to the .
Таким образом, в следующем примере, если сгенерирован "obj1", "param1" применяется к "obj1" (и не применяется к "obj2"). Если "obj1" не сгенерирован, а "obj2" сгенерирован, "param1" игнорируется, а "param2" применяется к "obj2". Если ни один не сгенерирован, ни один не применяется.
<P> <OBJECT id="obj1"> <PARAM name="param1"> <OBJECT id="obj2"> <PARAM name="param2"> </OBJECT> </OBJECT>
Интернационализация и ссылки
Поскольку ссылки могут указывать на документы, использующие другие , элементы и поддерживают атрибут . Этот атрибут позволяет авторам рекомендовать агентам пользователей кодировку данных в связанном документе.
Атрибут hreflang предоставляет агенту пользователя информацию о языке связанного ресурса, точно так же, как атрибут предоставляет информацию о языке содержимого элемента или значениях атрибутов.
Имея дополнительные знания, агенты пользователей должны иметь возможность не представлять пользователю "мусор". Вместо этого они могут находить ресурсы, необходимые для корректного представления документа или, если они не могут найти эти ресурсы, по крайней мере уведомить пользователя о невозможности прочтения документа с указанием причины.
Интерпретация кодов языков
В контексте HTML код языка должен интерпретироваться агентами пользователя как иерархия знаков, а не один знак. Если агент пользователя генерирует изображение в соответствии с информацией о языке (скажем, сравнивая языковые коды в таблицах стилей и значения атрибута ), он всегда должен находить точное соответствие, но должен также принимать во внимание первичные коды. Таким образом, если значение атрибута "en-US" установлено для элемента , агент пользователя должен сначала выбрать информацию о стиле, совпадающую с "en-US", а затем сгенерировать более общее значение "en".
Примечание. Иерархия кодов языков не гарантирует понимания всех языков с общими префиксами людьми, бегло говорящими на одном или нескольких из этих языков. Она помогает пользователю запросить эту общность, когда для пользователя она является истинной.
Ячейки, span несколько строк или столбцов
Ячейки могут span несколько строк или столбцов. Число строк или столбцов, spanned ячейкой, устанавливается с помощью атрибутов и элементов и .
В этом определении таблицы мы указываем, что ячейка в четвертой строке во втором столбце span все три столбца, включая текущий.
<TABLE border="1"> <CAPTION> Сколько чашек кофе выпивает каждый сенатор </CAPTION> <TR><TH>Имя<TH>Число чашек<TH>Тип кофе<TH>Сахар? <TR><TD>Т. Секстон<TD>10<TD>Эспрессо<TD>Нет <TR><TD>Дж. Диннен<TD>5<TD>Без кофеина<TD>Да <TR><TD>А. Сориа<TD colspan="3"><em>Нет данных</em> </TABLE>
На терминале эта таблица может генерироваться следующим образом:
Сколько чашек кофе выпивает каждый сенатор ---------------------------------------------- | Имя |Число чашек|Тип кофе |Сахар?| ---------------------------------------------- |Т. Секстон|10 |Эспрессо |Нет | ---------------------------------------------- |Дж. Диннен|5 |Без кофеина |Да | ---------------------------------------------- |А. Сориа |Нет данных | ----------------------------------------------
В следующем примере показано (с помощью границ таблицы), как определения ячеек, span несколько строк или столбцов, влияют на определения следующих ячеек. Рассмотрите следующее определение таблицы:
<TABLE border="1"> <TR><TD>1 <TD rowspan="2">2 <TD>3 <TR><TD>4 <TD>6 <TR><TD>7 <TD>8 <TD>9 </TABLE>
Поскольку ячейка "2" spans первую и вторую строки, определение второй строки будет принято во внимание. Таким образом, второй элемент в строке два в действительности определяет третью ячейку строки. Визуально на терминале таблица может генерироваться следующим образом:
------------- | 1 | 2 | 3 | ----| |---- | 4 | | 6 | ----|---|---- | 7 | 8 | 9 | -------------
а графический агент пользователя может представить ее так:
Помните, что, если элемент , определяющий ячейку "6", опущен, агенты пользователя будут добавлять дополнительную пустую ячейку, чтобы заполнить строку.
Точно так же в следующем определении таблицы:
<TABLE border="1"> <TR><TD>1 <TD>2 <TD>3 <TR><TD colspan="2">4 <TD>6 <TR><TD>7 <TD>8 <TD>9 </TABLE>
ячейка "4" spans два столбца, так что второй элемент в строке на самом деле определяет третью ячейку ("6"):
------------- | 1 | 2 | 3 | --------|---- | 4 | 6 | --------|---- | 7 | 8 | 9 | -------------
Графический агент пользователя может представить это следующим образом:
Определение перекрывающихся ячеек является ошибкой. Агенты пользователей могут по-разному обрабатывать эту ошибку (например, они могут по-разному генерировать такие таблицы).
В следующем примере недопустимого использования показано, как можно создать перекрывающиеся ячейки. В этой таблице ячейка "5" spans две строки, а ячейка "7" spans два столбца, так что они обе используют ячейку между "7" и "9":
<TABLE border="1"> <TR><TD>1 <TD>2 <TD>3 <TR><TD>4 <TD rowspan="2">5 <TD>6 <TR><TD colspan="2">7 <TD>9 </TABLE>
Ячейки таблицы: элементы TH и TD
<!ELEMENT (|) - O ()* -- ячейка заголовка таблицы, ячейка данных таблицы -->
<!-Для большинства таблиц атрибут scope проще, чем атрибут axes --> <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
<!-- TH используется для заголовков, TD - для данных, но для ячеек, служащих и тем, и другим используйте TD --> <!ATTLIST (TH|TD) -- заголовок ячейки данных -- -- , , -- #IMPLIED -- сокращение для ячейки заголовка -- #IMPLIED -- группы имен связанных заголовков -- #IMPLIED -- список id для ячеек заголовков -- #IMPLIED -- область ячеек заголовков -- 1 -- число строк, spanned ячейкой -- 1 -- число столбцов, spanned ячейкой -- -- горизонтальное выравнивание в ячейках -- -- вертикальное выравнивание в ячейках -- >
Начальный тег: обязателен, Конечный тег: не обязателен
Определения атрибутов
headers =
В этом атрибуте указывается список ячеек заголовков, предоставляющих заголовочную информацию для текущей ячейки данных. Значением этого атрибута является разделенный пробелами список названий ячеек; имена ячейкам должны даваться с помощью атрибута . Авторы обычно используют атрибут с целью помочь невизуальным агентам пользователей в генерации заголовков ячеек данных (например, заголовок произносится перед прочтением данных ячейки), но этот атрибут может также использоваться вместе с таблицами стилей. См. также атрибут .
scope = имя области действия
Этот атрибут определяет набор ячеек данных, для которых заголовочная информация задается текущим заголовком. Этот атрибут может использоваться вместо атрибута a href="tables.html#adef-headers" class="noxref">headers, особенно в простых таблицах. Если этот атрибут используется, он должен иметь одно из следующих значений:
row: В ячейке представлена заголовочная информация для оставшейся части строки, в которой содержится эта ячейка (см. также раздел о ). col: В текущей ячейке представлена заголовочная информация для оставшейся части столбца, в котором содержится эта ячейка. rowgroup: В ячейке представлена заголовочная информация для оставшейся , в которой содержится эта ячейка. colgroup: В ячейке представлена заголовочная информация для оставшейся , в которой содержится эта ячейка.
abbr =
Этот атрибут следует использовать для представления сокращенной формы содержимого ячейки; он может генерироваться агентами пользователей в подходящий момент вместо содержимого ячейки. Сокращенные имена должны быть короче, и агенты пользователей могут повторять их. Например, синтезаторы речи могут генерировать сокращенные заголовки, относящиеся к определенной ячейке, перед генерацией содержимого ячейки.
axis =
Этот атрибут может использоваться вместо ячейки в концептуальных категориях, которая может использоваться для формирования axes в n-мерном пространстве. Агенты пользователей могут давать пользователям доступ к этим категориям (например, пользователь может запрашивать у агента все ячейки, принадлежащие к определенной категории, агент пользователя может представлять таблицу в форме оглавления и т.д.). Подробнее см. в разделе о . Значением этого атрибута является список имен категорий, разделенных запятыми.
rowspan =
Этот атрибут определяет число строк, spanned текущей ячейкой. По умолчанию используется значение один ("1"). Значение ноль ("0") означает, что ячейка spans все строки от текущей до последней строки таблицы.
colspan =
Этот атрибут определяет число столбцов, spanned текущей ячейкой. По умолчанию используется значение один ("1"). Значение ноль ("0") означает, что ячейка spans все столбцы от текущего до последнего столбца таблицы.
nowrap
Если этот логический атрибут используется, он сообщает визуальным агентам пользователей о необходимости отключить автоматическое разбиение текста для этой ячейки. Для разбиения строк вместо этого атрибута должны использоваться . Примечание. при невнимательном использовании этот атрибут может привести к тому, что ячейки будут очень широкими.
width = Этот атрибут дает агентам пользователей рекомендуемую ширину ячейки.
height = Нежелателен. Этот атрибут дает агентам пользователей рекомендуемую высоту ячейки.
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , , ()
()
, , , ()
Ячейки таблицы могут содержать информацию двух типов: заголовочную информацию и данные. Это различие позволяет агентам пользователей генерировать ячейки заголовков и данных различным образом даже при отсутствии таблиц стилей. Например, визуальные агенты пользователей могут представлять текст ячеек заголовков жирным шрифтом. Синтезаторы речи могут выделять заголовочную информацию голосом.
Элемент определяет ячейку, содержащую информацию заголовка. Агентам пользователей доступны две части заголовочной информации: содержимое элемента и значение атрибута . Агенты пользователей должны генерировать содержимое ячейки или значение атрибута . Для визуальных устройств последнее может иметь смысл, если пространства для генерации полного содержимого ячейки недостаточно. Для невизуальных устройств может использоваться в качестве сокращения для заголовков таблиц, когда они генерируются вместе с содержимым ячеек, к которым они относятся.
Атрибуты и также позволяют авторам помочь невизуальным агентам пользователей в обработке информации заголовка. Подробную информацию и примеры см. в разделе о .
Элемент определяет ячейку, содержащую данные.
Ячейка может быть пустой (т.е. не содержать данных).
Например, в следующей таблице содержится четыре столбца данных, каждый столбец имеет заголовок.
<TABLE summary="В этой таблице показан график числа чашек кофе, выпиваемых каждым сенатором, тип кофе (без кофеина или обычный) и наличие сахара."> <CAPTION>Сколько чашек кофе выпивает каждый сенатор</CAPTION> <TR> <TH>Имя</TH> <TH>Число чашек</TH> <TH>Тип кофе</TH> <TH>Сахар?</TH> <TR> <TD>Т. Секстон</TD> <TD>10</TD> <TD>Эспрессо</TD> <TD>Нет</TD> <TR> <TD>Дж. Диннен</TD> <TD>5</TD> <TD>Без кофеина</TD> <TD>Да</TD> </TABLE>
Агент пользователя, выполняющий генерацию для терминала, может отобразить это следующим образом:
Имя Число чашек Тип кофе Сахар?
Т. Секстон 10 Эспрессо Нет Дж. Диннен 5 Без кофеина Да
Якоря с атрибутом id
Атрибут может использоваться для создания якоря в начальном тэге любого элемента (включая элемент ).
В данном примере показано использование атрибута для размещения якоря в элементе . Связь с якорем осуществляется с помощью элемента .
Подробнее об этом Вы можете прочесть в <A href="#section2">Разделе 2</A>. ...далее в документе
<H2 id="section2">Раздел 2</H2> ...далее в документе
<P>Подробнее см. в <A href="#section2">Разделе 2</A> выше.
В следующем примере имя целевого якоря задается с помощью атрибута :
Я только что вернулся из отпуска! Вот <A id="anchor-two">фотография моей семьи на озере.</A>.
Атрибуты и используют одно и то же пространство имен. Это означает, что они не могут определять якорь с одним и тем же именем в одном и том же документе.
ПРИМЕР НЕДОПУСТИМОГО ИСПОЛЬЗОВАНИЯ:
Далее показан недопустимый фрагмент кода HTML, поскольку эти атрибут объявляют одно и то же имя дважды в пределах одного документа.
<A href="#a1">...</A> ... <H1 id="a1"> ...страницы и страницы...
<A name="a1"></A>
По спецификации в HTML DTD атрибут может содержать ссылки на символы. Таким образом, значение Dürst является допустимым для атрибута , так же как Dürst . Атрибут не может содержать ссылки на символы.
Что использовать - или ? При выборе элемента или для указания имени якоря авторы должны иметь в виду следующее:
Атрибут может быть не только именем якоря (а также селектором таблицы стилей, идентификатором обработки и т.д.).
Некоторые агенты пользователей более старых версий не поддерживают якоря, созданные с помощью атрибута .
Атрибут обеспечивает более разнообразные имена якорей (с использованием ).
Элемент A
<!ELEMENT - - ()* -(A) -- якорь (точка ссылки) --> <!ATTLIST A -- , , -- #IMPLIED -- кодировка символов связанного ресурса -- #IMPLIED -- рекомендуемый тип содержимого -- #IMPLIED -- конец именованной ссылки -- #IMPLIED -- URI связанного ресурса -- #IMPLIED -- код языка -- #IMPLIED -- типы прямых ссылок -- #IMPLIED -- типы обратных ссылок -- #IMPLIED -- клавиша доступа -- rect -- для использования с клиентскими навигационными картами -- #IMPLIED -- для использования с клиентскими навигационными картами -- #IMPLIED -- положение в последовательности перехода -- #IMPLIED -- фокус на элементе -- #IMPLIED -- фокус вне элемента -- >
Начальный тэг: обязателен, Конечный тэг: обязателен
Определения атрибутов
name = cdata
Этот атрибут дает якорю имя, так что он может служить целью другой ссылки. Значением этого атрибута должно быть уникальное имя. Область действия имени - текущий документ. Обратите внимание, что этот атрибут использует общее пространство имен с атрибутом .
href = uri
Этот атрибут определяет местоположение ресурса Web, определяя связь между текущим элементом (исходным якорем) и целевым якорем, определяемым этим атрибутом.
hreflang =
Этот атрибут задает базовый язык ресурса, назначаемого атрибутом , и может использоваться, только если указан атрибут .
type =
Если этот атрибут задан, он определяет тип части содержимого, например, результат обратного действия ссылки на ресурс. Типы содержимого определены в разделе [MIMETYPES].
rel =
Этот атрибут описывает отношение из текущего документа к якорю, заданному атрибутом . Значением этого атрибута является разделенный пробелами список типов ссылок.
rev =
Этот атрибут используется для описания из якоря, задаваемого атрибутом , в текущий документ. Значением этого атрибута является разделенный пробелами список типов ссылок.
charset =
Этот атрибут задает кодировку символов назначаемого ссылкой ресурса. Подробнее см. в разделе о .
Атрибуты, определяемые в другом месте
, ()
(), ()
()
()
and ()
, , , , , , , , , , , (внутренние события)
()
()
()
Каждый элемент A определяет якорь
Содержимое элемента определяет положение якоря.
Атрибут задает имя якоря, так что он может служить пунктом назначения любого числа ссылок (см. также ).
Атрибут назначает якорь пунктом назначения ровно одной ссылки.
Авторы также могут создавать элемент , не определяющий ни одного якоря, и не указывающий , или . Значения этих атрибутов могут устанавливаться позднее с помощью скриптов.
В следующем примере элемент определяет ссылку. Исходным якорем является текст " Web-сайте W3C", а пунктом назначения - "http://www.w3.org/":
Подробнее о W3C Вы можете узнать на <A href="http://www.w3.org/"> Web-сайте W3C</A>.
Эта ссылка указывает на страницу World Wide Web Consortium. Если пользователь активизирует эту ссылку в своем агенте, агент загрузит ресурс, в данном случае - документ HTML.
Обычно агенты пользователей представляют ссылки так, чтобы они были очевидны для пользователей (подчеркивание, обратное видео и т.д.). Конкретное представление зависит от агента пользователя. Представление может различаться в зависимости от того, посещал ли уже пользователь указанную ссылку. Возможное визуальное представлением предыдущей ссылки:
Подробнее о W3C Вы можете узнать на Web-сайте W3C. ~~~~~~~~~~~~~
Чтобы дать агентам пользователей явное указание кодировки символов целевой страницы, установите атрибут :
Подробнее о W3C Вы можете узнать на <A href="http://www.w3.org/" charset="ISO-8859-1">Web-сайте W3C</A>
Предположим, мы определяем якорь с именем "anchor-one" в файле "one.html".
...текст до якоря...
<A name="anchor-one">Это местоположение первого якоря.</A> ...текст после якоря...
В данном фрагменте вокруг текста "Это местоположение первого якоря" создается якорь. Обычно содержимое элемента не представляется каким-либо особым образом, если элемент определяет только якорь.
Определив якорь, мы можем связать его с этим же или с другим документом. URI, назначающие якорь, включают символ "#", за которым следует имя якоря (идентификатор фрагмента). Вот несколько примеров таких URI:
Абсолютный URI:
http://www.mycompany.com/one.html#anchor-one
Относительный URI: ./one.html#anchor-one или one.html#anchor-one
Если ссылка определена в том же документе: #anchor-one
Таким образом, ссылка, определенная в файле "two.html", который находится в одном каталоге с файлом "one.html", будет указывать на этот якорь следующим образом:
...текст до ссылки...
Подробнее см. <A href="./one.html#anchor-one"> первый якорь</A>. ...текст после ссылки...
Элемент в следующем примере задает ссылку (с помощью атрибута ) и одновременно создает именованный якорь (с помощью атрибута ):
Я только что вернулся из отпуска! Вот <A name="anchor-two" href="http://www.somecompany.com/People/Ian/vacation/family.png"> фотография моей семьи на озере.</A>.
В этом примере содержится ссылка на другой тип ресурса Web (изображение в формате PNG). Активизация ссылки должна привести к загрузке изображения из Web (и, возможно, его отображению, если система сконфигурирована соответствующим образом).
Примечание.
Агенты пользователей должны уметь находить якоря, созданные пустыми элементами , но некоторые агенты не могут этого делать. Например, некоторые агенты пользователей могут не найти "empty-anchor" в следующем фрагменте HTML:
<A name="empty-anchor"></A> <EM>...некоторые текст в формате HTML...</EM> <A href="#empty-anchor">Ссылка на пустой якорь</A>
Элемент ADDRESS
<!ELEMENT ADDRESS - - ()* -- информация об авторе --> <!ATTLIST ADDRESS -- , , -- >
Начальный тег: обязателен, Конечный тег: обязателен
Атрибуты, определяемые в любом другом месте
, () (), () , , , , , , , , , (внутренние события)
Элемент может использоваться авторами для указания контактной информации или основной части документа, такой как форма. Этот элемент часто находится в начале или в конце документа.
Например, страница на сервере W3C, относящаяся к языку HTML, может включать следующую контактную информацию:
<ADDRESS> <P><A href="../People/Raggett/">Dave Raggett</A>, <A href="../People/Arnaud/">Arnaud Le Hors</A>, contact persons for the <A href="Activity">W3C HTML Activity</A><BR> $Date: 1997/12/16 05:38:14 $ </ADDRESS>
Элемент BODY
<!ELEMENT O O (|SCRIPT)+ +(INS|DEL) - тело документа --> <!ATTLIST BODY -- , , -- #IMPLIED -- документ загружен -- #IMPLIED -- документ удален -- >
Начальный тег: не обязателен, Конечный тег: не обязателен
Определения атрибутов
background = Значение этого атрибута - URI, указывающий на изображение. Это изображение является фоном (для визуальных браузеров).
text = Этот атрибут устанавливает цвет текста (для визуальных браузеров).
link =
Этот атрибут устанавливает цвет текста гипертекстовых ссылок, по которым Вы не переходили (для визуальных браузеров).
vlink = color
Этот атрибут устанавливает цвет текста ссылок, по которым Вы переходили (для визуальных браузеров).
alink =
Этот атрибут устанавливает цвет текста ссылок, когда они выбраны пользователем (для визуальных браузеров).
Атрибуты, определяемые в любом другом месте
, () (), () () (встроенная информация о стиле) (цвет фона) , (внутренние события) , , , , , , , , , (внутренние события)
В теле документа располагается содержание документа. Содержимое может представляться агентом пользователя несколькими способами. Например, для визуальных браузеров Вы можете считать тело документа полотном, на котором отображается содержимое: текст, изображения, цвета, рисунки и т.д. Для аудиоагентов пользователей оно может произноситься. Поскольку предпочтительным способом задания представления документов теперь являются , атрибуты представления в теге являются .
ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
В следующем фрагменте кода HTML показано использование атрибута. Он устанавливает белый цвет фона, черный цвет текста и красный цвет гиперссылок изначально, цвет фуксии при активизации ссылок и коричневый для ссылок, по которым Вы переходили.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <HTML> <HEAD> <TITLE>Динамика популяции</TITLE> </HEAD> <BODY bgcolor="white" text="black" link="red" alink="fuchsia" vlink="maroon"> ... тело документа...
</BODY> </HTML>
Используя , того же эффекта можно достичь следующим образом:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <HTML> <HEAD> <TITLE>Динамика популяции</TITLE> <STYLE type="text/css"> BODY { background: white; color: black} A:link { color: red } A:visited { color: maroon } A:active { color: fuchsia } </STYLE> </HEAD> <BODY> ... тело документа...
</BODY> </HTML>
Использование внешних (связываемых) таблиц стилей обеспечивает гибкость при изменении представления без пересмотра источника документа HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <HTML> <HEAD> <TITLE>Динамика популяции</TITLE> <LINK rel="stylesheet" type="text/css" href="smartstyle.css"> </HEAD> <BODY> ... тело документа...
</BODY> </HTML>
Кадры и тела документов HTML. В документах, содержащих кадры, элемент заменяется элементом . Подробнее см. в разделе о .
Элемент COL
<!ELEMENT - O EMPTY -- столбец таблицы --> <!ATTLIST COL -- группы и свойства столбцов -- -- , , -- 1 -- атрибут COL влияет на N столбцов -- #IMPLIED -- ширина столбца -- -- горизонтальное выравнивание в ячейках -- -- вертикальное выравнивание в ячейках -- >
Начальный тег: обязателен, Конечный тег: запрещен
Определения атрибутов
span =
Этот атрибут, значением которого должно быть целое число больше нуля, определяет число столбцов, "spanned" элементом ; атрибуты элемента распространяются на все столбцы, которые он spans. Значение по умолчанию для этого атрибута - 1 (т.е. элемент означает один столбец). Если для атрибута установлено значение N > 1, атрибуты текущего элемента распространяются на следующие N-1 столбец.
width =
Этот атрибут определяет ширину каждого столбца, spanned текущим элементом , используемую по умолчанию. Он имеет то же значение, что и атрибут для элемента и имеет над ним приоритет.
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , , ()
, , , ()
Элемент позволяет авторам группировать определения атрибутов для столбцов таблицы. Атрибут не группирует столбцы структурно - эту роль играет элемент .
Элементы являются пустыми и служат только для поддержания атрибутов. Они могут находиться внутри или вне явной группы столбцов (т.е. элемента ).
Атрибут для элемента означает ширину каждого столбца в span элемента.
Элемент COLGROUP
<!ELEMENT - O (col)* -- группа столбцов таблицы --> <!ATTLIST COLGROUP -- , , -- 1 -- число столбцов в группе, используемое по умолчанию -- #IMPLIED -- ширина для вложенных элементов COL, используемая по умолчанию -- -- горизонтальное выравнивание в ячейках -- -- вертикальное выравнивание в ячейках -- >
Начальный тег: обязателен, Конечный тег: необязателен
Определения атрибутов
span =
Этот атрибут, значением которого должно быть целое число больше нуля, определяет число столбцов в группе. Значения означают следующее:
При отсутствии атрибута каждый элемент определяет группу столбцов, состоящую из одного столбца.
Если для атрибута установлено значение N > 0, текущий элемент определяет группу, содержащую N столбцов.
Агенты пользователей должны игнорировать этот атрибут, если элемент содержит один или несколько элементов .
width =
Этот атрибут определяет ширину каждого столбца в текущей группе, используемую по умолчанию. Кроме стандартных значений в пикселах, процентах и относительных значений, в этом атрибуте может использоваться специальная форма "0*" (ноль со звездочкой), которая означает, что ширина каждого столбца в группе должна быть минимальной, необходимой для размещения содержимого столбца. Подразумевается, что содержимое столбца известно до того, как можно будет корректно вычислить его ширину. Авторы должны знать, что использование "0*" не позволит агентам пользователей генерировать таблицу последовательно.
Этот атрибут переопределяется для любого столбца из группы, для которого значение атрибута задано в элементе .
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , ,, ()
, , , ()
Элемент создает явную группу столбцов. Число столбцов в группе может быть указано двумя взаимоисключающими способами:
Атрибут элемента (значение по умолчанию - 1) задает число столбцов в группе.
Каждый элемент в представляет один или несколько столбцов в группе.
Преимуществом использования атрибута является то, что авторы могут группировать информацию о ширине столбцов. Таким образом, если в таблице содержится сорок столбцов, каждый из которых имеет ширину 20 пикселов, проще написать:
<COLGROUP span="40" width="20"> </COLGROUP>
чем:
<COLGROUP> <COL width="20"> <COL width="20"> ...все сорок элементов COL...
</COLGROUP>
Если необходимо выделить столбец (например, для информации о стиле, для указания информации о ширине и т.д.) в группе, авторы должны определить этот столбец с помощью элемента . Таким образом, чтобы применить специальную информацию о стиле к последнему столбцу предыдущей таблице, мы выделяем его следующим образом:
<COLGROUP width="20"> <COL span="39"> <COL id="format-me-specially"> </COLGROUP>
Атрибут элемента наследуют все сорок столбцов. Первый элемент относится к первым 39 столбцам (ничего особенного для них не делая), а второй назначает значение сороковому столбцу, так что на него можно будет ссылаться в таблицах стилей.
Таблица в следующем примере содержит две группы столбцов. Первая группа включает 10 столбов, вторая - 5. Ширина по умолчанию для каждого столбца в первой группе - 50 пикселов. Ширина каждого столбца во второй группе - минимальная, необходимая для этого столбца.
<TABLE> <COLGROUP span="10" width="50"> <COLGROUP span="5" width="0*"> <THEAD> <TR><TD> ...
</TABLE>
Элемент HEAD
<!-- , определенный ранее как "SCRIPT|STYLE|META|LINK|OBJECT" --> <!ENTITY % head.content "TITLE & BASE?">
<!ELEMENT O O () +() - заголовок документа --> <!ATTLIST HEAD -- , -- #IMPLIED -- каталог метаинформации -- >
Начальный тег: не обязателен, Конечный тег: не обязательно
Определения атрибутов
profile =
Этот атрибут указывает местоположение одного или нескольких профилей метаданных, отделяемых пробелами. Для расширения в будущем агенты пользователей должны предполагать, что значение является списком, хотя в данной спецификации значащим считается только первый URI. Профили обсуждаются ниже в разделе о .
Атрибуты, определяемые в любом другом месте
(), ()
Элемент содержит информацию о текущем документе, такую как заголовок, ключевые слова, которые могут использоваться поисковыми машинами, и другие данные, которые не считаются содержимым документа. Агенты пользователей обычно не используют при генерации элементы из раздела . Однако они могут предоставлять пользователям информацию из раздела с помощью своих собственных механизмов.
Элемент HTML
<!ENTITY % html.content "HEAD, BODY">
<!ELEMENT O O () -- корневой элемент документа --> <!ATTLIST HTML -- , -- >
Начальный тег: необязателен, Конечный тег: необязателен
Определения атрибутов
версия = cdata Значение этого атрибута указывает версию HTML DTD, которой подчиняется этот документ. Этот атрибут является нежелательным, поскольку он является избыточным при наличии указываемой в объявлении типа документа.
Атрибуты, определяемые в любом другом месте
(), ()
После объявления типа документа остальная часть документа HTML содержится в элементе . Таким образом, типичный документ HTML имеет такую структуру:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <HTML> ...Здесь идут заголовок, тело и т.д...
</HTML>
Элемент META
<!ELEMENT - O EMPTY -- общая метаинформация --> <!ATTLIST META -- , , для использования с содержимым -- #IMPLIED -- имя заголовка ответа HTTP -- #IMPLIED -- имя метаинформации -- #REQUIRED -- связанная информация -- #IMPLIED -- выбор формы содержимого -- >
Начальный тег: обязателен, Конечный тег: запрещен
Определения атрибутов
Для следующих атрибутов допустимые значения и их интерпретация зависят от :
name =
Этот атрибут определяет имя свойства. В данной спецификации не перечисляются допустимые значения этого атрибута.
content =
Этот атрибут определяет значение свойства. В данной спецификации не перечисляются допустимые значения этого атрибута.
scheme =
Этот атрибут дает имя схеме, используемой для интерпретации значения свойства (подробнее см. раздел о ).
http-equiv =
Этот атрибут может использоваться вместо атрибута name. Серверы HTTP используют этот атрибут для сбора информации для заголовков сообщений ответов HTTP.
Атрибуты, определяемые в любо другом месте
(), (направление текста)
Элемент может использоваться для идентификации свойств документа (например, автора, срок истечения, список ключевых слов и т.д.) и назначения им значений. В этой спецификации не определяется нормативный набор значений.
Каждый элемент задает пару свойство/значение. Атрибут name определяет свойства, а атрибут - значение.
Например, в следующем объявлении устанавливается значение свойства Author:
<META name="Author" content="Дэйв Рэггетт">
Атрибут может использоваться с элементом для указания языка значения атрибута . Это позволяет синтезаторам речи использовать правила произношения для разных языков.
В этом примере имя автора объявляется на французском языке:
<META name="Author" lang="fr" content="Arnaud Le Hors">
Примечание. Элемент - это общий механизм задания метаданных. Однако некоторые элементы и атрибуты HTML уже обрабатывают некоторые части метаданных и могут использоваться авторами вместо элементов для указания этих частей: элементы , , и , атрибут и атрибут .
Примечание. Если свойство, заданное с помощью элемента , принимает значение , некоторые авторы предпочитают указывать метаданные с помощью элемента . Таким образом, следующее объявление:
<META name="DC.identifier" content="ftp://ds.internic.net/rfc/rfc1866.txt">
можно также записать следующим образом:
<LINK rel="DC.identifier" type="text/plain" href="ftp://ds.internic.net/rfc/rfc1866.txt">
Элемент TABLE
<!ELEMENT - - (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)> <!ATTLIST TABLE -- таблица -- -- , , -- #IMPLIED -- цель/структура для речевого вывода -- #IMPLIED -- ширина таблицы -- #IMPLIED -- толщина рамки вокруг таблицы -- #IMPLIED -- какие части рамки нужно генерировать -- #IMPLIED -- rulings между строками и столбцами -- #IMPLIED -- расстояние между ячейками -- #IMPLIED -- расстояние внутри ячеек -- >
Начальный тег: обязателен, конечный тег: обязателен
Определения атрибутов
summary = текст
Краткая информация о назначении и структуре таблицы для агентов пользователей, выполняющих генерацию для невизуальных средств, таких как синтезаторы речи или азбуки Бройля.
align
= left|center|right
Этот атрибут задает положение таблицы относительно документа. Допустимые значения:
left: Таблица находится в левой части документа.
center: Таблица находится в центре документа.
right: Таблицы находится в правой части документа.
width
=
Этот атрибут определяет необходимую ширину всей таблицы и предназначен для визуальных объектов пользователей. Если значение указано в процентах, это означает долю в процентах от доступного горизонтального пространства. Если ширина не указана, она определяется агентом пользователя.
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , ,
()
()
, , ()
, ()
Элемент содержит все другие элементы, определяющие заголовок, строки, содержимое и форматирование.
В следующем списке описано, какие операции может выполнять агент пользователя при генерации таблиц:
Предоставление пользователю . Авторам следует предоставлять краткую информацию о содержании и структуре таблицы, чтобы люди, работающие с невизуальными агентами пользователей, могли лучше понять ее. Генерация caption, если он определен. Генерация верхнего заголовка таблицы, если он определен. Генерация нижнего заголовка, если он определен. Агенты пользователей должны знать, где нужно генерировать верхний и нижний заголовки. Например, если средство вывода делится на страницы, агенты пользователей могут помещать верхний заголовок в верхней части каждой страницы, а нижний - внизу. Точно так же, если агент пользователя предоставляет механизм прокрутки строк, верхний заголовок может отображаться вверху прокручиваемой области, а нижний - внизу.
Вычисление в таблице. Помните, что число строк в таблице равно числу элементов , содержащихся в элементе .
Группировка столбцов в соответствии со спецификациями .
Построчная генерация ячеек и группировка в столбцы между верхним и нижним заголовками. Визуальные агенты пользователей должны в соответствии с атрибутами HTML и спецификациями таблиц стилей.
Модель таблиц HTML разработана так, чтобы с помощью автора агенты пользователей могли генерировать таблицы последовательно (т.е. по мере получения строк таблицы), а не ждали получения всей таблицы до начала генерации.
Чтобы агенты пользователей могли форматировать таблицу за один проход, авторы должны сообщить агентам пользователей следующую информацию:
Число столбцов в таблице. Подробнее о том, как указать эту информацию, см. в разделе о . Ширину столбцов. Подробнее о том, как указать эту информацию, см. в разделе о .
Более точно агент пользователя может сгенерировать таблицу за один проход, когда ширина столбцов указана с использованием комбинации элементов и . Если для какого-либо столбца указана относительная ширина или ширина в процентах (см. раздел о ), авторы должны также указать ширину самой таблицы.
Элемент TITLE
<!-- Элемент TITLE не считается частью текста. Он должен отображаться, например, в качестве заголовка страницы или окна. В документе должен быть ровно один заголовок. --> <!ELEMENT - - (#PCDATA) -() - заголовок документа --> <!ATTLIST TITLE >
Начальный тег: обязателен, Конечный тег: обязателен
Атрибуты, определяемые в любом другом месте
(), ()
Каждый документ HTML должен иметь элемент в разделе .
Авторы должны использовать элемент для идентификации содержимого документа. Поскольку пользователи часто обращаются к документам за пределами контекста, авторам следует обеспечивать заголовки в широком контексте. Таким образом, вместо заголовков типа "Введение", ничего не говорящих о контексте, авторам следует использовать заголовки типа "Введение в средневековое пчеловодство".
Из соображений доступности агенты пользователей всегда должны делать содержимое элемента доступным пользователям (включая элементы в кадрах). Механизм этого зависит от агента пользователя (например, в виде заголовка или произносимый).
Заголовки могут включать (для символов со знаком ударения, специальных символов и т.д.), но не могут содержать другой разметки. Вот образец заголовка документа:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <HTML> <HEAD> <TITLE>Исследование динамики популяции</TITLE> ... другие элементы заголовка...
</HEAD> <BODY> ... тело документа...
</BODY> </HTML>
Элементы DIR и MENU
Использование элементов DIR и MENU нежелательно.
Формальное определение см. в .
Атрибуты, определяемые в любом другом месте
, () (), () () () , , , , , , , , , (внутренние события)
Элемент предназначался для создания многостраничных списков каталогов. Элемент предназначался для использования в списках меню, состоящих из одного столбца. Оба эти элемента имеют ту же структуру, что и элемент , различаясь только при генерации. На практике агенты пользователей генерируют списки или точно так же, как список .
Настоятельно рекомендуется использовать вместо этих элементов элемент .
Элементы фраз: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ABBR и ACRONYM
<!ENTITY % phrase " | | | | | | | | | " > <!ELEMENT (|) - - ()*> <!ATTLIST (|) -- , , -- >
Начальный тег: обязателен, Конечный тег: обязателен
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , , ( внутренние события)
Фразовые элементы добавляют в текстовые фрагменты структуру. Обычное значение фразовых элементов следующее:
EM:
Выделение.
STRONG:
Более сильное выделение.
CITE:
Содержит цитату или ссылку на другие ресурсы.
DFN:
Указывает, что это является определением вложенного термина.
CODE:
Фрагмент компьютерного кода.
SAMP:
Вывод примера программ, сценариев и т.д.
KBD:
Текст, который должен ввести пользователь.
VAR:
Экземпляр переменной или аргумента программы.
ABBR:
Сокращенная форма (например, WWW, HTTP, URI, Mass., и т.д.).
ACRONYM:
Акроним (например, WAC, радар и т.д.).
Элементы и используются для выделения. Другие фразовые элементы имеют определенное значение в технических документах. В следующих примерах показано использование некоторых фразовых элементов:
Как сказал <CITE>Гари Трумэн</CITE>, <Q lang="en-US">The buck stops here.</Q>
Подробнее см. <CITE>[ISO-0000]</CITE>.
В дальнейшем используйте следующий номер ссылки: <STRONG>1-234-55</STRONG>
Представление фразовых элементов зависит от агента пользователя. Обычно визуальные агенты пользователей представляют текст элемента курсивом, а текст элемента полужирным шрифтом. Синтезаторы речи могут изменять параметры синтеза, например, громкость, повышение тона и скорости соответственно.
Элементы и позволяют авторам явно показывать использование аббревиатур и акронимов. Западные языки широко используют акронимы, такие как "GmbH", "НАТО" и "ФБР", а также аббревиатуры типа "M.", "Inc.", "et al.", "etc.". В китайском и японском языках используются аналогичные механизмы аббревиатур, когда длинное название заменяется последовательностью символов Han из оригинала. Разметка этих конструкций предоставляет агентам пользователей и вспомогательным средствам, таким как средства проверки орфографии, синтезаторы речи, переводящие системы и индексаторы поисковых машин, полезную информацию.
Содержимое элементов и определяет саму аббревиатуру, как она обычно отображается в тексте. Атрибут title этих элементов может использоваться для указания полной развернутой формы выражения.
Несколько примеров использования элемента :
<P> <ABBR title="World Wide Web">WWW</ABBR> <ABBR lang="fr" title="Société Nationale des Chemins de Fer"> SNCF </ABBR> <ABBR lang="es" title="Doña">Doña</ABBR> <ABBR title="Abbreviation">abbr.</ABBR>
Помните, что аббревиатуры и акронимы часто имеют различное произношение. Например, если слова "США" и "BBC" обычно произносятся побуквенно, слова "НАТО" и "ЮНЕСКО" произносятся фонетически. Другие формы аббревиатур (например, "URI" и "SQL") некоторыми людьми произносятся побуквенно, а другими - как слова. При необходимости авторам следует использовать таблицы стилей для указания произношения аббревиатур.
Элементы уровня блока и встроенные элементы
Некоторые элементы HTML, которые могут присутствовать внутри тега называются элементами "уровня блока", в то время как другие - "встроенными" (также называемыми элементами "уровня текста"). Разница между ними описана ниже:
Модель содержимого
Обычно элементы уровня блока могут содержать встроенные элементы и другие элементы уровня блока. Обычно встроенные элементы могут содержать только данные и другие встроенные элементы. Этому структурному различию свойственна идея о том, что элементы блока создают "большие" структуры, чем встроенные элементы.
Форматирование
По умочланию элементы уровня блока форматируются иначе, чем встроенные элементы. Обычно элементы уровня блока начинаются с новой строки, а встроенные элементы - нет. Информацию о пробелах, переносах строки и форматировании блоков см. в разделе о .
Направление
По техническим причинам, затрагивающим алгоритм двунаправленного текста [UNICODE], элементы уровня блока и встроенные элементы различаются способами наследования информации о направлении. Подробнее см. в разделе о .
обеспечивают средства задания отображения произвольных элементов, включая и то, генерируется ли элемент как блочный или встроенный. В некоторых случаях, например, в случае встроенного стиля для элементов списка, это может быть полезным, но вообще говоря, авторам следует избегать такого переопределения интерпретации элементов языка HTML.
Изменение традиционных выражений представления для элементов уровня блока и встроенных элементов влияет на алгоритм двунаправленного текста. Подробнее см. раздел о .
Как указать альтернативный текст
Определения атрибутов
alt =
Для агентов пользователей, не имеющих возможности вывести изображения, формы или апплеты, этот атрибут определяет альтернативный текст. Язык альтернативного текста определяется атрибутом .
Для некоторых нетекстовых элементов (, , и ) авторы должны указывать альтернативный текст, служащий содержимым, если элемент нельзя нормально сгенерировать. Задание альтернативного текста помогает пользователям, не имеющих графических дисплеев, пользователям, браузеры которых не поддерживают формы, visually impaired users, пользователям синтезаторов речи, пользователям, графический агент которых сконфигурирован так, чтобы не выводить изображения и т.д.
Атрибут должен быть указан для элементов и . Он не является обязательным для элементов и .
В то время как альтернативный текст может быть очень полезным, использовать его нужно осторожно. Авторы должны иметь в виду следующее:
Не указывайте несоответствующий альтернативный текст, включая изображения, предназначенные для форматирования страницы, например, alt="red ball" не соответствует изображению, определяющему красный круг для отметки заголовка абзаца. В этих случаях в качестве альтернативного текста следует указать пустую строку (""). Авторам в любом случае рекомендуется не использовать изображения для форматирования страниц; вместо этого следует использовать таблицы стилей.
Не указывайте бессмысленный альтернативный текст (например, "dummy text"). Он не только будет frustrate пользователей, но также будет замедлять агенты пользователей, преобразующие текст в речь или текст Бройля.
Информацию об обработке случаев, когда альтернативный текст отсутствует, разработчики могут найти в разделе о .
Примечание.
Подробнее о создании доступных документов HTML см. [WAIGUIDE].
Категоризация ячеек
Возможно, пользователи, просматривающие таблицу с использованием речевых агентов, захотят услышать пояснение к содержимым ячейки в дополнение к самой информации. Один из способов, которым агент пользователя может обеспечить пояснения, - произносить соответствующую заголовочную информацию перед произнесением информации, являющейся содержимым ячейки (см. раздел о ).
Пользователям может также понадобиться информация о нескольких ячейках, и в этом случае заголовочная информация, заданная на уровне ячейки (с помощью , , и ) может не соответствовать контексту. Рассмотрим следующую таблицу с классификацией расходов на еду, гостиницы и транспорт в двух пунктах (Сан-Хосе и Сиэтле) за несколько дней:
Пользователям понадобится извлечь информацию из таблицы в форме запросов:
"Сколько всего денег я потратил на еду?" "Сколько я потратил на еду 25 августа?" "Сколько всего денег я потратил в Сан-Хосе?"
Каждый запрос подразумевает вычисления, выполняемые агентом пользователя, которые могут затрагивать несколько или ни одной ячейки. Чтобы определить, например, расходы на еду 25 августа, агент пользователя должен знать, какие ячейки таблицы относятся к "Еде" (все эти ячейки), а какая к "Датам" (25 августа), и найти пересечение этих двух наборов.
Для принятия запроса такого типа модель таблиц HTML 4.0 позволяет авторам помещать заголовки и данные ячеек в категории. Например, в таблице расходов на командировку автор может сгруппировать ячейки заголовков "Сан-Хосе" и "Сиэтл" в категорию "Пункт", заголовки "Еда", "Гостиницы" и "Транспорт" в категорию "Расходы", а четыре дня в категорию "Дата". Тогда предыдущие три вопроса будут иметь следующее значение:
"Сколько всего денег я потратил на еду?" означает "Все ячейки данных из категории "Расходы=Еда"? "Сколько я потратил на еду 25 августа?" означает "Все ячейки данных из категорий "Расходы=Еда" и "Дата=25-авг-1997"? "Сколько всего денег я потратил в Сан-Хосе?" означает "Все ячейки данных из категорий "Расходы=Еда, Гостиницы, Транспорт" и "Пункт=Сан-Хосе"?
Авторы определяют категории заголовков или ячеек данных, устанавливая для ячейки атрибут . Например, в таблице расходов на командировку ячейка, содержащая информацию "Сан-Хосе" может быть помещена в категорию "Пункт" следующим образом:
<TH id="a6" axis="пункт">Сан-Хосе</TH>
Любая ячейка, содержащая информацию, относящуюся к "Сан-Хосе", должна ссылаться на эту ячейку заголовка с помощью атрибута или . Таким образом, расходы на еду 25-авг-1997 должны иметь ссылку на атрибут (значение которого здесь - "a6") ячейки заголовка "Сан-Хосе":
<TD headers="a6">37.74</TD>
Каждый атрибут содержит список ссылок . Авторы таким образом могут определять категории для данной ячейки с помощью данного ряда способов (или along any number of "headers", hence the name).
Ниже в таблице командировочных расходов указана информация о категориях:
<TABLE border="1" summary="В этой таблице приводятся сведения о командировочных расходах в августе в Сан-Хосе и Сиэтле"> <CAPTION> Отчет о командировочных расходах </CAPTION> <TR> <TH></TH> <TH id="a2" axis="расходы">Еда</TH> <TH id="a3" axis="расходы">Гостиницы</TH> <TH id="a4" axis="расходы">Транспорт</TH> <TD>итого</TD> </TR> <TR> <TH id="a6" axis="пункт">Сан-Хосе</TH> <TH></TH> <TH></TH> <TH></TH> <TD></TD> </TR> <TR> <TD id="a7" axis="дата">25-авг-97</TD> <TD headers="a6 a7 a2">37.74</TD> <TD headers="a6 a7 a3">112.00</TD> <TD headers="a6 a7 a4">45.00</TD> <TD></TD> </TR> <TR> <TD id="a8" axis="дата">26-авг-97</TD> <TD headers="a6 a8 a2">27.28</TD> <TD headers="a6 a8 a3">112.00</TD> <TD headers="a6 a8 a4">45.00</TD> <TD></TD> </TR> <TR> <TD>итого</TD> <TD>65.02</TD> <TD>224.00</TD> <TD>90.00</TD> <TD>379.02</TD> </TR> <TR> <TH id="a10" axis="пункт">Сиэтл</TH> <TH></TH> <TH></TH> <TH></TH> <TD></TD> </TR> <TR> <TD id="a11" axis="дата">27-авг-97</TD> <TD headers="a10 a11 a2">96.25</TD> <TD headers="a10 a11 a3">109.00</TD> <TD headers="a10 a11 a4">36.00</TD> <TD></TD> </TR> <TR> <TD id="a12" axis="дата">28-авг-97</TD> <TD headers="a10 a12 a2">35.00</TD> <TD headers="a10 a12 a3">109.00</TD> <TD headers="a10 a12 a4">36.00</TD> <TD></TD> </TR> <TR> <TD>итого</TD> <TD>131.25</TD> <TD>218.00</TD> <TD>72.00</TD> <TD>421.25</TD> </TR> <TR> <TH>Всего</TH> <TD>196.27</TD> <TD>442.00</TD> <TD>162.00</TD> <TD>800.27</TD> </TR> </TABLE>
Обратите внимание на то, что такая разметка таблицы также позволяет агентам пользователей не сбивать пользователей с толку ненужной информацией. Например, если синтезатор речи должен был произнести все цифры из столбца "Еда" этой таблицы в ответ на запрос "Все расходы на еду?", пользователь не смог бы отличить дневные расходы от итоговой суммы. С помощью тщательной категоризации данных авторы позволяют агентам пользователей делать важные семантические различия при генерации.
Конечно, авторы не ограничены в категоризации информации в таблице. В таблице командировочных расходов, например, мы можем ввести дополнительные категории "итого" и "всего".
Данная спецификация не выставляет требование к агентам пользователей по обработке информации, предоставляемой атрибутом , а также не дает никаких рекомендаций относительно представления агентами пользователей информации из атрибута или спецификации запросов пользователями этой информации у агентов.
Однако агенты пользователей, особенно синтезаторы речи, могут выделять информацию, общую для нескольких ячеек, являющихся результатами запроса. Например, если пользователь спрашивает "Сколько всего денег я потратил на еду в Сан-Хосе?", агент пользователя должен определить соответствующие ячейки (25-авг-1997: 37.74, 26-авг-1997:27.28), а затем сгенерировать информацию. Агент пользователя может произнести следующую информацию:
Пункт: Сан-Хосе. Дата: 25-авг-1997. Расходы, Еда: 37.74 Пункт: Сан-Хосе. Дата: 26-авг-1997. Расходы, Еда: 27.28
или более компактно:
Сан-Хосе, 25-авг-1997, Еда: 37.74 Сан-Хосе, 26-авг-1997, Еда: 27.28
Еще более экономичная генерация может выделить еще более общую информацию и переупорядочить ее:
Сан-Хосе, Еда, 25-авг-1997: 37.74 26-авг-1997: 27.28
Агенты пользователей, поддерживающие генерацию такого типа, должны обеспечивать средства настройки генерации (например, с помощью таблиц стилей).
Кавычки: Элементы BLOCKQUOTE и Q
<!ELEMENT - - (|SCRIPT)+ -- длинная цитата --> <!ATTLIST BLOCKQUOTE -- , , -- cite #IMPLIED -- адрес URI документа или сообщения -- > <!ELEMENT - - ()* -- краткая встроенная цитата --> <!ATTLIST Q -- , , -- #IMPLIED -- адрес URI документа или сообщения -- >
Начальный тег: обязателен, конечный тег: обязателен
Определения атрибутов
cite = uri
Значением этого атрибута является URI, определяющий источник документа или сообщения. Этот атрибут предназначен для предоставления информации об источнике, из которого заимствована цитат.
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , , (внутренние события)
Эти два элемента определяют текст в кавычках. Элемент предназначен для длинных цитат (содержимое уровня блока) и предназначен для коротких цитат (встроенное содержимое), в которых не нужно разбиение на абзацы.
В этом примере цитата из книги "Две твердыни" Дж. Р. Р. Толкиена отформатирована с помощью элемента blockquote.
<BLOCKQUOTE cite="http://www.mycom.com/tolkien/twotowers.html"> <P>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.</P> </BLOCKQUOTE>
Клиентские навигационные карты: элементы MAP и AREA
<!ELEMENT - - (()+ | AREA+) - клиентская навигационная карта --> <!ATTLIST MAP -- , , -- #REQUIRED - для ссылки usemap -- >
Начальный тег: обязателен, Конечный тег: обязателен
<!ELEMENT - O EMPTY -- область клиентской навигационной карты --> <!ATTLIST AREA -- , , -- rect -- управляет интерпретацией координат -- #IMPLIED -- разделенный запятыми список длин -- #IMPLIED -- адрес URI связанного ресурса -- (nohref) #IMPLIED -- для этого региона действие не назначено -- #REQUIRED -- краткое описание -- #IMPLIED -- положение в последовательности перехода -- #IMPLIED -- символ доступа -- #IMPLIED -- элемент получил фокус -- #IMPLIED -- элемент потерял фокус -- >
Начальный тег: обязателен, Конечный тег: запрещен
Определения атрибутов элемента MAP
name =
Этот атрибут назначает имя навигационной карты, определяемой элементом .
Определения атрибутов элемента AREA
shape = default|rect|circle|poly
Этот атрибут определяет форму области. Возможные значения:
default: Задает всю область. rect: Определяет прямоугольную область. circle: Определяет круглую область. poly: Определяет многоугольную область.
coords = координаты Этот атрибут определяет положение формы на экране. Число и порядок значений зависят от определенной формы. Возможные комбинации:
rect: x левой границы, y верхней границы, x правой границы, y нижней границы. circle: x центра, y центра, радиус. Примечание. Если радиус указан в процентах, агенты пользователя должны вычислять окончательное значение радиуса в зависимости от назначенных объекту ширины и высоты. Радиус должен быть наименьшим из этих двух значений. poly: x1, y1, x2, y2, ..., xN, yN.
Координаты задаются относительно верхнего левого угла объекта. Все значения являются . Все значения отделяются друг от друга запятыми.
nohref
Если этот логический атрибут установлен, он указывает, что с этой областью ссылка не связана.
Атрибут для установления связи навигационной карты с элементом
usemap = uri
Этот атрибут связывает навигационную карту с элементом. Навигационная карта определяется с помощью элемента . Значение атрибута usemap должно совпадать со значением атрибута связанного элемента .
Атрибуты, определенные в другом месте
, () (), () () () () () () () () () () , , , , , , , , , , ,
()
Элемент определяет клиентскую навигационную карту, которая может быть связана с одним или несколькими элементами (, или ). Навигационная карта связывается с элементом с помощью атрибута этого элемента.
Наличие атрибута в элементе подразумевает, что объект включается в виде изображения. Более того, если с элементом связана клиентская навигационная карта, агенты пользователей могут интерпретировать взаимодействие пользователя с элементом исключительно в терминах клиентской навигационной карты. Это позволяет агентам пользователей (например, звуковым браузерам или роботам) взаимодействовать с элементом , не обрабатывая его; агент пользователя может даже не загружать (или не обрабатывать) объект. Если с элементом связана навигационная карта, авторы не могут быть уверены, что этот объект будет загружаться и обрабатываться всеми агентами пользователей.
Каждый элемент MAP может содержать следующее:
Один или несколько элементов . Эти элементы не имеют содержимого, но определяют геометрические области навигационной карты и ссылки, связанные с каждой областью. Обратите внимание, что при использовании этого метода элемент не имеет генерируемого содержимого. Таким образом, авторы должны изменять текст для каждого элемента с помощью атрибута (см. далее информацию о том, как указать альтернативный текст).
Содержимое уровня блока. Сюда должны включаться элементы , определяющие геометрические области навигационной карты, и ссылки, связанные с каждой областью. Обратите внимание, что при использовании этого метода содержимое элемента может генерироваться агентом пользователя. Для создания более доступных документов авторам следует использовать этот способ.
Если несколько определенных регионов перекрываются, приоритет имеет элемент, указанный в документе первым (т.е. на ввод пользователя отвечает именно этот элемент).
Агенты пользователей и авторы должны обеспечивать текстовые альтернативы графических навигационных карт на случай, если графика недоступна или пользователь не может получить к ней доступ. Например, агенты пользователей могут использовать текст атрибута для создания текстовых ссылок вместо графической навигационной карты. Такие ссылки могут активизироваться различными способами (клавиатура, голос и т.д.).
Примечание.
Элемент не совместим с агентами пользователей для языка HTML версии 2.0.
Коды языков
Значением атрибута является код языка, идентифицирующий естественный разговорный язык, который устно, письменно или иным образом используется для передачи информации между людьми. Компьютерные языки явным образом исключены из кодов языков.
В документе [RFC1766] определены и описаны все коды языков, которые должны использоваться в документах на языке HTML.
Кратко говоря, коды языков состоят из первичного кода и ряда подкодов, который может быть пустым:
код-языка = первичный-код ( "-" подкод )*
Вот несколько примеров кодов языков:
"en": английский "en-US": американская версия английского. "en-cockney": кокни (диалект английского). "i-navajo": навахо (язык американских индейцев). "x-klingon": Первичный код "x" обозначает экспериментальный код языка
Двухбуквенные первичные коды зарезервированы для сокращений языков по стандарту [ISO639]. Сюда входят коды fr (французский), de (немецкий), it (итальянский), nl (голландский), el (греческий), es (испанский), pt (португальский), ar (арабский), he (иврит), ru (русский), zh (китайский), ja (японский), hi (хинди), ur (урду) и sa (санскрит).
Любой двухбуквенный подкод считается кодом страны в стандарте [ISO3166].
META и информация по умолчанию
Элемент может использоваться для указания информации по умолчанию для документа в следующих случаях:
. по умолчанию. .
В следующем примере для документа указывается кодировка символов ISO-8859-5
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-5">
META и PICS
Platform for Internet Content Selection (Платформа для выбора содержимого Интернет) (PICS, specified in [PICS]) - это инфраструктура для связывания меток (метаданных) с содержимым Интернет. Созданная для помощи родителям и учителям в управлении доступом детей к Интернет, она также упрощает другое использование меток, включая управление подписью кодов, секретностью и правами интеллектуальной собственности.
Этот пример иллюстрирует использование объявления для включения метки PICS 1.1:
<HEAD> <META http-equiv="PICS-Label" content=' (PICS-1.1 "http://www.gcf.org/v2.5" labels on "1994.11.05T08:15-0500" until "1995.12.31T23:59-0000" for "http://w3.org/PICS/Overview.html" ratings (suds 0.5 density 0 color/hue 1)) '> <TITLE>... название документа ...</TITLE> </HEAD>
META и поисковые машины
Основной способ использования элемента - задание ключевых слов, которые поисковые машины могут использовать для улучшения результатов поиска. Если информация о документе представлена в нескольких элементах в зависимости от языка, поисковые машины могут фильтровать атрибут и отображать результаты поиска с использованием выбранного пользователем языка. Например,
<-- Для говорящих на американском английском --> <META name="keywords" lang="en-us" content="vacation, Greece, sunshine"> <-- Для говорящих на британском английском --> <META name="keywords" lang="en" content="holiday, Greece, sunshine"> <-- для русскоязычных пользователей --> <META name="keywords" lang="fr" content="отпуск, Греция, солнце">
Эффективность поисковых машин можно также повысить с использованием элемента the для задания ссылок на переводы документа на другие языки, ссылки на версии документа для другого носителя (например, PDF), и, если документ является частью набора, ссылки на соответствующую начальную точку для просмотра набора.
Дальнейшая информация находится в разделе Как помочь поисковым машинам проиндексировать Ваш Web-сервер .
META и заголовки HTTP
Атрибут может использоваться вместо атрибута name; он особенно важен, если документы загружаются по протоколу передачи гипертекста (HTTP). Серверы HTTP могут использовать имя свойства, указанное в атрибуте для создания заголовка в ответе HTTP в стиле [RFC822]. Подробнее о допустимых заголовках HTTP см. в спецификации HTTP ([RFC2068]).
В следующем примере объявление :
<META http-equiv="Expires" content="Tue, 20 Aug 1996 14:25:27 GMT">
вернет следующий заголовок HTTP:
Expires: Tue, 20 Aug 1996 14:25:27 GMT
Это может использоваться кэш-памятью для определения того, когда следует загрузить новую копию связанного документа.
Некоторые агенты пользователей поддерживают использование элемента для обновления текущей страницы по истечении указанного числа секунд с возможностью замены на другой URI.
<META http-equiv="refresh" content="3,http://www.acme.com/intro.html">
content - это число, указывающее задержку в секундах, за которым следует URI, который нужно загрузить по прошествии этого времени. Этот механизм широко используется для создания кратковременных заставок. Однако поскольку некоторые агенты пользователей не поддерживают этот механизм, авторам следует включить в заставку возможность перейти на следующую страницу (чтобы они на "зависли" на заставке).
Метаданные
Во время написания этой спецификации проводились работы по предоставлению авторам возможности задания большего количества машинно-читаемой информации о документах HTML и других сетевых ресурсах. Для метаданных W3C разработан Язык описания ресурсов (см. ).
HTML позволяет авторам указывать метаданные -- информацию о документе вместо содержимого документа - множеством способов.
Например, чтобы указать автора документа, можно использовать элемент следующим образом:
<META name="Author" content="Дэйв Рэггетт">
Элемент задает свойство (здесь "Author (Автор)") и назначает ему значение (здесь - "Дэйв Рэггетт").
Данная спецификация не определяет набор допустимых свойств метаданных. Значение свойства и набор допустимых значений этого свойства должны определяться в относительном словаре, называемом профилем. Например, профиль, разработанный для помощи в индексировании документов для поисковых машин может определять такие свойства как "author", "copyright", "keywords" и т.д.
Направление таблиц
Направление таблицы либо наследуется (по умолчанию используется направление слева направо), либо определяется атрибутом элемента .
Для таблиц, направление которых слева направо, нулевой столбец находится слева, а нулевая строка - сверху. Для таблиц, направление которых справа налево, нулевой столбец находится справа, а нулевая строка - сверху.
Если агент пользователя allots в строку дополнительные ячейки (см. раздел о ), дополнительные ячейки строки добавляются в таблицу справа для таблиц, имеющих направление слева направо, и слева для таблиц, имеющих направление справа налево.
Помните, что - единственный элемент, для которого атрибут обращает визуальный порядок столбцов; нельзя изменить порядок одной строки () или группы столбцов ().
Если для элемента установлен атрибут , он также влияет на направление текста в ячейках таблицы (поскольку атрибут наследуется элементами уровня блока).
Чтобы определить таблицу с направлением справа налево, установите атрибут следующим образом:
<TABLE dir="RTL"> ...продолжение таблицы...
</TABLE>
Направление текста в отдельных ячейках можно изменить, установив атрибут для элемента, определяющего ячейку. Подробнее о вопросах направления текста см. в разделе о .
Наследование информации о направлении текста
Для двунаправленного алгоритма Unicode необходимо основное направление текста для текстовых блоков. Чтобы указать основное направление элементов уровня блока, установите для этого элемента атрибута . Значением атрибута , устанавливаемым по умолчанию, является "ltr" (слева направо).
Если атрибут установлен для элемента уровня блока, он действует на протяжении всего элемента и для всех вложенных элементов уровня блока. Установка атрибута для вложенного элемента имеет приоритет по отношению к наследуемому значению.
Чтобы установить основное направление текста для всего документа, установите атрибут в элементе .
Например:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <HTML dir="RTL"> <HEAD> <TITLE>...заголовок справа налево...</TITLE> </HEAD> ...текст справа налево...
<P dir="ltr">...текст слева направо...</P> <P>...опять текст справа налево...</P> </HTML>
Встроенные элементы, с другой стороны, не наследуют атрибут . Это означает, что встроенный элемент без атрибута не открывает дополнительного уровня внедрения в соответствии с двунаправленным алгоритмом. (Здесь элементом считается элемент уровня блока или встроенный элемент на основе представления по умолчанию. Помните, что элементы и могут быть элементами уровня блока или встраиваемыми элементами в зависимости от контекста.)
Наследование кодов языков
Элемент наследует информацию о коде языка в следующем порядке старшинства (от высшего к низшему):
Атрибут , установленный для самого элемента.
Самый близкий родительский элемент, для которого установлено значение атрибута (то есть атрибут наследуется).
Заголовок HTTP "Content-Language" (который может конфигурироваться на сервере). Например:
Content-Language: en-cockney
Значения по умолчанию и настройки агента пользователя.
В этом примере первичным языком документа является французский ("fr"). Один абзац объявлен на испанском языке ("es"), после чего язык снова становится французским. В следующий абзац включена японская фраза ("ja"), после чего язык опять изменяется на французский.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <HTML lang="fr"> <HEAD> <TITLE>Un document multilingue</TITLE> </HEAD> <BODY> ...текст интерпретируется как французский...
<P lang="es">... текст интерпретируется как испанский...
<P>... текст опять интерпретируется как французский...
<P>...французский текст, в котором попадается
<EM lang="ja">фрагмент на японском</EM>, а здесь опять начинается французский...
</BODY> </HTML>
Примечание. Ячейки таблицы могут наследовать значения атрибута не от родителя, а из первой ячейки объединения. Подробнее см. в разделе .
Наследование параметров выравнивания
Выравнивание содержимого ячейки могут задаваться для каждой ячейки или наследоваться от элементов верхнего уровня, таких как строка, столбец или сама таблица.
Приоритет (от высшего к низшему) атрибутов , и следующий:
Атрибут выравнивания, установленный для элемента в данных ячейки (например, ).
Атрибут выравнивания, установленный в ячейке ( и ).
Атрибут выравнивания, установленный в элементе группировки столбцов ( и ). Если ячейка является частью span из нескольких столбцов, свойство выравнивания наследуется от определения ячейки в начале span.
Атрибут выравнивания, установленный в элементе строки или группировки строк(, , и ). Если ячейка является частью span из нескольких строк, свойство выравнивания наследуется от определения ячейки в начале span.
Атрибут выравнивания, установленный в таблице().
Значение выравнивания по умолчанию.
Приоритет (от высшего к низшему) атрибута (а также других унаследованных атрибутов , и ) следующий:
Атрибут, установленный для элемента в данных ячейки (например, ).
Атрибут, установленный для ячейки ( и ).
Атрибут, установленный для элемента строки или группировки строк (, , и ). Если ячейка является частью span из многих строк, значение атрибута наследуется от определения ячейки в начале span.
Атрибут, установленный для элемента группировки столбцов ( и ). Если ячейка является частью span из многих столбцов, значение атрибута наследуется от определения ячейки в начале span.
Атрибут, установленный для таблицы().
Значение атрибута по умолчанию.
Кроме того, при генерации ячеек горизонтальное выравнивание определяется сначала для столбцов, а потом для строк, а вертикальное выравнивание - для строк, а потом для столбцов.
Выравнивание ячеек по умолчанию зависит от агента пользователя. Однако агенты пользователя должны подставлять атрибут по умолчанию соответственно текущем направлению (то есть не просто "left" во всех случаях).
Агенты пользователя, не поддерживающие значение "justify" атрибута должны использовать значение, соответствующее направлению.
Примечание. Помните, что ячейка может наследовать атрибут не от родителя, а от первой ячейки в span. Это является исключением из общих правил наследования атрибутов.
Навигационные карты
Навигационные карты позволяют авторам определять области изображения или объекта и назначать каждой области определенное действие (например, загрузку документа, запуск программы и т.д.) Когда область активизируется пользователем, выполняется действие.
Навигационная карта создается путем назначения объекта с указанием соответствующих геометрических областей.
Имеется два типа навигационных карт:
Клиентская.
Когда пользователь активизирует область клиентской навигационной карты с помощью мыши, координаты точки интерпретируются агентом пользователя. Агент пользователя выбирает ссылку, указанную для активизированной области, и выполняет ее.
Серверная.
Когда пользователь активизирует область серверной навигационной карты с помощью мыши, координаты точки щелчка передаются агенту на сервере, определенному с помощью атрибута элемента . Агент на сервере интерпретирует координаты и выполняет соответствующие действия.
Клиентские навигационные карты являются предпочтительными по отношению к серверным по крайней мере по двум причинам: они доступны пользователям неграфических агентов и позволяют незамедлительно определить, находится ли указатель в активной области.
Недоступные и неопределяемые ресурсы
Ссылка на недоступный или неопределяемый ресурс является ошибкой. Хотя агенты пользователей могут по-разному обрабатывать такие ошибки, рекомендуется следующее поведение:
Если агент пользователя не может найти связанный ресурс, он должен уведомить об этом пользователя.
Если агент пользователя не может идентифицировать тип связанного ресурса, он должен попытаться обработать его. Он должен уведомить пользователя и позволить пользователю вмешаться и определить тип документа.
Неотображаемые символы
включает множество различных неотображаемых символов. Многие из них являются типографскими элементами, используемым в некоторых приложениях для достижения специальных визуальных эффектов отображения. В языке HTML только следующие символы определяются как неотображаемые:
пробел набора символов ASCII ( ) табуляция набора символов ASCII (	) ASCII form feed () пробел нулевой ширины (​)
также являются неотображаемыми. Помните, что хотя символы 
 и 
 определены в спецификации как разделители строк и абзацев соответственно, это не определяет символы перевода строки в HTML, а также в этой спецификации они не включены в более общую категорию неотображаемых символов.
В этой спецификации не определяется поведение, отображение и пр. символов пробелов, если они явно не определены как неотображаемые символы. По этой причине для достижения визуальных эффектов форматирования, использующих неотображаемые символы вместо пробелов, авторам следует использовать соответствующие элементы и таблицы стилей.
Для всех элементов HTML, кроме последовательностей неотображаемых слово (мы используем термин "слово" для обозначения "последовательности отображаемых символов") в теге . При форматировании текст агенты пользователей должны идентифицировать эти слова и обрабатывать их в соответствии с соглашениями относительно определенного языка и целевого носителя.
Форматирование может включать пробелы между словами (называемые межсловными пробелами), но соглашения относительно межсловных пробелов меняются в зависимости от сценария. Например, в латинских сценариях межсловный пробел обычно отображается как пробел набора символов ASCII ( ), в то время как в таиландской кодировке это разделитель слов нулевой ширины (​). В японской и китайской кодировке межсловный пробел обычно вообще не генерируется.
Помните, что последовательность неотображаемых символов между словами в исходном документе может вызвать отображение совершенно другого межсловного пробела (кроме элемента ). В частности, агенты пользователей должны прекращать ввод последовательностей неотображаемых символов при выводе межсловного пробела. Это можно и нужно делать, даже при отсутствии информации о языке (из атрибута , полях заголовка HTTP "Content-Language" (см. [RFC2068], раздел14.13), настроек агента пользователя и т.д.).
Элемент используется для форматированного текста, в котором неотображаемые символы имеют важное значение.
Для того, чтобы избежать проблем с правилами переноса строк SGML и несоответствия между существующими применениями, авторы не должны полагаться на агенты пользователей при генерации неотображаемых символов непосредственно после начального тега или непосредственно перед конечным тегом. Таким образом, авторы и особенно средства разработки, должны писать, например:
<P>Мы предлагаем бесплатную <A>техническую поддержку</A> для зарегистрированных пользователей.</P>
и не должны писать:
<P>Мы предлагаем бесплатную<A> техническую поддержку </A>для зарегистрированных пользователей.</P>