Спецификация HTML 4.01 + Спецификация CSS2

         

BРекомендуемый алгоритм вывода


При наличии элементов COL или COLGROUP, они определяют количество столбцов, и таблица может быть представлена в фиксированном виде. Иначе должен быть использован алгоритм автовывода, описываемый ниже.

Если атрибут width не установлен, визуальные ПА должны принимать для форматирования значение по умолчанию 100%.

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

ПА должны рассматривать заголовки таблиц (установленные элементом

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



BСинтаксис, зарезервированный для будущих макросов сценариев


Эта спецификация резервирует синтаксис для поддержки в будущем макросов скриптов в атрибутах HTML CDATA. Замысел в том, чтобы атрибуты устанавливались в зависимости от свойств объектов, появившихся ранее на странице. Синтаксис таков:

attribute = "... &{ macro body }; ... "



BСпецификация не-HTML данных


Данные сценария

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

Примечание. ОТД

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

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



BСтенографическая разметка


Некоторые SGML SHORTTAG-конструкции сохраняют возможность передачи текста, но не добавляют выразительных возможностей приложению SGML. Хотя эти конструкции технически недвусмысленны, они снижают надёжность документов, особенно если язык расширяется для включения новых элементов. Таким образом, в то время, как SHORTTAG-конструкции SGML, относящиеся к атрибутам, широко используются и распространяются, эти же конструкции, относящиеся к элементам - нет. Документы, использующие их, соответствуют требованиям SGML, но работают по другому со многими существующими утилитами HTML.

Сомнительные SHORTTAG-конструкции:

NET теги: <name/.../закрытый начальный тег: <name1<name2>пустой начальный тег: <> пустой конечный тег: </>



Булевы атрибуты




Некоторые атрибуты играют роль булевых переменных (напр., атрибут selected элемента OPTION). Их появление в начальном теге элемента подразумевает, что значение атрибута - "true". Их отсутствие подразумевает, что значение - "false".

Булевы атрибуты могут принимать единственное значение: само имя атрибута (напр., selected="selected").

В этом примере атрибут selected является булевым атрибутом.

selected (selected) #IMPLIED -- опция предустановлена --

Этот атрибут установлен "true" в начальном теге элемента:

<OPTION selected="selected"> ...содержимое...

</OPTION>

В HTML булевы атрибуты могут появляться в минимизированной форме

- значение атрибута value появляется без дополнения в начальном теге элемента. Таким образом, selected можно установить:

<OPTION selected>

вместо:

<OPTION selected="selected">

Авторы должны учитывать, что многие ПА могут распознавать только

минимизированные формы булевых атрибутов, но не полные.



BВопросы безопасности форм


ПА не должны пересылать все файлы, запрашиваемые пользователем. Таким образом, HTML ПА должны требовать подтверждения обработки любых файлов, которые могут быть запрошены в атрибуте value элемента INPUT. Скрытые элементы управления не должны специфицировать файлы.

Эта спецификация не содержит механизма шифровки данных; это должно выполняться каким-либо другим механизмом шифровки передачи данных.

Как только файл загружен, ПА должен обработать и сохранить его соответствующим образом.



BВозможности SGML с ограниченной поддержкой


Системы SGML, соответствующие [ISO8879], должны распознавать ряд возможностей, которые не поддерживаются широко в настоящее время Пользовательскими Агентами HTML. Мы рекомендуем авторам избегать использования всех этих возможностей.



Что такое HTML?


Для публикации информации и её глобального распространения необходим универсальный язык типа основного всеобщего языка, который потенциально понятен всем компьютерам. Таким языком, используемым в World Wide Web, является HTML (от HyperText Markup Language/Язык Гипертекстовой Разметки).

HTML даёт авторам средства для того, чтобы:

публиковать online-документы с оглавлением, текстом, таблицами, списками, фотографиями и т.д.;

запрашивать online-информацию, переходя по гиперссылкам, нажимая кнопки;

создавать формы для взаимодействия с удалённым сервисом, для поиска информации, создания архивов, продажи товаров и т д.;

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



Что такое World Wide Web?


World Wide Web (Web)\Всемирная паутина

это сеть информационных ресурсов. Web использует три механизма, делающих эти ресурсы доступными максимально возможной аудитории:

Единообразная схема именования размещения ресурсов в Web (напр., URI).

Протоколы для доступа к именованным ресурсам Web (напр., HTTP).

Гипертекст для быстрой навигации по ресурсам (напр., HTML).

Связи этих механизмов станут очевидными после изучения данной спецификации.



Цифровые мнемоники


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

"&#D;", где D, десятеричное число, ссылается на десятеричное значение D символа ISO 10646."&#xH;" или "&#XH;", где H, шестнадцатеричное число, ссылается на шестнадцатеричное значение H символа ISO 10646. Шестнадцатеричные числа в цифровых мнемониках нечувствительны к регистру.

Вот несколько примеров цифровых мнемоник:

&#229; (10-ная) представляет букву "a" с маленьким кружком сверху (используется, напр., в Норвегии);&#xE5;     (16-ная) та же самая буква;

&#Xe5;   (16-ная) то же самое;&#1048;   (10-ная) русская "И" заглавная;

&#x6C34; (16-ная) китайский "водяной" символ.

Примечание. Хотя 16-ное представление не определено в [ISO8879], это ожидается при пересмотре, как описано в

[WEBSGML]. Это соглашение особенно актуально, пока стандарты символов используют 16-ные представления.



Цвет фона


Определение атрибута

bgcolor = color [CI]

Не рекомендуется.

Этот атрибут устанавливает цвет фона документа или ячеек таблицы.

Этот атрибут устанавливает цвет фона "канвы" тела документа (элемент BODY) или таблицы (элементы

TABLE, TR, TH и TD). Дополнительные атрибуты, устанавливающие цвет текста, могут использоваться с элементом BODY.

Этот атрибут не рекомендуется

использовать для определения цвета фона. Лучше использовать таблицы стилей.



Цвета


Значение атрибута "color" (%Color;) ссылается на определение цвета [SRGB]. Значение цвета может быть или 16-ричным числом (предваряемым знаком #), или одним из следующих 16 названий цвета. Названия цветов нечувствительны к регистру.

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

Таким образом, значение "#800080" и "Purple" оба обозначают пурпурный цвет.



Данные сценариев


Данные сценариев ( %Script; в ОТД) могут быть содержимым элемента SCRIPT и значением внутреннего события атрибута. ПА не должны вычислять данные сценария как метки HTML, а вместо этого должны передавать их как данные обработчику сценария.

Чувствительность к регистру данных скрипта зависит от применяемого языка сценариев.

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



Данные таблиц стилей


Данные таблиц стилей (%StyleSheet; в ОТД) могут быть содержимым элемента STYLE и значением атрибута

style. ПА не должен вычислять данные стиля как метки HTML.

Чувствительность к регистру данных стиля зависит от языка таблиц стилей.

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



Дата и время


[ISO8601] допускает много вариантов и опций в представлении даты и времени. Данная спецификация использует один из форматов, описанный в [DATETIME], для определения действительных строк date/time (%Datetime в ОТД).

Формат таков:

YYYY-MM-DDThh:mm:ssTZDгде:YYYY = год из 4 цифр MM = месяц из 2 цифр (01=January, и т.д..) DD = число месяца из 2 цифр (от 01 до 31) hh = час - 2 цифры (от 00 до 23) (am/pm НЕДОПУСТИМЫ) mm = минуты - 2 цифры (от 00 до 59) ss = секунды - 2 цифры (от 00 до 59) TZD = часовой пояс

Обозначение часового пояса - одно из следующих:

Zобозначает UTC (Coordinated Universal Time). "Z" должно быть в верхнем регистре.+hh:mmобозначает локальное время - hh часы и mm минуты до(+) UTC.-hh:mm

обозначает локальное время - hh часы и mm минуты после (-) UTC.

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

[ISO8601].

Если приложение "не знает" время с точностью до секунд, оно может использовать значение секунд "00" (и минуты и часы так же, если необходимо).

Примечание. [DATETIME] не адресует учёт високосных секунд.



Дефисы


В HTML имеются дефисы двух типов: обычный и "мягкий". Обычный дефис должен интерпретироваться в ПА как обычный символ. Мягкий дефис сообщает ПА о том, где может появляться обрыв строки.

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

В HTML обычный дефис представлен символом "-" (&#45; или &#x2D;). Мягкий дефис представляется ссылкой-мнемоникой &shy; (&#173; или &#xAD;)



Действие таблиц стилей на двунаправленность


В целом, использование таблиц стилей для изменения визуального представления элементов с уровня блока на инлайн и наоборот является более прямым путём. Однако, поскольку двунаправленный алгоритм основывается на

различении уровней блок/инлайн, необходимо особое внимание при обеспечении трансформации.

Если инлайн-элемент, не имеющий атрибута dir, трансформируется в элемент уровня блока с помощью таблицы стилей, он наследует атрибут dir

от ближайшего родительского блок-элемента для определения базового направления блока.

Если блок-элемент, не имеющий атрибута dir, трансформируется в стиль инлайн-элемента  с помощью таблицы стилей, результат представления должен быть эквивалентным, в плане двунаправленного форматирования, форматированию, получаемому путём явного добавления атрибута

dir (с установкой наследуемого значения) к трансформируемому элементу.



"Действующие" ЭУ


Действующий ЭУ - это ЭУ, "годный" для отправки. Каждый действующий ЭУ имеет пару: имя ЭУ и текущее значение как часть отправляемого с формой набора данных формы. Действующий ЭУ должен быть определён внутри элемента форма/FORM

и должен иметь имя ЭУ.

В то же время:

Недоступные ЭУ - те, которые не могут быть "действующими". Если форма содержит больше одной кнопки submit, только активированная кнопка submit может быть действующей. Все "on" переключатели могут быть действующими. Из radio-кнопок, использующих одно значение атрибута name, только "on/включённая" radio-кнопка может быть действующей. Для menu имя ЭУ предоставляется элементом SELECT, а значения предоставляются элементом OPTION. только выбранная опция может быть действующей. Если ни одна опция не выбрана, ЭУ является "недействующим", и ни имя, ни любое другое значение не пересылается серверы при отправке формы. Текущее значение file select - это список из одного или более имён файлов. При отправке формы содержимое

каждого файла отправляется вместе с данными формы. Содержимое файлов упаковывается в соответствии с типом содержимого формы. Текущее значение объекта ЭУ определяется реализацией объекта.

Если ЭУ не имеет текущего значения при отправке формы, ПА не должны обрабатывать его как "действующий" ЭУ.

Также ПА не должны рассматривать следующие объекты как действующие:

Кнопки Reset. Элементы OBJECT, чей атрибут declare установлен.

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

<FORM action="..." method="post"> <P> <INPUT type="password" style="display:none" name="invisible-password" value="mypassword"> </FORM>

создаёт значение в паре с "invisible-password", которое отправляется вместе с формой.



Дескрипторы типа носителя


Список распознаваемых дескрипторов типа носителя ( %MediaDesc в ОТД):

screenПодразумевается нестраничный экран.

ttyПодразумевается носитель, использующий сетку символов фиксированного размера, такие как телетайп, терминалы или портативные устройства с ограниченными возможностями дисплея.tvПодразумевается устройство типа телевизора (низкое разрешение и цветопередача, ограниченная возможность прокрутки экрана).projectionПодразумевается прожектор.

handheldПодразумеваются портативные устройства (маленькие экраны, монохромные, растровая графика, частотные ограничения).printПодразумевается страничный непрозрачный материал и документы, просматриваемые на экране в режиме предварительного просмотра печати.brailleПодразумеваются устройства для слепых.

auralПодразумевается речевой синтезатор .all

Подходит для всех устройств.

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

media так:

Значение - список, разделённый запятыми. Например, media="screen, 3d-glasses, print and resolution > 90dpi"

разбирается в :

"screen""3d-glasses""print and resolution > 90dpi" Каждое вхождение усекается перед первым символом не-US ASCII [a-z, A-Z] (ISO 10646 hex 41-5a, 61-7a), не-цифрой [0-9] (hex 30-39), или не-дефисом (hex 2d). В этом примере это даёт: "screen" "3d-glasses" "print"Пара, чувствительная к регистру, подбирается затем из набора типов носителя, определённого выше. ПА может игнорировать неподходящие вхождения. В примере мы остались со значениями screen и print.

Примечание. Таблицы стилей могут включать независимые от типа варианты внутри себя (напр., конструкция CSS @media). В таких случаях может быть удобно использовать "media=all".



Динамическое форматирование


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



Динамическое изменение документов


Скрипты, выполняемые при загрузке документа, могут использоваться для динамической модификации документа. Возможность сделать это зависит от самого языка скриптов (напр., оператор "document.write" в объектной модели HTML не поддерживается некоторыми производителями).

Динамическая модификация документа может быть смоделирована так:

Все элементы SCRIPT выполняются в том порядке, как они загружаются.

Все конструкции скриптов в данном элементе SCRIPT, генерирующем SGML CDATA, выполняются. Их комбинированный сгенерированный текст вставляется в документ вместо элемента SCRIPT.

Сгенерированные CDATA выполняется заново.

Документы HTML должны соответствовать Определению Типа Данных (ОТД) HTML и до, и после обработки элемента SCRIPT.

Следующий пример иллюстрирует, как скрипты могут модифицировать документ динамически.

Скрипт:

<TITLE>Test Document</TITLE> <SCRIPT type="text/javascript"> document.write("<p><b>Hello World!<\/b>") </SCRIPT>

работает так же, как и :

<TITLE>Test Document</TITLE> <P><B>Hello World!</B>



Дизайн документов для ПА, не поддерживающих сценарии


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



Дизайн документов для ПА, поддерживающих скрипты


В следующем разделе обсуждаются вопросы, касающиеся ПА, поддерживающих скрипты.



Добавление стиля в HTML


Примечание. Образец таблицы стилей HTML 4, включённый в [CSS2], показывает обычно приемлемую информацию по умолчанию для каждого элемента. Авторы и разработчики могут найти его вполне пригодным.

Документы HTML могут содержать правила таблиц стилей непосредственно в себе или импортировать таблицы стилей.

Любой язык таблиц стилей может быть использован в HTML. Простой язык может удовлетворить потребности большинства пользователей, а другие языки больше подходят для решения узкоспециализированных задач. В этой спецификации использован язык стилей "Cascading Style Sheets" ([CSS1]), сокращённо - CSS.

Синтаксис данных стиля  зависит от языка таблицы стилей.



Доступность


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


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

большее разделение структуры и представления документа продвижением таблиц стилей вместо элементов и атрибутов представления HTML;

доработка форм, добавление символов быстрого доступа, возможность семантически группировать элементы управления (ЭУ) и опции SELECT, активные лэйблы;

возможность разметки текстового описания включённых объектов (элементом OBJECT);

новый механизм клиентских карт изображений (элемент MAP), позволяющий авторам интегрировать изображения и гиперссылки;

требование установки альтернативного текста для изображений для элемента

IMG и карт изображений для элемента

AREA;

поддержка атрибутов

title и lang для всех элементов;

поддержка элементов

ABBR и ACRONYM;

широкий круг целевых носителей информации (tty, по Брайлю и т.п.) для использования с таблицами стилей;

доработанные таблицы, заголовки, группы столбцов и механизмы, облегчающие невизуальное восприятие;

полное описание таблиц, изображений фрэймов и т.д.

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

Примечание. О дизайне доступных документов HTML см. [WAI].



Другие соотношения гиперссылок


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

Роли гиперссылки, определяемые A или LINK, установлены атрибутами rel и rev.

Например, ссылки, определённые элементом LINK, могут описывать позицию документа в серии документов. В следующем отрывке гиперссылки в документе, озаглавленном "Chapter 5", указывают на следующую и предыдущую главы:

<HEAD> ...другая информация "шапки"...

<TITLE>Chapter 5</TITLE> <LINK rel="prev" href="chapter4.html"> <LINK rel="next" href="chapter6.html"> </HEAD>

Тип первой ссылки - "prev", а второй - "next" (два из нескольких распознаваемых типов ссылок). Гиперссылки, специфицированные в LINK, не рассматриваются как содержимое документов, хотя ПА могут отображать их другими способами (напр., утилитами навигации).

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



Двунаправленный алгоритмВведение.


Следующий пример иллюстрирует ожидаемое поведение двунаправленного алгоритма. Он включает английский, скрипт слева-направо, и еврейский языки, скрипт справа-налево:

english1 HEBREW2 english3 HEBREW4 english5 HEBREW6

Символы в этом примере (и во всех подобных) хранятся на компьютере таким образом: первый символ в файле - "e", второй - "n" и последний - "6".

Предположим, преобладающий язык документа, содержащего этот параграф, английский. Это означает, что базовое направление - слева-направо. Корректное представление этого:

english1 2WERBEH english3 4WERBEH english5 6WERBEH <------ <------ <------ H H H -------------------------------------------------> E

Линии обозначают структуру предложения: английский - основной, а еврейский - внедрён. Достичь корректного представления можно без дополнительной разметки, поскольку еврейские фрагменты корректно повёрнуты ПА с применением двунаправленного алгоритма.

Если наоборот, преобладающий язык документа - еврейский, то базовое направление - справа-налево. Тогда корректное представление:

6WERBEH english5 4WERBEH english3 2WERBEH english1 -------> -------> -------> E E E <------------------------------------------------- H

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



Файл robots.txt


Если Робот заходит на сайт http://www.foobar.com/, он сначала проверяет наличие файла http://www.foobar.com/robots.txt. Если файл найден, робот анализирует его, чтобы определить, может ли документ быть запрошен. Вы можете указать в файле robots.txt применение только конкретных роботов и запретить доступ к определённым файлам или директориям.

Вот примеры из файла robots.txt, запрещающего роботу посещение всего сайта:

User-agent: * # применимо ко всем роботам Disallow: / # запрещает индексирование всех страниц

Робот просто ищет URI файла "/robots.txt" на Вашем сайте, определённом как HTTP сервер, запущенный на определённом хосте с определённым номером порта. Вот несколько примеров для файла robots.txt:

URI сайтаURI для файла robots.txt

http://www.w3.org/http://www.w3.org/robots.txt
http://www.w3.org:80/http://www.w3.org:80/robots.txt
http://www.w3.org:1234/http://www.w3.org:1234/robots.txt
http://w3.org/http://w3.org/robots.txt

На сайте может быть только один файл "/robots.txt". Вы не должны помещать "robots.txt" в пользовательский каталог, поскольку робот их никогда не просматривает. Если Вы хотите, чтобы пользователи могли создавать свой собственный файл "robots.txt", Вам нужно будет объединить все эти файлы в единый "/robots.txt". Если Вам это не нужно, Ваши пользователи могут использовать тег META.

Несколько замечаний:

URI чувствительны к регистру, поэтому строки в "/robots.txt" должны быть записаны в нижнем регистре.

Пустые строки в записях файла "robots.txt" недопустимы.

В записи может быть только одно поле "User-agent". Робот должен быть свободен в трактовке этого поля. Рекомендуются нечувствительные к регистру подстроки "name" без информации о версии.

Если значением является "*", запись описывает политику доступа по умолчанию для любого робота, если он не нашёл ничего в других записях. Не допускается наличие нескольких таких записей в файле "/robots.txt".

Поле "Disallow" описывает неполный URI, который недоступен для посещения. Это может быть полный или неполный путь, любой URI, начинающийся этим значением, не будет запрошен. Например:

Disallow: /help запрещает доступ и к /help.html , и к /help/index.html, в то время, как Disallow: /help/ запрещает доступ к /help/index.html но разрешает к /help.html.

Пустое значение параметра "Disallow" означает, что все URI могут быть запрошены. По меньшей мере одно поле "Disallow" должно присутствовать в файле robots.txt.



Фиксированный алгоритм вывода


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

COLGROUP или COL.

По умолчанию ширина таблицы равна пространству между левым и правым полями, но может быть переопределена с использованием атрибута width элемента TABLE

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

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

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

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

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



Форматирование таблицы пользовательскими агентами


Примечание. В данном разделе рассматриваются атрибуты таблиц HTML, относящиеся к визуальному форматированию. Когда эта спецификация была впервые опубликована в 1997 году, [CSS1] не предоставлял механизмы управления всеми аспектами визуального форматирования таблиц. Затем [CSS2] добавил свойства, позволяющие проводить визуальное форматирование таблиц.

HTML 4 содержит механизмы управления:

стилями обрамления

горизонтальным и вертикальным выравниванием содержимого ячеек

полями ячеек



Форматированный текст: элемент PRE


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

<!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- форматированный текст --> <!ATTLIST PRE %attrs; -- %coreattrs, %i18n, %events -- >

Начальный тег: необходим, Конечный тег: необходим

Определение атрибута

width = number [CN]

Не рекомендуется.

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

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

id, class (идентификаторы документа)

lang (язык), dir (направление текста)

title (название элемента)

style (инлайн стиль )

onclick, ondblclick,

onmousedown, onmouseup,

onmouseover, onmousemove,

onmouseout, onkeypress,

onkeydown, onkeyup (внутренние события )

Элемент

PRE сообщает визуальным ПА, что текст в этом элементе "форматирован". При обработке форматированного текста ПА:

могут оставить пробелы без изменений;

могут отображать текст шрифтом фиксированного размера;

могут отключить автоматический перенос слов;

не должны отключать двунаправленный процесс.

Невизуальным ПА не нужно учитывать пробелы в содержимом элемента PRE.

Дополнительную информацию о SGML спецификации обрывов строки см. в замечаниях об обрыве строк в приложении.

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

Следующий пример показывает версию форматированной поэмы Shelly's "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), после которых устанавливаются точки  табуляции. Мы настоятельно не рекомендуем использовать горизонтальную табуляцию в форматированном тексте, поскольку обычно при редактировании устанавливают другие размеры табуляции, что приводит к нарушению выравнивания в документе.



Формы


17.2.1 Типы элементов управления: если ни одна кнопка radio первоначально не выбрана, поведение ПА по выбору кнопки не определено. Отличается от RFC 1866.17.3 Элемент FORM: добавление в атрибуте name для обратной совместимости.17.3 Элемент FORM: удалена ссылка на "mailto" URI в определении атрибута "action".

17.3 Элемент FORM: удалён пример "mailto" в конце раздела, поскольку поведение этого вида не определено.

17.3 Элемент FORM: атрибут

accept добавлен к фрагменту ОТД/DTD. Также улучшено описание атрибута

accept-charset.

17.4 Элемент INPUT: добавлен "ismap" к элементу INPUT. Также, в определении value, добавлен "checkbox" к значениям type, требующим указания значения.

17.6.1: если никакая опция не предустановлена, поведение ПА не определено. Авторы должны однозначно изменить опцию none, чтобы определить этот вариант. Такое поведение отличается от RFC 1866.


Оглавление

Введение

Элементы управления (ЭУ)

типы элементов управления

Элемент FORM

Элемент INPUT типы элементов управления, создаваемы в INPUT

примеры форм, содержащих элементы управления

Элемент BUTTON

Элементы SELECT, OPTGROUP и OPTION предустановленные опции

Элемент TEXTAREA

Элемент ISINDEX

Лэйблы

элемент LABEL

Структурирование формы: элементы FIELDSET и LEGEND

Передача элементу фокуса ввода

навигация при помощи табуляции

клавиши быстрого доступа

Элементы управления - недоступные и "только для чтения"

недоступные

"только для чтения"

Отправка формы

метод отправки

"действующие" элементы управления

Обработка данных формы

Шаг 1: идентификация "успешных" элементов управления

Шаг 2: создание набора данных формы

Шаг 3: кодирование набора данных формы

Шаг 4: отправка кодированного набора данных формы

Типы содержимого формы

application/x-www-form-urlencoded

multipart/form-data



Форсирование обрыва строки: элемент BR


<!ELEMENT BR - O EMPTY -- принудительный обрыв строки --> <!ATTLIST BR %coreattrs; -- id, class, style, title -- >

Начальный тег: необходим, Конечный тег: запрещён

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

id, class (идентификаторы документа)

title (название элемента)

style (инлайн стиль )

clear (выравнивание и всплывающие объекты)

Элемент

BR принудительно обрывает (оканчивает) текущую строку текста.

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

В отношении двунаправленного форматирования элемент BR должен вести себя так же, как

[ISO10646] символ LINE SEPARATOR в двунаправленном алгоритме.



Фрэймы


16.4.1 NOFRAMES: добавлен текст к описанию NOFRAMES.16.4.1 NOFRAMES: добавлен текст относительно которого ОТД могу иметь NOFRAMES (frames, transitional).



Фрэймы (кадры)


Содержание

Введение

Вывод фрэймов

Элемент

FRAMESET

Ряды и столбцы

Вложенные фрэймы

Разделение данных между фрэймами

Элемент FRAME

Установка начального содержимого фрэйма

Визуальное представление фрэймов

Установка целевого фрэйма

Целевой фрэйм по умолчанию

Семантика цели

Альтернативное содержимое

Элемент

NOFRAMES

Полное описание фрэймов

Инлайн-фрэймы: элемент IFRAME



Фрэймы - Введение


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

Вот простой документ с фрэймами:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <HTML> <HEAD> <TITLE>Простой набор фрэймов</TITLE> </HEAD> <FRAMESET cols="20%, 80%"> <FRAMESET rows="100, 200"> <FRAME src="contents_of_frame1.html"> <FRAME src="contents_of_frame2.gif"> </FRAMESET> <FRAME src="contents_of_frame3.html"> <NOFRAMES> <P>Это набор фрэймов: <UL> <LI><A href="contents_of_frame1.html">Некоторое содержимое</A> <LI><IMG src="contents_of_frame2.gif" alt="Изображение"> <LI><A href="contents_of_frame3.html">Другое содержимое</A> </UL> </NOFRAMES> </FRAMESET> </HTML>

который выводит фрэймы примерно так:

--------------------------------------- | | | | | | | Frame 1 | | | | | | | | |---------| | | | Frame 3 | | | | | | | | | | | Frame 2 | | | | | | | | | | | | | | ---------------------------------------

Если пользовательский агент (ПА) не может выводить фрэймы (или сконфигурирован так), он будет выводить содержимое элемента

NOFRAMES.



Гиперссылки


12.2 Элемент A: описание атрибута

type для элементов A и (LINK) изменено, чтобы подчеркнуть его информационный характер.12.2.3 Якоря с атрибутом id: для "name" и "id" недопустимо появляться в одном и том же начальном теге, если они оба определены для элемента. Они должны иметь идентичные значения.12.3.3 Гиперссылки и поисковые машины: в примере удалена ссылка на атрибут dir,

так как он не относится к связываемому ресурсу (только к содержимому элемента и значениям атрибутов текста).

12.4.1 Относительные URI: поскольку RFC 2616 не включает поле заголовка Link, следующее заявление квалифицировано для предыдущих версий HTTP 1.1: "Элементы ссылки, специфицированные в заголовками HTTP, обрабатываются точно как элементы LINK, явно появляющиеся в документе."


Содержание

Гиперссылки и якоря. Введение

"Посещение" связанного ресурса

Другие соотношения гиперссылок

Спецификация якорей и гиперссылок

Заголовки гиперссылок

Интернационализация и гиперссылки

Элемент A

Синтаксис имён якорей

Вложение гиперссылок не допускается

Якоря с атрибутом id

Недоступные и неидентифицируемые ресурсы

Взаимосвязи документов: элемент LINK

Гиперссылки вперёд и назад

Гиперссылки и внешние таблицы стилей

Гиперссылки и машины поиска

Информация пути: элемент BASE

Расширение относительных URI



Гиперссылки и якоряВведение


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

В этом разделе вводится понятие ссылки

(или гиперссылки, ссылки Web), базовой конструкции гипертекста. Ссылка это соединение одного Web-ресурса с другим. Несмотря на простоту концепции, ссылка является одной из фундаментальных сил, приведших к успешному развитию Web.

Ссылка

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



Гиперссылки и машины поиска


Авторы могут использовать элемент LINK для предоставления поисковым машинам различной информации, в том числе:

для ссылок на альтернативные версии документа на других языках;

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

для ссылок на начальную страницу коллекции документов.

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

Здесь мы используем атрибут hreflang, чтобы сообщить поисковой машине, где найти датскую, португальскую и арабскую версии документа. Обратите внимание на использование атрибута charset для арабского варианта учебника. Отметьте также использование атрибута lang для указания на то, что значение атрибута title

элемента LINK, указывающего на французский учебник, - французский.

<HEAD> <TITLE>Учебник на английском</TITLE> <LINK title="Учебник на датском" type="text/html" rel="alternate" hreflang="nl" href="http://someplace.com/manual/dutch.html"> <LINK title="Учебник на португальском" type="text/html" rel="alternate" hreflang="pt" href="http://someplace.com/manual/portuguese.html"> <LINK title="Учебник на арабском" type="text/html" rel="alternate" charset="ISO-8859-6" hreflang="ar" href="http://someplace.com/manual/arabic.html"> <LINK lang="fr" title="La documentation en Fran&ccedil;ais" type="text/html" rel="alternate" hreflang="fr" href="http://someplace.com/manual/french.html"> </HEAD>

В следующем примере мы сообщаем поисковой машине, где искать версию для печати:

<HEAD> <TITLE>Справочник</TITLE> <LINK media="print" title="Справочник в postscript" type="application/postscript" rel="alternate" href="http://someplace.com/manual/postscript.ps"> </HEAD>

В следующем примере мы сообщаем поисковой машине, где искать начальную страницу коллекции документов:

<HEAD> <TITLE>Справочник -- Страница 5</TITLE> <LINK rel="Start" title="Первая страница" type="text/html" href="http://someplace.com/manual/start.html"> </HEAD>

Дополнительная информация находится в примечаниях: помощь поисковым машинам в индексации Вашего Web-сайта.



Гиперссылки и внешние таблицы стилей


Если элемент LINK связывает внешнюю таблицу стилей с документом, то атрибут type определяет язык таблицы стилей, а атрибут

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

Типы носителя

рассматриваются в разделе о таблицах стилей.



Гиперссылки вперёд и назад


Атрибуты

rel и rev дополнительно могут: атрибут rel

- определять ссылки вперёд, а атрибут rev - ссылки назад.

Рассмотрим два документа - A и B.

Document A: <LINK href="docB" rel="foo">

имеет то же значение, что и:

Document B: <LINK href="docA" rev="foo">

Оба атрибута могут быть определены одновременно.



Глобальные схемы именования объектов


Размещение реализации объекта задаётся в URI. Как мы уже видели во введении в URI, первый сегмент абсолютного URI специфицирует схему именования, используемую для передачи данных, указанных в URI. Для документов HTML эта схема, чаще всего, "http". Некоторые аплеты могут применять другие схемы именования. Например, при спецификации аплета Java, авторы могут использовать URI, начинающиеся с "java", а для аплетов ActiveX - использовать "clsid".

В следующем примере мы вставляем аплет Java в документ HTML:

<P><OBJECT classid="java:program.start"> </OBJECT>

При установленном атрибуте codetype, ПА может решить, запрашивать ли приложение Java, на основе его (ПА) способности выполнить аплет.

<OBJECT codetype="application/java-archive" classid="java:program.start"> </OBJECT>

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

codebase:

<OBJECT codetype="application/java-archive" classid="java:program.start"> codebase="http://foooo.bar.com/java/myimplementation/" </OBJECT>

В следующем примере специфицирован (в атрибуте classid) объект ActiveX в URI, начинающемся со схемы именования "clsid". Атрибут data

локализует данные для отображения ("часы").

<P><OBJECT classid="clsid:663C8FEF-1EF9-11CF-A3DB-080036F12502" data="http://www.acme.com/ole/clock.stm"> Это приложение не поддерживается. </OBJECT>



Горизонтальное и вертикальное выравнивание


Следующие атрибуты могут быть установлены для различных элементов таблицы (см. соответствующие определения).

<!-- атрибуты горизонтального выравнивания содержимого ячейки --> <!ENTITY % cellhalign "align (left|center|right|justify|char) #IMPLIED char %Character; #ПРЕДПОЛАГАЕТСЯ -- символ выравнивания, например, char=':' -- charoff %Length; #ПРЕДПОЛАГАЕТСЯ -- offset символа выравнивания --" > <!-- атрибуты вертикального выравнивания содержимого ячейки --> <!ENTITY % cellvalign "valign (top|middle|bottom|baseline) #IMPLIED" >

Определения атрибутов

align =

left|center|right|justify|char

[CI]

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

left: влево - данные/текст влево. Значение по умолчанию для данных таблицы;

center: по центру - данные/текст по центру. Это значение по умолчанию для заголовков таблицы;

right: вправо - данные/текст вправо;

justify: выравнивание текста по формату;

char: Выравнивание текста по особому символу. Если ПА не поддерживает выравнивание по символу, поведение ПА при установленном (этом) значении не определено.

valign =

top|middle|bottom|baseline

[CI]

Этот атрибут определяет вертикальное выравнивание данных в ячейке. Возможные значения:

top: по верху ячейки;

middle: по центру ячейки. Это значение по умолчанию;

bottom: по нижней границе ячейки;

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

char = character [CN]

Этот атрибут определяет одиночный символ во фрагменте текста, служащий осью выравнивания. Значением по умолчанию этого атрибута является символ десятичной точки текущего языка, установленного атрибутом lang (напр., точка (".") в английском и запятая во французском (",")). ПА не обязаны поддерживать этот атрибут.


charoff = length [CN]

Если установлен, этот атрибут определяет offset/отсутствие первого в каждой строке символа выравнивания. Если строка не содержит символа выравнивания, она должна быть горизонтально смещена к концу позиции выравнивания.

Если charoff используется для установки офсета символа выравнивания, направление офсета определяется текущим направлением текста (установленным атрибутом dir). В текстах слева-направо (по умолчанию) офсет слева. В текстах справа налево офсет справа. От ПА не требуется поддерживать данный атрибут.

В этой таблице ряд цен выровнен вокруг десятичной точки. Мы явно устанавливаем символ выравнивания ".".

<TABLE border="1"> <COLGROUP> <COL><COL align="char" char="."> <THEAD> <TR><TH>Vegetable <TH>Cost per kilo <TBODY> <TR><TD>Lettuce <TD>$1 <TR><TD>Silver carrots <TD>$10.50 <TR><TD>Golden turnips <TD>$100.30 </TABLE>

Форматирование может выглядеть примерно так:

------------------------------ | Vegetable |Cost per kilo| |--------------|-------------| |Lettuce | $1 | |--------------|-------------| |Silver carrots| $10.50| |--------------|-------------| |Golden turnips| $100.30| ------------------------------

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

Примечание. Визуальные ПА обычно отображают элементы TH сцентрированными в ячейке вертикально и горизонтально и полужирным шрифтом.


Горизонтальные линии: элемент HR


<!ELEMENT HR - O EMPTY -- горизонтальная линия --> <!ATTLIST HR %attrs; -- %coreattrs, %i18n, %events -- >

Начальный тег: необходим, Конечный тег: запрещён

Определение атрибутов

align =

left|center|right [CI]

Не рекомендуется.

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

left: линия выравнивается влево.

center: линия выравнивается по центру.

right: линия выравнивается вправо.

По умолчанию align=center.

[CI]

Не рекомендуется.

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

size = pixels [CI]

Не рекомендуется.

Определяет высоту линии. Значение по умолчанию зависит от ПА.

width = length [CI]

Не рекомендуется.

Определяет ширину линии. Ширина по умолчанию - 100%, т.е. линия растянута по ширине всей "канвы".

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

id, class (идентификаторы документа)

lang (язык),

dir (направление текста)

title (название элемента)

style (инлайн-стиль)

onclick, ondblclick,

onmousedown, onmouseup,

onmouseover, onmousemove,

onmouseout, onkeypress,

onkeydown, onkeyup (внутренние события)

Элемент

HR отображает горизонтальную линию в ПА.

Величина свободного пространства под и над горизонтальной линией зависит от ПА.

НЕ РЕКОМЕНДУЕТСЯ:

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

<HR width="50%" align="center"> <HR size="5" width="50%" align="center"> <HR size="5" width="50%" align="center">

Эти линии должны выглядеть примерно так:



Группирование элементов: элементы DIV и SPAN


<!ELEMENT DIV - - (%flow;)* -- общий язык/контейнер стиля --> <!ATTLIST DIV %attrs; -- %coreattrs, %i18n, %events -- > <!ELEMENT SPAN - - (%inline;)* -- общий язык/контейнер стиля --> <!ATTLIST SPAN %attrs; -- %coreattrs, %i18n, %events -- >

Начальный тег: необходим, Конечный тег: необходим

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

id, class (идентификаторы документа)

lang (язык), dir (направление текста)

title (заголовок элемента)

style (инлайн-стиль)

align (выравнивание)

onclick, ondblclick,

onmousedown, onmouseup,

onmouseover, onmousemove,

onmouseout, onkeypress,

onkeydown, onkeyup (внутренние события)

Элементы

DIV и SPAN в сочетании с атрибутами id и class

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

Предположим, например, что мы хотим сгенерировать документ HTML, на основе информации из базы данных клиента. Поскольку HTML не имеет элементов, идентифицирующих объект, таких как "client", "telephone number", "email address" и т.д., мы используем DIV и SPAN для достижения желаемого структурного эффекта и представления. Можно использовать элемент TABLE для структурирования информации:

<!-- Пример данных из базы данных клиента: --> <!-- Имя: Stephane Boyera, Tel: (212) 555-1212, Email: sb@foo.org -->

<DIV id="client-boyera" class="client"> <P><SPAN class="client-title">Client information:</SPAN> <TABLE class="client-data"> <TR><TH>Last name:<TD>Boyera</TR> <TR><TH>First name:<TD>Stephane</TR> <TR><TH>Tel:<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">Client information:</SPAN> <TABLE class="client-data"> <TR><TH>Last name:<TD>Lafon</TR> <TR><TH>First name:<TD>Yves</TR> <TR><TH>Tel:<TD>(617) 555-1212</TR> <TR><TH>Email:<TD>yves@coucou.com</TR> </TABLE> </DIV>

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

Другие примеры использования см. в разделе атрибуты class

и id.

Визуальные ПА обычно помещают разрыв строки перед и после элементов DIV, например:

<P>aaaaaaaaa<DIV>bbbbbbbbb</DIV><DIV>ccccc<P>ccccc</DIV>

что обычно отображается так:

aaaaaaaaa bbbbbbbbb ccccc

ccccc



Группы рядов и столбцов


Эта спецификация является квинтэссенцией простой модели, разработанной ранее в HTML+. Таблицы представлены как сформированная после необязательного заглавия последовательность рядов, которые, в свою очередь, состоят из последовательности ячеек. Эта модель затем разделяет заголовочные ячейки и ячейки данных и позволяет ячейкам занимать несколько рядов или столбцов.

Следуя модели таблиц CALS (см. [CALS]), эта спецификация разрешает группировать ряды таблицы в разделы head, body и foot. Это упрощает воспроизведение информации представления и может быть использовано для повторения рядов head и foot при разрыве таблицы по границам страниц или для показа фиксированных заголовков в верхней части прокручиваемой панели. При разметке foot-секция размещается перед body-секциями. Эта оптимизация разделяется CALS при обработке очень больших таблиц. Это даёт возможность видеть foot, не ожидая вывода всей таблицы.



Группы рядов: элементы THEAD, TFOOT и TBODY


<!ELEMENT THEAD - O (TR)+ -- "шапка" таблицы --> <!ELEMENT TFOOT - O (TR)+ -- футер таблицы -->

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

<!ELEMENT TBODY O O (TR)+ -- тело таблицы -->

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

<!ATTLIST (THEAD|TBODY|TFOOT) -- раздел таблицы -- %attrs; -- %coreattrs, %i18n, %events -- %cellhalign; -- горизонтальное выравнивание в ячейках -- %cellvalign; -- вертикальное выравнивание в ячейках -- >

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

id, class (идентификаторы документа)

lang (язык), dir (направление текста)

title (заголовок элемента)

style (инлайн-стиль)

onclick, ondblclick,

onmousedown, onmouseup,

onmouseover, onmousemove,

onmouseout, onkeypress,

onkeydown, onkeyup (внутренние события)

align, char,

charoff, valign (выравнивание в ячейке)

Ряды таблицы могут быть сгруппированы

в "шапку", футер и один или более разделов тела документа с помощью элементов THEAD,

TFOOT и TBODY соответственно. Это разделение делает возможным для ПА поддерживать прокрутку тела таблицы независимо от "шапки" и футера. Если распечатываются большие таблицы, информация "шапки" и футера может повторяться на каждой странице, содержащей данные таблицы.

"Шапка" и футер таблицы должны содержать информацию о столбцах таблицы. Тело таблицы должно содержать ряды данных таблицы.

Если элементы THEAD, TFOOT и TBODY

установлены, каждый из них содержит группу рядов.

Каждая группа рядов должна содержать минимум один ряд, определённый элементом TR.

Этот пример иллюстрирует порядок и структуру "шапки", футера и тела таблицы.

<TABLE> <THEAD> <TR> ...информация "шапки"...

</THEAD> <TFOOT> <TR> ...информация футера...

</TFOOT> <TBODY> <TR> ...первый ряд данных блока 1...

<TR> ...второй ряд данных блока 1...

</TBODY> <TBODY> <TR> ...первый ряд данных блока 2...



должен появляться перед TBODY внутри


<TR> ...второй ряд данных блока 2...

<TR> ...третий ряд данных блока 2...

</TBODY> </TABLE>



TFOOT
должен появляться перед TBODY внутри определения TABLE

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

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

всегда может быть спокойно пропущен;

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

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

Таблица предыдущего примера может быть укорочена за счёт удаления некоторых конечных тегов:

<TABLE> <THEAD> <TR> ...информация "шапки"...

<TFOOT> <TR> ...информация футера...

<TBODY> <TR> ...первый ряд данных блока 1...

<TR> ...второй ряд данных блока 1...

<TBODY> <TR> ...первый ряд данных блока 2...

<TR> ...второй ряд данных блока 2...

<TR> ...третий ряд данных блока 2...

</TABLE>

Разделы

THEAD
, TFOOT и

TBODY
должны содержать одинаковое количество столбцов.


Группы столбцов: элементы COLGROUP и COL


Группы столбцов позволяют авторам создавать структурированные подразделения внутри таблицы. Авторы могут сделать эту структуру более ясной с помощью таблиц стилей или атрибутов HTML (напр., атрибут rules элемента TABLE). См. пример визуального представления группы столбцов в образце таблицы.

Таблица может содержать единую подразумеваемую группу столбцов (нет элементов COLGROUP, разграничивающих столбцы) или любое количество явно определённых групп столбцов (каждая ограничена вхождением элемента COLGROUP).

Элемент COL позволяет авторам разделять использование атрибутов среди нескольких столбцов без применения какого-либо структурного группирования. Атрибут "span" элемента COL

это количество столбцов, которые будут использовать атрибуты элемента.



HTML


HTML 4 расширяет HTML механизмами таблиц стилей, сценариев, фрэймов, внедрённых объектов, улучшенной поддержкой текста левого и правого направлений, сложными таблицами и улучшениями в формах, увеличением доступности для людей с физическими недостатками.

В HTML 4.01 сделан пересмотр HTML 4.0, исправлены ошибки и внесены некоторые изменения по сравнению с предыдущей версией.