О спецификации HTML 4.0
Атрибуты
С элементами могут быть связаны свойства, называемые атрибутами, которые могут иметь значения (стандартные или устанавливаемые авторами или сценариями). Пары атрибут/значение помещаются перед закрывающей скобкой ">" начального тэга элемента. В начальном тэге элемента может быть любое число (допустимых) пар атрибут/значение, разделенных пробелами. Они могут указываться в любом порядке.
В данном примере для элемента установлен атрибут :
Это определенный заголовок, спасибо атрибуту id
По умолчанию в SGML необходимо, чтобы все значения атрибутов были разделены с помощью двойных (десятичный код ASCII 34) или одинарных кавычек (десятичный код ASCII 39). Одинарные кавычки могут включаться в значение атрибута, если значение отделяется двойными кавычками, и наоборот. Авторы могут также использовать цифровые ссылки на символы для представления двойных (") и одинарных кавычек ('). Для двойных кавычек авторы могут также использовать ".
В определенных случаях авторы могут указывать значение атрибута без кавычек. Значение атрибута может включать только буквы (a-z и A-Z), цифры (0-9), знаки переноса (десятичный код ASCII 45) и точки (десятичный код ASCII 46). Рекомендуется всегда использовать кавычки.
Имена атрибутов всегда учитывают регистр
Значения атрибутов обычно учитывают регистр. Определение каждого атрибута в списке атрибутов указывается, учитывает ли значение регистр.
Список всех атрибутов, определенных в этой спецификации, приводится в .
Что такое HTML?
Чтобы представить информацию для глобального использования, нужен универсальный язык, который понимали бы все компьютеры. Языком публикации, используемым в World Wide Web, является HTML (HyperText Markup Language - язык разметки гипертекстов).
HTML дает авторам средства для:
публикации электронных документов с заголовками, текстом, таблицами, списками, фотографиями и т.д.
загрузки электронной информации с помощью щелчка мыши на гипертекстовой ссылке.
разработки форм для выполнения транзакций с удаленными службами, для использования в поиске информации, резервировании, заказе продуктов и т.д.
включения электронных таблиц, видеоклипов, звуковых фрагментов и других приложений непосредственно в документы.
Что такое World Wide Web?
World Wide Web (Web) - это сеть информационных ресурсов. Для того, чтобы сделать эти ресурсы доступными наиболее широкой аудитории, в Web используются три механизма:
Единая схема наименования для поиска ресурсов в Web (например, URI). Протоколы для доступа к именованным ресурсам через Web (например, HTTP). Гипертекст для простого перемещения по ресурсам (например, HTML).
Связи между этими тремя механизмами становятся очевидными по прочтении этой спецификации.
Доступность
Поскольку сообщество Web растет, и возможности и умения его членов различаются, очень важно, чтобы основные технологии соответствовали потребностям. Язык HTML разработан так, чтобы сделать Web-страницы более доступными для пользователей с физическими недостатками. В HTML 4.0 имеются следующие дополнения, продиктованные соображениями доступности:
усилено разделение структуры и представления документа, что побуждает использовать таблицы стилей вместо элементов и атрибутов представления языка HTML.
улучшены формы, включена возможность назначения клавиш доступа, возможность семантической группировки управляющих элементов формы, семантической группировки вариантов в тэге и активные метки.
добавлена возможность разметки текстового описания включенного объекта (с помощью элемента ).
введен новый механизм действия изображений-карт на стороне клиента (элемент ), который позволяет авторам интегрировать изображения и текстовые ссылки.
альтернативный текст для изображений, включаемых с помощью элемента , обязателен.
добавлена поддержка атрибутов и во всех элементах.
добавлена поддержка элементов и .
более широкий диапазон целевых устройств (телетайп, шрифт Бройля и т.д.) для использования в таблицах стилей.
улучшены таблицы, включена поддержка заголовков, групп столбцов и механизмов для упрощения невизуального представления документа.
добавлены длинные описания таблиц, изображений, кадров и т.д.
Авторы, разрабатывающие страницы с учетом доступности, получат не только эту возможность, но также и некоторые другие: хорошо разработанные документы HTML с разделенными структурой и представлением будут легче адаптироваться к новым технологиям.
Примечание.
Подробнее о разработке доступных документов HTML Вы можете прочесть в [WAIGUIDE].
вводятся механизмы таблиц стилей,
В HTML 4. 0 вводятся механизмы таблиц стилей, скриптов, кадров, внедрения объектов, улучшенная поддержка разных направлений письма и направления справа налево, таблицы с большим количеством возможностей и новые свойства форм, обеспечивая лучшие возможности доступа для людей с физическими недостатками.
Идентификаторы фрагментов
Некоторые URI указывают на местоположение внутри ресурса. Этот тип URI заканчивается символом "#", за которым следует указатель (идентификатор фрагмента). Например, следующий URI указывает на фрагмент с именем section_2:
http://somesite.com/html/top.html#section_2
Интернационализация
Эта версия HTML разработана с помощью экспертов в области интернационализации, так что документы можно писать на любом языке и легко передавать их по всему миру. Это достигается за счет использования [RFC2070], относящегося к интернационализации HTML.
Важным шагом стало принятие стандарта ISO/IEC:10646 (см. [ISO10646]) в качестве набора символов для документов HTML. Это наиболее содержательный стандарт в мире, в котором решены вопросы представления национальных символов, направления письма, пунктуации и других языковых вопросов.
HTML теперь предоставляет лучшую поддержку различных языков в одном документе. Это обеспечивает более эффективное индексирование документов для поисковых машин, типографию высшего качества, преобразование текста в речь, более удобные переносы и т.д.
Элементы
SGML объявляет типы элементов, представляющие структуры или желательное поведение. HTML включает типы элементов, представляющие абзацы, гипертекстовые ссылки, списки, таблицы, изображения и т.д.
Каждое объявление типа элемента обычно включает три части: начальный тэг, содержимое и конечный тэг.
Имя элемента отображается в начальном тэге (пишется <имя-элемента>) и в конечном тэге (пишется имя-элемента>); не забывайте про слеш перед именем элемента в конечном тэге. Например, начальные и конечные тэги элемента определяют список:
...элемент списка 1...
...элемент списка 2...
Некоторые типы элементов HTML позволяют авторам опускать конечные тэги (например, типы элементов and ). Несколько типов элементов также позволяют опускать начальные тэги; например, и . HTML DTD указывает для каждого типа элемента, являются ли начальный и конечный тэги обязательными.
Некоторые типы элементов HTML не имеют содержимого. Например, элемент перехода на следующую строку не имеет содержимого; его роль - прерывание строки текста. Такие пустые элементы никогда не имеют конечных тэгов. Определение типа документа и текст спецификации указывают, является ли тип элемента пустым (не имеет содержимого) или, если он может иметь содержимое, что является допустимым содержимым.
Имена элементов всегда учитывают регистр.
Информацию о правилах, управляющих элементами, (например, что они могут быть вложенными соответствующим образом, конечный тэг закрывает все опущенные начальные тэги вплоть до соответствующего ему начального тэга (раздел 7.5.1) и т.д.) см. в стандарте SGML.
Например, следующий абзац:
Это первый абзац. ...элемент блока...
можно перезаписать без конечного тэга:
Это первый абзац. ...элемент блока...
поскольку начальный тэг закрывается следующим элементом блока. Точно так же, если абзац включен в элемент блока, например:
Это абзац.
конечный тэг включающего элемента блока (здесь - ) служит также конечным тэгом открытого начального тэга .
Элементы - это не тэги. Некоторые люди называют элементы тэгами (например, "тэг P "). Помните, что элемент - это одно, а тэг (начала или конца, неважно) - другое. Например, элемент HEAD всегда присутствует, даже если начальный и конечный тэги HEAD отсутствуют.
Все типы элементов, объявленные в этой спецификации, перечислены в .
Как читать HTML DTD
Каждое объявление элемента и атрибута в этой спецификации сопровождается фрагментом его . Мы решили включить фрагменты DTD в спецификацию вместо того, чтобы искать более доступные, но более длинные и менее точные средства описания свойств элементов. При помощи следующего учебника читатели, не знакомые с SGML, смогут научиться читать DTD и понимать технические подробности спецификации HTML.
Комбинации DTD в определениях атрибутов
Определения атрибутов могут также содержать ссылки на комбинации параметров.
В этом примере мы видим, что список определений атрибутов для элемента начинается с комбинации параметров "%attrs;".
Начальный тег:
обязателен , Конечный тег:
запрещен
Комбинация параметров "%attrs;" определена следующим образом:
Комбинация "%coreattrs;" в определении "%attrs;" разворачивается следующим образом:
Комбинация параметров "%attrs;" определена для удобства, поскольку эти атрибуты определены для большинства типов элементов HTML.
Таким же образом DTD определяет комбинацию параметров "%URI;" как расширение строки "CDATA".
-->
Как показано в этом примере, комбинация параметров "%URI;" предоставляет читателям DTD больше информации, чем для типа данных, ожидаемого для этого атрибута. Похожие entities определены для "%Color;", "%Charset;", "%Length;", "%Pixels;" и т.д.
Комментарии DTD
В DTD комментарии могут занимать несколько строк. В DTD комментарии отделяются парой меток "--", например,
Здесь комментарий "значение именованного свойства" объясняет использование типа элемента . Комментарии в DTD носят информативный характер.
это тоже комментарий, он занимает
Комментарии в HTML имеют следующий синтаксис:
Проблемы между открывающим разделителем разметки (""). Распространенной ошибкой является включение строки символов переноса ("---") в комментарий. Следует избегать использования в комментариях двух или более символов переноса.
Информация в комментариях не имеет специального значения (например, не интерпретируются).
Конструкции SGML, используемые в HTML
В следующих разделах Вы познакомитесь с конструкциями SGML, используемыми в HTML.
В приложении перечислены некоторые , которые не поддерживаются средствами HTML и агентами пользователей, и использования которых следует избегать.
Краткая история HTML
Язык HTML был разработан Тимом Бернерс-Ли во время его работы в CERN и распространен браузером Mosaic, разработанным в NCSA. В 1990-х годах он добился особенных успехов благодаря быстрому росту Web. В это время HTML был расширен и дополнен. В Web очень важно использование одних и тех же соглашений HTML авторами Web-страниц и производителями. Это явилось причиной совместной работы над спецификациями языка HTML.
HTML 2.0 (ноябрь 1995, см. [RFC1866]) был разработан под эгидой Internet Engineering Task Force (IETF) для упорядочения общепринятых положений в конце 1994 года. HTML+ (1993) и HTML 3.0 (1995, см. [HTML30]) - это более богатые версии языка HTML. Несмотря на то, что в обычных дискуссиях согласие никогда не было достигнуто, эти черновики привели к принятию ряда новых свойств. Усилия Рабочей группы World Wide Web Consortium по HTML в упорядочении общепринятых положений в 1996 привели к версии HTML 3.2 (январь 1997, см. [HTML32]). Изменения по отношению к HTML 3.2 перечислены в
Большинство людей признают, что документы HTML должны работать в различных браузерах и на разных платформах. Достижение совместимости снижает расходы авторов, поскольку они могут разрабатывать только одну версию документа. В противном случае возникает еще больший риск, что Web будет представлять собой смесь личных несовместимых форматов, что в конечном счете приведет к снижению коммерческого потенциала Web для всех участников.
В каждой версии HTML предпринималась попытка отразить все большее число соглашений между работниками и пользователями этой индустрии, чтобы усилия авторов не были потрачены впустую, а их документы не стали бы нечитаемыми в короткий срок.
Язык HTML разрабатывался с той точки зрения, что все типы устройств должны иметь возможность использовать информацию в Web: персональные компьютеры с графическими дисплеями с различным разрешением и числом цветов, сотовые телефоны, переносные устройства, устройства для вывода и ввода речи, компьютеры с высокой и низкой частотой и т.д.
Логические атрибуты
Некоторые атрибуты играют роль логических переменных (например, атрибут для элемента ). Их наличие в начальном тэге элемента подразумевает, что значением атрибута является "истина". Их отсутствие означает "ложь".
Логические атрибуты могут принимать только одно значение: собственно имя атрибута (например, selected="selected").
В этом примере атрибут определяется как булев.
selected (selected) #IMPLIED -- уменьшенный интервал между элементами --
Для атрибута устанавливается значение "истина", поскольку он находится в начальном тэге элемента:
...contents...
В HTML логические атрибуты могут быть в минимизированной форме -- в начальном тэге элемента находится только значение атрибута. Таким образом, можно установить, написав:
вместо:
Авторам следует знать, что многие агенты пользователей распознают только минимизированную форму логических атрибутов и не распознают полную.
Об SGML и HTML
В этом разделе документа Вы познакомитесь с SGML и узнаете о его отношении к HTML. Полное описание SGML не входит в этот стандарт (см. [ISO8879]).
Объявления атрибутов
Объявление атрибутов, которые может иметь элемент, начинается с ключевого слова . Каждое определение атрибута - это тройка, определяющая:
Имя атрибута.
Тип значения атрибута или явный набор допустимых значений. Значения, определенные явным образом при помощи DTD, учитывают регистр. Подробнее о типах значений атрибутов см. в разделе .
Является ли значение атрибута по умолчанию неявным (ключевое слово "#IMPLIED"), то есть значение по умолчанию устанавливается агентом пользователя (в некоторых случаях с использованием наследования от родительских элементов); всегдаобязательным (ключевое слово "#REQUIRED"); или фиксированным данным значением (ключевое слово "#FIXED"). Некоторые определения атрибутов явным образом указывают значение атрибута по умолчанию.
В этом примере атрибут определен для элемента . Атрибут на является обязательным для этого элемента.
Тип значений, допустимых для этого атрибута, дается как CDATA, тип данных SGML. CDATA - это текст, который может содержать .
Подробнее о типах данных "CDATA", "NAME", "ID" и др. см. в разделе .
В следующих примерах показано несколько определений атрибутов:
rowspan NUMBER 1 -- число строк, охватываемых ячейкой -- http-equiv NAME #IMPLIED -- Имя заголовка ответа HTTP -- id ID #IMPLIED -- уникальный ИД в пределах документа -- valign (top|middle|bottom|baseline) #IMPLIED
Для атрибута rowspan необходимы значения типа NUMBER. Значение по умолчанию дается явно - "1". Для необязательного атрибута http-equiv необходимы значения типа NAME. Для необязательного атрибута id необходимы значения типа ID. Необязательный атрибут valign ограничен значениями из набора {top, middle, bottom, baseline}.
Объявления элементов
HTML DTD состоит из объявлений типов элементов и их атрибутов. Объявление начинается с ключевого слова . Между ними указываются:
Имя элемента.
Обязателен ли конечный тэг элемента. Два символа переноса после имени элемента означают, что начальный и конечный тэги являются обязательными. Один символ переноса, за которым следует буква "O", указывает, что конечный тэг можно опустить. Две буквы "O" указывают на то, что можно опустить как начальный, так и конечный тэги.
Содержимое элемента, если таковое имеется. Допустимым содержимым элемента называется его модель содержимого. Типы элементов, не имеющие содержимого, называются пустыми элементами. Модель содержимого для таких типов элементов объявляется при помощи ключевого слова "EMPTY".
В этом примере:
Объявляется тип элемента UL . Два знака переноса указывают, что начальный тэг и конечный тэг для этого элемента обязательны. Модель содержимого для этого типа элемента - "по крайней мере один элемент LI". Ниже объясняется, как задать модель содержимого.
В этом примере показано объявление пустого типа элемента:
Объявляется тип элемента IMG .
Знак переноса, за которым следует буква "O", указывает, что конечный тэг можно опустить, но если модель содержимого - "EMPTY", это правило усиливается, и конечный тэг должен быть опущен.
Ключевое слово "EMPTY" означает, что экземпляры этого типа не должны иметь содержимого.
Определения комбинаций параметров
начинается с ряда определений комбинаций параметров. Определение комбинации параметров определяет макрос, на который можно ссылаться в любом месте DTD. Эти макросы не отображаются в документах HTML, они отображаются только в DTD. Другие типы макросов, называемые ссылками на символы, могут использоваться в тексте документа в формате HTML или в значениях атрибутов.
Когда на комбинацию параметров ссылаются в DTD по имени, она разворачивается в строку.
Определение комбинации параметров начинается с ключевого слова . Экземпляры комбинаций параметров в DTD начинаются со знака "%", затем идет имя комбинации и заканчивается необязательным символом ";".
В следующем примере определяется, в какую строку будет разворачиваться "%fontstyle;".
Строка, в которую разворачивается комбинация параметров, может содержать другие имена комбинаций параметров. Эти имена разворачиваются рекурсивно. В следующем примере "%inline;" комбинация параметров включает комбинации "%fontstyle;", "%phrase;", "%special;" и "%formctrl;".
Вы часто будете встречать в два DTD entities: "%block;" "%inline;". Они используются, если модель содержимого включает соответственно (определенные в разделе ).
Определения модели содержимого
Модель содержимого описывает, что может содержаться в экземпляре типа элемента. Определения модели содержимого могут включать:
Имена допустимых или запрещенных типов элементов (например, элемент содержит экземпляры типа элемента , а тип элемента не может включать другие элементы ).
Комбинации DTD (например, элемент включают экземпляры комбинации параметров "%inline;").
Текст документа (указываемый SGML-конструкцией "#PCDATA"). Текст может включать . Помните, что они начинаются с & и заканчиваются точкой с запятой (например, "Hergé's adventures of Tintin" содержит ссылку на комбинацию символов для отображения символа "e со знаком ударения").
Модель содержимого элемента указывается с использованием следующего синтаксиса:
( ... )
Разделяет группы. A | B
Происходит A или B, но не оба. A , B
Происходят A и B в указанном порядке. A & B
Происходят A и B в любом порядке. A?
A происходит ноль или один раз. A*
A происходит ноль или более раз. A+
A происходит один или несколько раз.
Вот некоторые примеры HTML DTD:
Элемент должен содержать один или несколько элементов .
Элемент должен содержать один или несколько элементов или в любом порядке.
Элемент может содержать только текст и такие entities как & -- это определяется типом данных SGML #PCDATA.
Некоторые типы элементов HTML используют дополнительную функцию SGML для исключения элементов из модели содержимого. Исключенным элементам предшествует символ переноса. Явные исключения имеют приоритет по отношению к допустимым элементам.
В этом примере -(A) означает, что элемент не может находиться в другом элементе (то есть ссылки не могут быть вложенными).
Помните, что тип элемента является частью DTD комбинации параметров "%inline;", но явно исключается выражением -(A).
Точно так же следующее объявление типа элемента запрещает вложенные формы:
Относительные URI
Относительный URI не содержит информации о схеме наименования. Путь в нем указывает на ресурс на машине, на которой находится текущий документ. Относительные URI могут содержать компоненты относительного пути (например, ".." означает один уровень выше в иерархии) и .
Относительные URI с помощью базового URI. В качестве примера приведения относительного URI предположим, что у нас имеется базовый URI "http://www.acme.com/support/intro.html". Относительный URI в следующей ссылке:
Suppliers
будет преобразован в полный URI "http://www.acme.com/support/suppliers.html", а относительный URI в следующем фрагменте
будет преобразован в полный URI "http://www.acme.com/icons/logo.gif".
В HTML URI используются для:
ссылки на другие документы или ресурсы (см. элементы и ).
ссылки на внешние таблицы стилей или скрипты (см. элементы и ).
включения в страницу изображений, объектов или апплетов (см. элементы , , и ).
создания изображений-карт (см. элементы и ).
отправки форм (см. ).
создания документов с использованием кадров (см. элементы и ).
ссылок на внешние источники (см. элементы , , и ).
ссылок на соглашения о метаданных, описывающих документ (см. элемент ).
Подробнее об URI см. в разделе о типах URI.
Печать
Иногда авторы хотят упростить для пользователей печать текущего документа. Если документ является частью другого документа, отношения между ними можно описать с помощью элемента HTML или языка описания ресурсов (Resource Description Language - RDF) W3C (см. [RDF]).
Помощь агентам пользователей в последовательном создании изображений
При тщательной разработке таблиц и использовании новых возможностей HTML 4.0 авторы могут ускорить отображение документов агентами пользователей. Авторы могут прочесть здесь о том, как создавать таблицы для последовательного представления (см. элемент ). Разработчики могут получить информацию об алгоритмах последовательного представления в в приложении.
Разделение структуры и представления
HTML происходит из SGML, который всегда был языком определения структурной разметки. По мере развития HTML все большее количество его элементов и атрибутов для представления заменяется другими механизмами, в частности, таблицами стилей. Опыт показывает, что отделение структуры документа от аспектов его представления снижает стоимость обслуживания широкого диапазона платформ, носителей и т.д. и упрощает изменение документов.
С помощью скриптов авторы могут
С помощью скриптов авторы могут создавать динамичные Web-страницы (например, "интеллектуальные формы", изменяющиеся по мере заполнения их пользователем) и использовать HTML как средство построения сетевых приложений.
Механизмы, обеспечивающие включение скриптов в документы HTML, не зависят от языка скриптов.
Составные документы
В HTML теперь имеется стандартный механизм для внедрения объектов и приложений в документы HTML. Элемент (а также более специфичные элементы, его преемники, и ) обеспечивает механизм включения в документ изображений, видеофайлов, звуковых файлов, математических выражений, специализированных приложений и других объектов. Он также позволяет авторам указывать иерархию или альтернативный способ создания изображения для агентов пользователей, не поддерживающих указанный способ создания изображения.
рекомендуется ознакомиться со следующими
Авторам и разработчикам для работы с HTML 4. 0 рекомендуется ознакомиться со следующими общими принципами.
Ссылки на символы
Ссылки на символы - это числовые или символьные имена символов, которые могут быть включены в документ HTML. Они удобны для обращения к редко используемым символам или к символам, которые трудно или невозможно вводить в средствах разработки документов. Вы увидите ссылки на символы в этом документе; они начинаются со знака "&" и заканчиваются точкой с запятой (;). Вот некоторые примеры:
"<" представляет знак <. ">" представляет знак >. """ представляет знак ". "å" (десятичное число) представляет букву "a" с кружком сверху. "И" (десятичное число) представляет кириллическую букву "I". "水" (шестнадцатеричное число) представляет китайский знак воды.
подробно обсуждаются дальше в этом разделе под заголовком набор символов документа HTML. В спецификации также содержится , которые могут использоваться в документах в формате HTML 4.0.
Таблицы стилей
Таблицы стилей упрощают разметку HTML и существенно снижают участие языка HTML в представлении документа. Они предоставляют как авторам, так и пользователям возможность управлять представлением документов - шрифтами, выравниванием, цветами и т.д.
Информацию о стиле можно указать для отдельных элементов или групп элементов, в документе HTML или во внешних таблицах стилей.
Механизмы связи таблиц стилей с документами не зависят от языка таблиц стилей.
До появления таблиц стилей возможности управления созданием изображения у авторов были ограничены. В HTML 3.2 был включен ряд атрибутов и элементов для управления выравниванием, размером шрифта и цветом текста. Авторы также использовали для компоновки страниц таблицы и изображения. Поскольку на обновление браузеров у пользователей уйдет довольно долгое время, эти средства еще будут использоваться в течение какого-то времени. Однако поскольку таблицы стилей обеспечивают более мощные механизмы представления, World Wide Web Consortium существенно сократит число элементов и атрибутов представления в HTML. В этой спецификации элементы и атрибуты, которые могут быть впоследствии исключены, помечены как "". Они сопровождаются примерами полдостижения того же эффекта с помощью других элементов или таблиц стилей.
Таблицы
Новая модель таблиц в HTML основана на [RFC1942]. Теперь авторы имеют большую власть над структурой и компоновкой таблицы (например, группы столбцов). Возможность дизайнеров рекомендовать ширину столбцов позволяет агентам пользователей отображать данные таблицы постепенно (по мере получения) и не ждать всю таблицу до создания изображения.
Примечание. Во время написания этого документа некоторые средства разработки документов в формате HTML широко использовали для форматирования страниц таблицы, что вызывало проблемы совместимости.
Универсальность доступа к Web
Чтобы сделать свой Web-сервер доступным для всех пользователей, особенно для пользователей с физическими недостатками, авторы должны предполагать, как их документы могут отображаться на различных платформах: речевых браузерах, программах чтения азбуки Бройля и т.д. Мы не рекомендуем авторам ограничивать творческий процесс, но рекомендуем предусматривать альтернативные методы подачи информации. HTML предлагает ряд таких механизмов (например, атрибут , атрибут и т.д.)
Авторам также следует иметь в виду, что к их документам могут обращаться пользователи с другой конфигурацией компьютеров. Для корректной интерпретации документов авторам следует включать в свои документы информацию о языке и направлении письма в тексте, о кодировке документа и прочую подобную информацию.
Введение в SGML
SGML - это система определения языков разметки. Авторы размечают свои документы, представляя информацию о структуре, представлении и семантике в одном документе. HTML является одним из примеров языка разметки. Вот пример документа на языке HTML:
Мой первый документ на языке HTML Всем привет!
Документ HTML состоит из раздела заголовка (здесь - между тэгами
и ) и тела (здесь - между заголовками и ). Заголовок документа отображается в заголовке (вместе с другой информацией о документе), а содержимое документа находится в теле. В этом примере тело документа состоит только из одного абзаца, помеченного .
Каждый язык разметки, определенный в SGML, называется приложением SGML. Приложение SGML характеризуется:
. SGML Объявление указывает, какие символы и разделители могут отображаться в приложении.
. DTD определяет синтаксис конструкций разметки. DTD может включать дополнительные определения, например, .
Спецификация, описывающая семантику, используемую в разметке. Эта спецификация также налагает синтаксические ограничения, которые невозможно выразить при помощи DTD.
Экземпляры документа содержат данные (содержимое) и разметку. Каждый экземпляр содержит ссылку на DTD, которое должно использоваться для интерпретации.
Спецификация HTML 4.0 включает , три определения типа документов (описание их см. в разделе ) и список .
Введение в URI
Каждый ресурс в Web - документ HTML, изображение, видеоклип, программа и т.д. - имеет адрес, который может быть закодирован с помощью универсального идентификатора ресурсов (Universal Resource Identifier), или URI.
URI обычно состоят из трех частей:
Схема наименования механизма, используемого для доступа к ресурсу. Имя машины, на которой располагается ресурс. Имя собственно ресурса, зачданное в виде пути.
Рассмотрите URI этой спецификации HTML на сервере W3C:
http://www.w3.org/TR/PR-html4/cover.html
Этот URI может читаться следующим образом: этот документ можно получить по протоколу HTTP (см. [RFC2068]), он располагается на машине www.w3.org, путь к этому документу - "/TR/PR-html4/cover.html". Кроме того, в документах в формате HTML Вы можете увидеть схемы "mailto" для электронной почты и "ftp" для протокола FTP.
Вот еще один пример URI. Он относится к почтовому ящику пользователя:
...текст...
Комментарии отправляйте Джо Кулу .
Примечание.
Большинство читателей уже знакомо с термином "URL", но не знает термина "URI". URL образуют подмножество более общей схемы наименования URI.
О спецификации HTML 4.0
A.1.1 Новые элементы
В HTML 4.0 введены следующие новые элементы: , , , , , , , , , , , , , , , , , , , , ,
и .
A.1.2 Нежелательные элементы
Следующие элементы являются : , , , , , , , , и .
A.1.3 Устаревшие элементы
Следующие элементы являются устаревшими: LISTING, PLAINTEXT, and XMP. Вместо них авторам следует использовать элемент .
A.10 Различия в таблицах стилей
HTML 4.0 поддерживает более обширный набор , так что авторы могут писать таблицы стилей в зависимости от устройств.
A.11 Различия во фреймах
HTML 4.0 поддерживает документы с фреймами и встроенные фреймы.
A.12 Различия в скриптах
Многие элементы теперь имеют атрибуты для событий, которые могут объединяться со скриптами; при наступлении события выполняется скрипт (например, при загрузке документа, при щелчке мыши и т.д.).
A.13 Различия в интернационализации
В HTML 4.0 объединяются рекомендации [RFC2070] по интернационализации HTML.
Однако эта спецификация и [RFC2070]
отличаются следующим образом:
Атрибут теперь определяется для элемента , а не для и . В спецификации HTML 4.0 даются дополнительные пояснения относительно . Использование элемента для определения элементов и не сохраняет способности транскодирования документов to, как описано в разделе 2.1 [RFC2070].
A.2 Различия в атрибутах
Почти все атрибуты, определяющие представление документа HTML (цвета, выравнивание, шрифты, графика и т.д.) являются , взамен рекомендуется исопльзовать таблицы стилей. В в приложении указано, какие атрибут являются .
Атрибуты и позволяют авторам назначать элементам для таблиц стилей, якорей, скриптов, объявления объектов, общей обработки документа и т.д.
A.3 Различия в доступности
В HTML 4.0 имеется множество изменений касательно , в том числе:
Атрибут теперь можно устанавливать практически для каждого элемента. Авторы могут указыват длинные описания таблиц, изображений и фреймов (см. атрибут longdesc).
A.4 Различия в метаданных
Теперь авторы могут определять с описаниями о метаданных, заданных в элементах или .
A.5 Различия в тексте
Новые функции позволяют авторам определять направление и язык текста. Элементы и позволяют размечать изменения в документах. Элементы и позволяют размечать в документах сокращения и акронимы.
A.6 Различия в ссылках
Атрибут позволяет сделать любой элемент целевым якорем ссылки.
A.7 Различия в таблицах
Модель таблиц HTML 4.0 происходит из работы над HTML+ и начлаьного черновика . Прошлая по просьбам провайдеров информации модель расширена следующим образом:
Авторы могут определять таблицы, которые будут отображаться последовательно по мере получения данных агентом пользователя.
Авторы могут определять таблицы, более доступные пользвоателям с невизуальными агентами.
Авторы могут определять таблицы с фиксированными заголовками и сносками. Агенты пользователей могут использовать это преимущество при прокрутке больших таблиц или при представлении на устройствах со страничной организацией.
Модель таблиц HTML 4.0 также обеспечивает необязательные настройки по умолчанию в зависимости от столбцов для выравнивания, большую гибкость при определении границ и обрамления таблицы и возможность выравнивания по определенным символам. Однако ожидается, что задачу представления таблиц в ближайшем будущем возьмут на себя .
Кроме того, основной целью было обеспечение совместимости с широко используемой компанией Netscape реализацией таблиц. Другой целью было упрощение импортирования таблиц в соответствии с моделью SGML CALS. В последнем черновике атрибут совместим с последними версиями наиболее популярныз браузеров. Внесены некоторые разъяснения в роль атрибута и рекомендуемое поведение в случае, если используются смешанные абсолютные и относительные ширины столбцов.
Введен новый элемент, , позволяющий группировать наборы столбцов с различными свойствами ширины и выравнивания, определяемыми одним или несколькими элементами . По сравнению с предыдущими черновиками, разъяснена семантика элемента , а rules="basic" заменено rules="groups".
Атрибут используется как средство расширения свойств, связанных с группами ячеек. Например, стиль линии: точечная, двойная, тонкая/толстая и т.д.; цвет/заливка для внутреннего содержимого; поля ячеек и информация о шрифтах. Это является темой спецификации таблиц стилей.
Атрибуты и изменены во избежание SGML name clashes друг с другом и во избежание clashes с атрибутами и . Мотивом для этих изменений также послужило желание избежать проблем в будущем, если эта спецификация будет расширена и будет допускать атрибуты и в других элементах таблиц.
A.8 Различия в изображениях, объектах и изображениях-картах
Элемент используется для общего включения объектов. Элементы и позволяют авторам создавать внедренные документы. Атирбут обязателен для элементов и . Механизм создания теперь позволяет авторам создавать более доступные изображения-карты. Модель содержимого элемента по этой причине изменилась.
A.9 Различия в формах
В этой спецификации вводится несколько новых атрибутов и элементов, относящихся к формм:
Атрибут позволяет авторам определить прямой доступ с клавиатуры к управляющим элементам формы.
Атрибут позволяет авторам отключить управляющие элементы формы.
Атрибут позволяет авторам звпретить изменение управляющих элементов формы.
Элемент связывает метку с определенным управляющим элементом формы.
Элемент группирует связанные поля вместе и, вместе с элементом , может использоваться для присвоения имени группе. Оба эти новых элемента обеспечивают лучшее представление и интерактивность. Речевые браузеры могут лучше описывать формы, а графические браузеры могут сделать действующими метки.
Новый набор атрибутов вместе со позволяет провайдерам проверять ввод данных пользователем.
Элементы и , у которых для атрибута установлено значение "button", могут использоваться вместе со href="../interact/scripts.html">скриптами для создания более разнообразных форм.
Элемент позволяет авторам группировать пункты меню в элементе , что особенно важно для доступности форм.
дополнительные изменения в области .
Алгоритм автоматической компоновки
Если атрибут COLS а начальном теге таблицы отсутствует, агент пользователя должен использовать следующий алгоритм автоматической компоновки. В нем используется два прохода данных таблицы и линейное масштабирование размера таблицы.
На первом проходе перенос строк отключен, а агент пользователя контролирует минимальную и максимальную ширину каждой ячейки. Максимальная ширина определяется самой широкой строкой. Поскольку разбивка строк отключена, абзацы обрабатываются ка кдлинные строки, если только они не разбиты с помощью элементов . Минимальная ширина определяется самым широким элементом текста (словом, изображением и т.д.) с учетом начальных отсутпов, маркеров и т.д. Другими словами, необходимо определить минимальную ширину, которая понадобится ячейке в отдльеном окне без переполнения. Разрешение агентам пользователей разбивать слова уменьшит необходимость в горизонтальной прокрутке и обрезание содержимого ячейки.
Этот процесс также применяется к вложенным в ячейки таблицам. Минимальная и максимальная ширина ячеек во вложенных таблицах используются для определения минимальной и максимальной ширины этих таблиц и, следовательно, для внешней таблицы. Алгоритм линейный с совокупным содержимым ячейки, и, широко говоря, не зависит от уровня вложенности.
Для выравнивания символов содержимого ячейки этот алгоритм хранит три значения минимума/максимума для каждой ячейки: Left of align char, right of align char и unaligned. Минимальная ширина столбца: max(min_left + min_right, min_non-aligned).
Минимальная и максимальная ширина ячейки используются для определения соответствующей минимальной и максимальной ширины столбцов. В свою очередь, они используются для нахождения минимальной и максимальной ширины таблицы. Обратите внимание, что ячейки могут содержать вложенные таблицы, но это не усложняет код. Следующим шагом являетс яназначение ширины столбцов в соответствии со свободным пространством (т.е. пространством между левым и правым полями).
Для ячеек, занимающих несколько столбцов, простой подход состоит в распределении минимальной/максимальной ширины равномерно меду всеми столбцами. Чуть более сложный подход - использовать минимальную/максимальную ширину ячеек, не занимающих несколько строк или столбцов, для взвешивания того, как распределяются ширины ячеек, занимающих несколько строк или столбцов. По результатам экспериментов можно сказать, что наилучшие результаты для широкого спектра таблиц дает сочетание этих двух подходов.
Граничы таблицы и поля между ячейками должны включаться в назначенную ширину столбцов. Имеется три случая:
Минимаьлная ширина таблицы равна или превышает доступное пространство. В данном случае назначьте минимальную ширину и дайте пользователям возможность горизонтальной прокрутки. Для преобразования в азбуку Бройля нужно будет заменить ячейки ссылками на полное содержимое. По соглашению это производится перед таблицей.
Максимальная ширина таблицы входит в доступное пространство. В данном случае установите максимальную ширину столбцов.
Максимальная ширина таблицы превышает доступное пространство, но минимальная ширина таблица его не превышает. В данном случае найдите разницу между доступным пространством и минимальной шириной таблицы, назовет ее W . Назовем D разницу между максимальной и минимальной шириной таблицы.
Для каждого столбца сделайте d равным разнице между максимальной и минимальнйо шириной этого столбца. Затем установите ширину столбца равной минимальной ширине плюс d раз по W свыше D . Это позволит сделать столбцы с большей разницей между минимальной и максимальной шириной шире колонок с мнеьшей разницей.
Затем этот шаг повторяется для вложенных таблиц с использованием минимальной и максимальной ширины, полученных для всех таких таблиц в первом проходе. В данном случае ширина ячейки родительской таблицы играет роль размера текущего кона в приведенном выше описании. Этот процесс повторяется рекурсивно для всех вложенных таблиц. Самая верхняя таблицы затем представляется с исопльзованием назначенных ширин. Вложенные таблицы последовательно представляются как часть содержимого ячейки родительской таблицы.
Если ширина таблицы указана с использованием атрибута , агент пользователя пытается установить соответсвующую ширину столбцов. Атрибут не является ограничением, если результаты в столбцах имеют ширину меньше минимальной (т.е. неделимые).
Если относительная ширина определяется с помощью элемента , алгоритм изменяется, и ширина столбцов увеличивается по сравнению с минимальной для соответствия ограничениеям относительной ширины. Элементы должны учитываться только как подсказки, поэтому ширина столбцов не должна устанавливаться меньше минимальной. Аналогично, ширина столбцов не должна быть такой, чтобы таблица растягивалась за пределы окна. Если элемент задает относительную ширину, равную нулю, столбец всегда должен иметь минимальную ширину.
При использовании двухпроходного алгоритма компоновки положение выравнивания по умолчанию в отсутствие явного или унаследованного атрибута может определяться путем выбора позиции, которая была бы центром строки, для которой ширина до и после выравнивающего символа являлись бы максимальными значениями для любой из строк в столбце, для которого align="этот символ". Для последовательной компоновки таблиц по умолчанию используется charoff="50%". Если несколько ячеек в разных строках одного столбца используют выравнивание, такие ячейки должны выстраиваться по умолчанию, независимо от того, какой символ используется для выравнивания. Правила обработки объектов, слишком больших для столбца, применяются, если явное или наследуемое выравнивание приводит к ситуации, когда данные превышают назначенную ширину столбца.
Выбор имен атрибутов. Предпочтительным является выбор значений атрибута , соответствующих атрибуту и значениям, используемым для выравнивания. Например: none, top, bottom, topbot, left, right, leftright, all. К сожалению, в SGML необходимо, чтобы нумерованные значения атрибутов были уникальными для каждого элемента, независимо от имени атрибута. Это сразу же вызывает проблемы со значениями "none", "left", "right" и "all". Значения атрибута выбраны так, чтобы избежать конфликтов имен с атрибутами , и valign-COLGROUP. Это обеспечивает будущую гарантию, поскольку ожидается, что атрибуты и будут добавлены в другие элементы таблицы в будущих версиях данной спецификации. Альтернативой является способ сделать атрибут CDATA. Решением Рабочей группы HTML W3C явилось то, что преимущества возможности использования средств проверки корректности SGML для првоерки атрибутов на базе нумерованных значений превосходит необходимость соответствия имен.
Алгоритм фиксированной компоновки
В этом алгоритме считается, что число столбцов известно. Ширина столбцов по умолчанию должна быть одинаковая. Авторы могут переопределять это путем указания относительной или абсолютной ширины столбцов с помощью элементов или . Ширина таблицы по умолчанию - все пространство между левым и правым полями, но ее можно переобпределить с помощью атрибута элемента или определить из абсолютной ширины столбцов. При использовании как абсолютных, так и относительных ширин столбцов, первым шагом является распределение пространства под столбцы с фиксированной шириной. После этого оставшееся пространство делится для столбцов с относительной шириной.
Одного только синтакисиса таблицы недостаточно для гарантии соответствия значений атрибутов. Например, число столбцов, определяемое атрибутом cols, может не совпадать с числом столбцов, определяемым элементами . В свою очередь, это может не соответствовать числу столбцов, определяемому из ячеек таблицы. Затем проблемы возникают, если столбцы чересчур узкие, и содержимое не входит в ячейку. Ширина таблицы, указанная в элементе element или , может привести к переполнению ячейки. Агентам пользователей рекомендуется корректно выходить и таких ситуаций, например, путем и пересортировки и разбивки слов, если места переноса неизвестны.
В случае, если переполнение ячейки вызывает неделимый элемент, агент пользователя может отрегулировать ширины столбцов и по-новому представить таблицу. В худшем случае, если настройка ширины стоолбца и прокрутка невозможны, можно обрезать содержимое. В любом случае, если содержимое ячейки образается или разбивается, об этом соответсвующим образом должно быть сообщено пользователю.
B.1 Замечания о недопустимых документах
В данной спецификации не определяется, как соответствующие агенты пользователей должна обрабатывать общие ошибочные состояния, включая поведение агентов пользователей в случае, когда они встречают элементы, атрибуты, значения атрибутов или объекты, не указанные в данном документе.
Однако с целью содействия экспериментам и совместимости между реализациями различных версий HTML рекомендуется следующее поведение:
Если агент пользователя встречает неизвестный элемент, он должен попытаться представить его содержимое. Если агент пользователя встречает неизвестный атрибут, он должен проигнорировать всю спецификацию атрибута (т.е. атрибут и его значение). Если агент пользователя стречает неизвестное значение атрибута, он должен использовать значение по умолчанию. Если агент пользователя встречает необъявленный объект, этот объект должен обрабатываться как символьные данные.
кроме того, агентам пользователей рекомендуется уведомлять пользователей о таких ошибках.
Поскольку агенты пользователей могут по-разному обрабатывать ошибочные состояния, авторы и пользователи не должны полагаться на определенное поведение в случае возникновения ошибки.
В спецификации HTML 2.0 ([RFC1866]) замечено, что многие агенты пользователей HTML 2.0 предполагают, что документ, которые не начинается с объявления типа документа, относится к спецификации HTML 2.0. Как показывает опыт, это некорректное предположение, данная спецификация не рекомендует такое поведение.
Из соображений совместимости авторы не должны "дополнять" HTML имеющимися механизмами SGML (например, расширяя DTD, добавляя новый набор определений комбинаций и т.д.).
B.10.1 Вопросы защиты для форм
Агент пользователя не должен отправлять файлы, отправку которых пользователь не запросил явно. Таким образом, агенты пользователей HTML должны подтверждать все имена файлов, используемые по умочланию, которые могут быть указаны в атрибуте элемента . В скриытых управляющих элементах имена файлов указываться не должны.
В данной спецификации не содержится механизма шифрования данных; оно должно проводиться любыми другими механизмами защищенной передачи данных.
После загрузки файла обрабатывающий агент должен соответствующим образом обработать и сохранить файл.
B.10 Замечания о защите
Якоря, внедренные изображения и все прочие элементы, содержащие в качестве параметров, могут привести к разыменовыванию URI в ответ на ввод пользователя. В данном случае следует рассмотреть вопросы, описанные в [RFC1738], раздел 6.
Широко используемые методы отправки запросов формы -- HTTP и SMTP - обеспечивают невысокую степень конфиденциальности. Провайдеры информации, запрашивающие через формы важную информацию - особенно с помощью элементов , ="password" - должны предупреждать своих пользователей о невыосокй степени защиты.
B.2.1 Символы, не входящие в набор ASCII, в значениях атрибутов URI
Хотя URI и не включают символы, не входящие в набор ASCII, (см. [URI], раздел 2.1) авторы иногда указывают их в значениях атрибутоах, в которых должны указываться URI (например, в атрибуты, определенные как в ). Например, следующее значение атрибута недопустимо :
...
Для обработки символов, не входящих в набор ASCII, в таких случаях агентам пользователей рекомендуется:
Представлять каждый символ UTF-8 (см. [RFC2044]) как один или несколько байт. Выделять эти байты с помощью механизма выделения URI (т.е. путем преобразования каждого байта в %HH, где HH - шестнадцатеричная запись значения байта).
Эта процедура приводит к созданию синтаксически допустимого URI (в соответствии с [RFC1738], раздел 2.2 или [RFC2141], раздел 2), не зависящему от кодировки символов, с использованием которой может быть закодирован документ HTML, в котором указан этот URI.
Примечание. Более старые агенты пользователей обрабатывают URI в HTML тривиальным способом, исопльзуя байты кодировки символов, в которой получен документ. Некоторые более старые документы HTML используют эту практику и при транскодировании поверждаются. Агенты пользователей, которым необходимо обрабатывать такие документа, при получении URI, содержащего не входящие в допустимый набор символы, должны сначала использовать приеобразование на базе UTF-8. Только если резултирующий URI не определяется, они должны пытатья построить URI на базе байтов , в которой получен документ.
Примечание. Такое жп преобразование на базе UTF-8 должно применяться и к значениям атрибута элемента .
B.2.2 Амперсанды в значениях атрибутов URI
URI, построенный при , может использоваться как ссылка типа якоря (например, атрибут для элемента ). К сожалению, использование символа "&" для разделения полей формы влияет на его использование в значениях атрибутов SGML для разделения . Например, чтобы использовать URI "http://host/?x=1&y=2" как ссылку, его необходимо записать или .
Мы рекомендуем разработчикам серверов HTTP, и особенно разработчикам CGI, обеспечивать поддержку использования ";" вместо "&", чтобы решить для атворов проблему выделения символов "&" в такой манере.
B.3.1 Разрывы строк
В SGML (см. [ISO8879], раздел 7.6.1) указано, что разрыв строки, непосредственно следующий за начальным тегом, должен игнорироваться, как и разрыв строки непосредственно перед конечным тегом. Это применяется ко всем элементам HTML без исключения.
Следующие два примера кода HTML должны представляться одинаково:
Паша смотрит телевизор.
Паша смотрит телевизор.
Также одинаково должны представляться следующие два примера:
Мой любимый сайт
Мой любимый сайт
B.3.2 Указание данных не в формате HTML
Данные и стиля могут присутствовать как содержимео элемента или значение атрибута. В следующих разделах описано разграничение между разметкой HTML и другими данными.
Примечание. В DTD данные скрипта и стиля определяются как CDATA и для содержимого элемента, и для значений атрибутов. Парвила SGML не допускают в содержимом элементов CDATA, но допускают их в значениях атрибутов CDATA. Авторам следует обращать особенное внимание при вырезании и вставке данных скриптов и стилей из содержимого элемента в значения атрибутов.
Такая ассимметрия, кроме того, означает, что при транскодировании из более обширной кодировки символов в менее обширную транскодер не может просто заменить непреобразуемые символы в данных скрипта или стиля на соответствующие числовые ссылки на символы; он должен провести синтаксический анализ документа HTML и иметь инфомрацию о синтакисисе каждого языка скриптов и стилей для корректной обработки данных.
B.3.3 Возможности SGML с ограниченной поддержкой
Системы SGML, соответствующие [ISO8879], должны распознавать ряд возможностей, не поддерживаемых всеми агентами пользователей HTML. Авторам рекомендуется избегать исопльзования этих функций.
B.3.4 Логические атрибуты
Авторам следует знать, что многие агенты пользователей распознают только минимизированную форму логических атрибутов, но не полную.
Например, авторам можно указать:
вместо
B.3.5 Отмеченные разделы
Отмеченные выбранные варианты играют роль, подобную конструкции #ifdef, распознаваемой препроцессором языка C.
]]>
]]>
В SGML также определяется использование размеченных разделов для содержимого CDATA, в котором "<" обрабатывается не как начало тега, например,
пример разметки , не вызывающий <проблем> при записи < и т.д. ]]>
Сигнальным символом того, что агент пользвоателя не распознает размеченный раздел, является представление "]]>", когда агент пользователя по ошибке использует первый символ ">" как конец тега, начинающегося с "
B.3.6 Инструкции по обработке
Инструкции по обработке - это механизм захвата платформозависимых идиот\м. Инструкция начинается с И заканчивается символом >
Например:
> ... /experiment>
Авторам следует знать, что многие агенты пользвоателей представляют инструкции по обработке как часть текста документа.
B.3.7 Сокращенная разметка
Некоторые конструкции SGML SHORTTAG позволяют сэкономить время на набор, но не добавляют выразительных способностей в приложение SGML. Хотя такие конструкции технически не вносят двусмысленности, они снижают надежность документов, особенно если язык расширен и включает новые элементы. Таким образом, в то время как конструкции SHORTTAG SGML, относящиеся к атрибутам, широко используются и реализуются, те же конструкции, относящиеся к элементам, не распространены. Использующие их докменты являются соответствующими документами SGML, но вряд ли будут работать со многими существующими средствами HTML.
конструкции SHORTTAG:
теги NET: <имя/.../
Закрытый начальный тег: <имя1<имя2>
Пустой начальный тег: <>
Пустой конечный тег: >
B.4 Замечания о содейтсвии поисковым машинам в индексировании веб-сайта
В этом разделе приводятся некоторые простые предложения, которые сделают документы более доступными для поисковых машин.
Определите язык документа
В глобальном контексте Web важно знать, на каком языке создается страница. Это обсуждается в разделе о .
Укажите языковые варианты документа
Если Вы подготовили переводы документа на другие языки, используйте элемент для ссылки на них. Это позволит индексным машинам предлагать пользователям результаты поиска на предпочитаемом пользователем языке, независимо от построения запроса. Например, следующие ссылки предлагают поисковой машине французскую и немецкую версии:
Задавайте ключевые слова и описания
Некоторые индексирующие машины проводят поиск элементов , в которых определяется разделенный запятыми списо ключевых слов/фраз или дается краткое описание. Поисковые машины могут представлять эти ключевые слова как результат поиска. Значение атрибута , найденное атрибутом поиска, не определяется в данной специфиации. Рассмотрим следующие примеры,
Укажите начало набора
Наборы документов или представлений систем обработки текстов часто переводятся в наборы документов HTML. Для поисковых машин полезно указать ссылку на начало набора в дополнение к попаданию страницы в результаты поиска. Вы можете помочь поисковым машинам с помощью элемента с атрибутом rel="begin" и , как показано в следующем примере:
Предоставьте роботам инструкции по индексированию
Люди могут удивиться, узнав, что их сайт проиндексирован роботом, и не получил доступа к значительной части сайта. Многие Web-роботы предлагают администраторам Web-сайтов возможности ограничения действий роботов. Это достигается с помощью двух механизмов: файла "robots.txt" и элемента the в документах HTML, описанного далее.
B.5.1 Логическое обоснование дизайна
Модель таблиц HTML явилась результатом изучения существующих моделей таблиц SGML, обработки таблиц в широко распространенных пакетах обработки текстов и широкого диапазона техник компоновки таблиц в журналах, книгах и других печатных документах. Эта модель выбрана так, чтобы позволить проще выражать таблицы с возможной дополнительной сложностью. Это позволяет производить разметку таблиц HTML с помощью текстовых редакторов и сокращает расходы на изучение и подготовку к работе. Это свойство очень важно для HTML.
Все чаще и чаще люди создают таблицы путем преобразования из документов других форматов или создавая их непосредственно в редакторах WYSIWYG. Очень важно, что модель таблиц HTML может использоваться в этих средствах разработки. Это влияет на представление ячеек, занимающих несколько строк или столбцов, и на выравнивание и другие свойства представления, связанные с группами ячеек.
B.5.2 Алгоритмы рекомендуемой компоновки
Если в атрибуте cols элемента определяется число столбцов, таблица может представляться с использованием фиксирвоанного расположения, в противном случае должен использоваться описанный ниже алгоритм автоматической компоновки.
Если атрибут width не указан, визуальные агенты пользователей должны использовать при форматировании значение по умочланию - 100%.
Агентам пользователей рекомендуется расширять таблицы за пределы значения, указанного в атрибуте width, в случаях, когда содержимое ячейки не входит в нее. Агенты пользователей, изменяющие указанную ширину, должны делать это не без причины. Агенты пользователей могут разбивать слова на строки во избежание использования горизонтальной прокрутки.
Для компоновки агенты пользователей должны полагать, что заголовки таблиц (задавемые элементом ) подобны ячейкам. Каждый заголовок является ячейкой, занимающей все столбцы таблицы, если он располагается внизу или вверху таблицы, и захватывающей все строки таблицы, если он располагается слева или справа.
B.6.1 Последовательное отображение
Последовательное отображение документов, полученных по сети, представляет некоторые проблемы с формами. Агенты пользователей должны не позволять передачу форм до получения всех элементов формы.
Последовательно отображение документов приводит к некоторым проблемам относительно перемещения по клавише Tab. Эвристика перехода фокуса на с самым низким значением в документе на первый взгляд кажетя весьма логичной. Однако это подразумевает необходимость ожидания получения текста всего документа, поскольку до этого с самым низким значением может измениться. Если пользоваетль нажимает клвишу tab до этого, агентам пользоателя имеет смысл переместить фокус на низший доступный .
Если формы связаны с клиентскими скриптами, могут возникнуть дополнительные проблемы. Например, обработчик скрипта для данного поля может обращаться к полю, которого еще не существует.
B.6.2 Будущие проекты
В данной спецификации определяется набор элементов и атрибутов, достаточно мощный для представления основных форм. Однако возможности улучшения еще имеются. Например, в будущем можно попытаться решить следующие проблемы:
Диапазон типов полей форм слишком ограничен по сравнению с современными пользовательскими интерфейсами. Например, не предусмотрен элемент для ввода таблиц, бегунки или многостраницные варианты.
Серверы не могут обновлять поля в отправленных формах и вместо этого должны отправлять полный документ HTML, что вызывает мерцание экрана.
Кроме того, возникают проблемы с речевыми браузерами, что затрудняет работу с формами для людей с плохим зрением.
Другим возможным расширением будет добавление атрибута для элемента для использования в клиентских навигационных картах, если "=image". Элемент , соответствующий местоположению щелчка, определяет передаваемое на сервер значение. Во избежание необходимости изменения серверных скриптов он может использоваться для расширения элемента и указания значений x и y для использования в элементе .
B.7.1 Зарезервированный синтаксис для будущих макросов скриптов
В данной спецификации резервируется синтаксис для поддержки мкросов скриптов в атрибутах HTML CDATA. Это предназначено для того, чтобы сделать возможной установку атрибутов в зависимости от свойств объектов, находящихся на странице выше. Синтаксис:
attribute = "... &{ тело макроса }; ... "
B.8 Замечания о фреймах
Поскольку униальность имени целевого фрейма не гарантирована, оно подходит для описания текущей практики поиска фрейма с данным целевым именем:
Если целевое имя является зарезервированным словом, как описано в нормативном тексте, используйте его соответственно описанию. В противном случае выполните поиск на первом уровне иерархии фреймов в окне, содержащем ссылку. Используйте первый фрейм с таким именем. Если такой фрейм на шаге (2) не найден, повторите шаг 2 с каждым окном в порядке от первого до последнего. Прекратите поиск как только встретится фрейм с таким именем. Если на шаге (3) фрейм не найден, создайте новое окно и назначьте ему это целевое имя.
B.9 Замечания о доступности
Примечание. Следующий алгоритм для генерации альтернативного текста может заменяться по рекомендации Инициативной группы по доступности Web W3C (W3C Web Accessibility Initiative Group). Подробнее см. [WAIGUIDE].
Если автор не установил атрибут для элемента или , агенты пользователя должны сами задавать альтернативный текст, вычисляемый в следующем порядке:
Если указан , в качестве альтернативного текста должно использоваться значение этого атрибута.
В противном случае, если информация о заголовке дается в заголовках HTTP при загрузке включенного объекта, в качестве альтернативного текста должна использоваться эта информация.
В противном случае, если во включенном объекте имеются текстовые поля (например, изображения GIF имеют тектсовые поля), информация, извлеченная из текстовых полей, должна использоваться в качестве альтернативного текста. Поскольку агентам пользователей для извлечения текстовой инфомрации может понадобиться загрузка всего объекта, они могут использовать более экономичные подходы (например, обсуждение содержимого).
В противном случае, если отсутствует всякая другая информация, агент пользователя должен использовать в качестве альтернативного текста имя файла (без расширения).
Если автор не установил атрибут для элемента , агенты пользователяей должны вычислять альтернативный текст в следующем порядке:
Если указан , в качестве альтернативного текста должно использоваться его значение.
В противном случае, если указан атрибут , в качестве альтернативного текста должно использоваться его значение.
В противном случае (кнопки отправки и сброса) в качестве альтернативного текста должно использоваться значение атрибута type.
Динамическое переформатирование
Главным принципом модели таблиц HTML является то, что автор не управляет изменением размера таблицы пользователем, используемыми шрифтами и т.д. Это приводит к тому, что задавать ширину столбца в пикселах становится рискованно. Вместо этого таблицы должны поддерживать динамическое изменение размера и соответствовать текущему размеру окна и шрифтам. Авторы могут определять рекомендуемые параметры типа относительной ширины столбцов, но агенты пользователей должны проверять, достаточна ли ширина столбца для представления самого широкого элемента содержимого ячейки. Если спецификацию автора можно заменить, относительные ширины отдельных столбцов не должны слишком изменяться.
Доступность
Для людей с плохим зрением HTML предлагает упрощение использования графического интерфейса пользоваетля на базе окон. Модель таблиц HTML включает атрибуты отметки каждой ячейки для поддержки высококачественного преобразования текста в речь. Те же атрибуты могут использоваться для поддержки автоматизированного импорта и экспорта данных таблицы в базы данных и электронные таблицы.
Файл robots.txt
Когда робот просматривает Web-сайт, например, http://www.foobar.com/, сначала он проверяет файл http://www.foobar.com/robots.txt. Если этот документ обнаружен, он анализирует его содержимое и смотрет, позволено ли загрузить документ. Вы можете настроить файл robots.txt только для конкретных роботов и запретить доступ к определенным каталогам или файлам.
Вот пример файла robots.txt, запрещающего доступ ко всему сайт всем роботам
User-agent: * # применяется ко всем роботам Disallow: / # запретить индексацию всех страниц
Робот просто найдет файл "/robots.txt" URI на Вашем сайте, где сайт - это сервер 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". Если Вы не сделаете так, пользователи могут использовать вместо этого тег Robots META.
Некоторые советы: URI учитывают регистр, и строка "/robots.txt" должна всегда быть в нижнем регистре. Пустые строки запрещены.
В каждой записи должно быть ровно одно поле "User-agent". Робот должен свободно интерпретировать это поле. Рекомендуется строка без учета регистра, совпадающая с именем и не включающая информацию о версии.
Если указано значение "*", запись описывает политику доступа по умолчанию для любого робота, не соответствующего другим записям. В файле "/robots.txt" не может быть несколько таких записей.
В поле "Disallow" задается частичный URI, который посещать запрещено. Это может быть полный или частичный путь; любой URI, начинающийся с этого значения, нельзя будет загрузить. Например,
Disallow: /help запрещает доступ к /help.html и /help/index.html, в то время как Disallow: /help/ запретит доступ к /help/index.html, но разрешит доступ /help.html.
Пустое значение параметра "Disallow" означает, что все URI могут загружаться. В файле robots.txt должно быть по крайней мере одно поле "Disallow" .
Группы строк и столбцов
в данной спецификации определяется надмножество более простой модели, представленной в более ранней работе по HTML+. Считается, что таблицы формируются из необязатеьлного заголовка и последовательности строк, которая, в свою очередь, состоит из последовательности ячеек. Затем эта модель различает ячейки заголовка и данных и позволяет ячейкам занимать несколько строк или столбцов.
Следуя модели таблиц CALS (см. [CALS]), данная спецификация позволяет группировать строки таблицы в разделы заголовка, тела и нижнего заголовка. Это упрощает представление информации об отображении и может использоваться для повторения заголовков таблицы при переносе таблиц или для обеспечения постоянных заголовков при прокручиваемой панели тела таблицы. В разметке раздел нижнего заголовка помещается перед разделом тела таблицы. Такая оптимизация используется в CALS для работы с длинными таблицами. Это позволяет генерировать нижний заголовок, не дожидаясь обработки всей таблицы.
Последовательное представление
Для больших таблиц или медленных сетевых содинений очень важно последовательное представление таблиц. Агенты пользователей должны иметь возможность начинать отображение таблицы до получения всех данных. Ширина окна по умолчанию для большинства агентов пользователей составляет около 80 символов, а рисунки для большинства страниц HTML состаются с учетом этого числа. Указывая число столбцов и включая условия управления шириной таблицы и шириной различных столбцов, авторы могут дават агентам пользователей подсказки, обеспечивающие последовательное представление содержимого таблицы.
Для последовательного представления браузеру необходимо число столбцов и их ширина. Шириной таблицы по умолчанию считается текущий размер окна (width="100%"). Это можно изменить, установив атрибут элемента . По умолчанию все столбцы имеют одинаковую ширину, но можно определить ширину стольбца с помощью элементов до начала таблицы.
Остается еще проблема числа столбцов. Некоторые предлагают дождаться получения первой строки таблицы, но на это может потребоваться продолжительное время, если в ячейках содержится много информации. В целом при последовательном представлении авторм имеет смысл явно указывать число столбцов в элементе .
Авторам по-прежнему необходима возможность уведомелния агентов пользователей о том, следует ли использовать последовательное представление или определять размер таблицы автоматически для соответствия содержимому ячейки. В двухпроходном режиме автоматического определения рзмера число столбцов определяется на первом проходе. В последовательном режиме число столбцов должно устанавливаться с начала. Имеет смысл установить для атрибута cols значение, равное числу столбцов, а не использовать атрибуты "layout" (например, layout="fixed" или layout="auto").
Практики макросов скриптов в настоящее время
Тело макроса состоит из одного или нескольких выражений в языке скрипта по умолчанию (как в атрибутах для внутренних событий). Точка с запятой, следующая за правой скобкой, всегда обязательна, в противном случае символ скобки "}" считается частью тела макроса. Не нужно и говорить, что кавычки для атрибутов, содержащих макросы скриптов, обязательны.
Обработка атрибутов CDATA происходит следующим образом:
Синтаксический анализатор SGML оценивает все объекты SGML (например, ">"). Затем ядро скриптов оценивает макросы скриптов. Наконец, результирующая строка символов передается в приложение для последующей обработки.
Обработка макросов происходит при загрузке документа (или при перезагрузке), но не происходит при изменении размера документа, перерисовке и т.д.
ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
Вот несколько примеров использования JavaScript. Первый устанавливает в документе случайный цвет фона:
Вы можете установить более светлый фон в вечернее время:
В следующем примере JavaScript используется для устанвоки координат клиентской навигационной карты:
В этом примере устанавливается размер изображения в зависимости от свойств документа:
С помощью скрипта можно устанавливать URI ссылки или изображения:
widget
В последнем примере показано, как атрибуты SGML CDATA могут заключаться в кавычки с использованием двойных или одинарных кавычек. Если Вы заключаете строку атрибута в одинарные кавычки, в строку атрибута следует включить двойные. Другой подход - использвоание " в качестве двойных кавычек:
Б: Замечания о работе, реализации и разработке
Следующие замечания являются информацтивными, а не нормативными. Несмотря на использование таких слов как "необходимо" и "следует", все требования данного раздела указаны в других частях спецификации.
Роботы и элемент META
Элемент позволяет авторам документов HTML сообщать роботам о том, может ли документ быть проиндексирован или может ли он использоваться для получения дополнительных ссылок. Для этого не требуется вмешательство администратора сервера.
В следующем примере робот не будет ни индексировать сайт, ни анализировать ссылки.
В атрибуте content могут содержаться следующие слова: ALL, INDEX, NOFOLLOW, NOINDEX. Значения атрибутов name и the учитывают регистр.
Примечание.
В начале 1997 года это использовалось только несколькими роботами, но в этой области ожидается изменение с повышением интереса к управлению работой роботов.
Содержимое элемента
Если данные скрипта или стиля являются содержимым элемента ( и ), данные начинаются непосредственно за начальным тегом элемента и заканчиваются первым разделителем ETAGO (""), за которым следует буква ([a-zA-Z]); обратите внимание, что это не обязательно конечный тег элемента. Поэтому авторам следует выделять последовательности "" в содержимом. Механизмы такого выделения специфичны для каждого языка скриптов или таблиц чтилей.
ПРИМЕР НЕДОПУСТИМОГО ИСПОЛЬЗОВАНИЯ: Следующие данные скрипта некорректно содержат последовательность "" (как часть "") перед конечным тегом :
В JavaScript этот код можно представить допустимым образом, скрыв разделитель ETAGO перед начальной буквой SGML:
В Tcl этого можно достичь следующим образом:
В VBScript проблемы можно избежать с помощью функции Chr():
"Это будет работать<" & Chr(47) & "EM>"
Структура и представление
В HTML различается структурная разметка, такая как абзацы и цитаты, и средства предствления, такие как поля, шрифты, цвета и т.д. Как это различие влияет на таблицы? С точки зрения пуриста выравнивание текста в ячейках таблицы и границы между ячейками являются вопросом отображения, а не структуры. На практике, однако, их имеет смысл группировать со структурной информацией, поскольку эти свойства легко переносятся из одного приложения в другое. Модель таблиц HTML перекладывает большую часть информации о представлении на связанные таблицы стилей. Модель, представленная в данной спецификации, разработана так, чтобы использовать преимущества таких таблиц стилей, но таблицы стилей не являются обязательными.
Используемые в настоящее время издательские пакеты предоставляют очень богатые возможности по представлению таблиц, и было бы непрактично воспроизводить эти возможности в HTML без превращения HTML в сложный текстовый формат типа RTF или MIF. Однако, в данной спецификации авторам предлагается возможность выбора из ряда широко использумых классов или типов границы. Атрибут управляет внешним видом рамки вокруг таблицы, в то время как атрибут определяет выбор rulings в таблице. Более богатый уровень управления будет поддерживаться с помощью аннотаций по представлению. Атрибут может использоваться для определения информации о представлении отдельных элементов. Дальнейшая инфомрация о представлении может задаваться с помощью элемента в заголовке документа или с помощью связанных таблиц стилей.
В процессе разработки данной спецификации был изучен ряд вопросов по заданию шаблонов обрамления для таблиц. Один из вопросов относится к видам возможных выражений. Включение поддержки вычитания и сложения краев приводит к довольно сложным алгоритмам. Например, работа по обеспечению поддержки атрибутов и всеми элементами для представления таблиц привела к алгоритму определения того, отображается ли определенная часть рамки таблицы, или нет, из 24 шагов. Даже такая сложность не обеспечивает достаточного управления представлением, отвечающего всем нуждам предсатвления таблиц. Текущая спецификация умышленно придерживается простой интуитивной модели, достаточной в большинстве случаев. Для стандартизации более сложного подхода необходима дальнейшая экспериментальная работа.
Значения атрибутов
Если данные скрипта или стиля являются значением атрибута ( или атрибутам ), авторам следует выделять разделители-одинарные или двойные кавычки в значениях в соответствии с соглашениями языка скрипта или стиля. Вторам также следует выделять экземпляры "&", если этот "&" не обозначает начало ссылки на символ.
'"' должно записываться как """ или """ '&' должно записываться как "&" или "&"
Таким образом, например, можно записать:
О спецификации HTML 4.0
Указатель атрибутов
Условные обозначения: Н ежелателен, L oose DTD, F rameset DTD
ИмяЭлементыТипПо умолчаниюНежелат.DTDКомментарий
, #IMPLIED сокращение для ячейки заголовка
#IMPLIED список поддерживаемых наборов символов
#IMPLIED список типов MIME для выгрузки файлов
, , , , , , #IMPLIED клавиша доступа
#REQUIRED серверный обработчик формы
#IMPLIED Н L относится к таблицам
, , , , #IMPLIED Н L вертикальное или горизонтальное выравнивание
#IMPLIED Н L относится к набору полей
#IMPLIED Н L положение таблицы относительно окна
(left | center | right) #IMPLIED Н L
, , , , , , , (left | center | right | justify) #IMPLIED Н L выравнивание текста
, , , , , , , (left | center | right | justify | char) #IMPLIED
#IMPLIED Н L цвет выбранных ссылок
#IMPLIED Н L краткое описание
, #REQUIRED краткое описание
#IMPLIED краткое описание
#IMPLIED разделенный пробелами список архивов
#IMPLIED Н L разделенный запятыми список пробелов
, #IMPLIED группы имен связанных заголовков
#IMPLIED Н L текстура и фон документа
#IMPLIED Н L цвет фона для ячеек
#IMPLIED Н L цвет фона для строки
, #IMPLIED Н L цвет фона ячейки
#IMPLIED Н L цвет фона документа
, #IMPLIED Н L толщина границы
#IMPLIED толщина кадра вокруг таблицы
#IMPLIED интервал между граничей ячейки и текстом в ней
#IMPLIED расстояние между ячейками
, , , , , , , #IMPLIED символ выравнивания, например char=':'
, , , , , , , #IMPLIED смещение для символа выравнивания
, , #IMPLIED кодировка символов связанного ресурса
(checked) #IMPLIED для флажков и кнопок с зависимой фиксацией
, #IMPLIED URI исходного документа или сообщения
, #IMPLIED причина изменения
кроме , , , , , , , , #IMPLIED разделенный пробелами список классов
#IMPLIED идентифицирует реализацию
(left | all | right | none) none Н L управление разбиением текста
#IMPLIED Н L файл класса апплета
#IMPLIED базовый URI для classid, данных, архива
#IMPLIED Н L необязательный базовый URI для апплета
#IMPLIED тип содержимого для кода
, #IMPLIED Н L цвет текста
#IMPLIED F список длин, по умолчанию: 100% (1 столбец)
#REQUIRED
, 1 число столбцов, объединяемых в ячейке
, (compact) #IMPLIED Н L
, , (compact) #IMPLIED Н L уменьшение расстояния между элементами
#REQUIRED связанная информация
#IMPLIED разделенный запятыми список длин
#IMPLIED для использования с клиентскими изображениями-картами
#IMPLIED ссылка на данные объекта
, #IMPLIED дата и время изенения
(declare) #IMPLIED объявить, но не инициализировать флаг
(defer) #IMPLIED агент пользователя может отложить выполнение скрипта
кроме , , , , , , , , , , (ltr | rtl) #IMPLIED направление слабого/нейтрального текста
(ltr | rtl) #REQUIRED направление
, , , , , (disabled) #IMPLIED в данном контексте недоступно
"application/x-www- form-urlencoded"
, #IMPLIED Н L разделенный запятыми список названий шрифтов
#IMPLIED совпадает со значением ИД поля
#IMPLIED какие части фрейма следует генерировать
, (1 | 0) 1 F запросить границы фрейма?
, #IMPLIED список ИД ячеек заголовков
#IMPLIED L высота фрейма
, #IMPLIED переопределение высоты
#REQUIRED Н L начальная высота
, #IMPLIED Н L высота ячейки
, , #IMPLIED URI ресурса, на который указывает ссылка
#IMPLIED Н L URI, служащий базовым
, #IMPLIED код языка
, , #IMPLIED Н L горизонтальный gutter
#IMPLIED имя заголовка ответа HTTP
кроме , , , , , , #IMPLIED уникальный ИД в переделах документа
(ismap) #IMPLIED использовать серверное изображение-карту
#IMPLIED для исопльзования в иерархических меню
#REQUIRED для использования в иерархических меню
кроме , , , , , , , , , #IMPLIED код языка
#IMPLIED имя предпочитаемого языка скрипта
#IMPLIED Н L цвет ссылок
#IMPLIED ссылка на длинное описание (дополняет alt)
, #IMPLIED F ссылка на длинное поисание (дополняет title)
, #IMPLIED F высота поля в пикселах
, #IMPLIED F ширина полей в пикселах
#IMPLIED максимальное число символов в текстовом поле
#IMPLIED для использования с этими устройствами
#IMPLIED для представления на этих устройствах
(GET | POST) GET метод HTTP, используемой для передачи формы
(multiple) #IMPLIED по умолчанию используется одно выделение
, #IMPLIED
#IMPLIED Н L позволяет апплетам находить друг друга
#IMPLIED имя поля
, #IMPLIED F имя целевого фрейма
#IMPLIED конец именованной ссылки
, #IMPLIED передать как часть формы
#REQUIRED для ссылки в usemap
#REQUIRED имя свойства
#IMPLIED имя метаинформации
(nohref) #IMPLIED для этой области действие не назначено
(noresize) #IMPLIED F позволить пользователям изменять размеры фреймов?
() #IMPLIED Н L
, (nowrap) #IMPLIED Н L отключить перенос слов
#IMPLIED Н L серийный файл апплета
, , , , , , #IMPLIED фокус перешел на другой элемент
, , #IMPLIED значение элемента изменилось
кроме , , , , , , , , , , , , , , , , #IMPLIED нажата кнопка указующего устройства
кроме , , , , , , , , , , , , , , , , #IMPLIED кнопка указующего устройства нажата дважды
, , , , , , #IMPLIED фокус переведен на элемент
кроме , , , , , , , , , , , , , , , , #IMPLIED нажата клавиша на клавиатуре
кроме , , , , , , , , , , , , , , , , #IMPLIED клавиша нажата и отпущена
кроме , , , , , , , , , , , , , , , , #IMPLIED клавиша отпущена
#IMPLIED F все фреймы загружены
#IMPLIED документ загружен
кроме , , , , , , , , , , , , , , , , #IMPLIED нажата кнопка указательного устройства
кроме , , , , , , , , , , , , , , , , #IMPLIED указатель перемещен в пределах
кроме , , , , , , , , , , , , , , , , #IMPLIED указатель перемещен за пределы
кроме , , , , , , , , , , , , , , , , #IMPLIED указатель помещен на
кроме , , , , , , , , , , , , , , , , #IMPLIED кнопка указательного устройства отпущена
#IMPLIED форма сброшена
, #IMPLIED выделен некоторый текст
#IMPLIED форма отправлена
#IMPLIED F все фреймы удалены
#IMPLIED документ удален
#IMPLIED именованный словарь или метаинформация
#IMPLIED Н L текст запроса
(readonly) #IMPLIED
(readonly) #IMPLIED для текста и паролей
, #IMPLIED ссылки типа вперед
, #IMPLIED ссылки типа назад
#IMPLIED F список длин, по умолчанию: 100% (1 строка)
#REQUIRED
, 1 число строк, объединяемых ячейкой
#IMPLIED границы между строками и столбцами
#IMPLIED выбор формы содержимого
, #IMPLIED область действия ячеек заголовка
, (yes | no | auto) auto F полоса прокрутки или ее отсутствие
(selected) #IMPLIED
rect управляет интерпретацией координат
rect для использования с клиентскими изображениями-картами
#IMPLIED Н L
#IMPLIED Н L [+|-]nn, например, size="+1", size="4"
#IMPLIED зависит от типа поля
#REQUIRED Н L базовый размер шрифта для элементов FONT
#IMPLIED видимые строки
1 атрибуты COL, влияющие на N столбцов
1 число столбцов в группе, используемое по умолчанию
#IMPLIED URI внешнего скрипта
#IMPLIED для полей с изображениями
, #IMPLIED F исходный файл содержимого фрейма
#REQUIRED URI внедряемого изображения
#IMPLIED сообщение, которое отображается во время загрузки
#IMPLIED Н L начальный номер последовательности
кроме , , , , , , , , #IMPLIED связанная инфомрация о стиле
#IMPLIED назначение/структура для речевого вывода
, , , , , , #IMPLIED позиция в последовательности перехода
, , , , #IMPLIED Н L представление в этом фрейме
#IMPLIED Н L цвет текста документа
#IMPLIED рекомендуемый заголовок
кроме , , , , , , , , #IMPLIED рекомендуемый заголовок/усиление
, #IMPLIED рекомендуемый тип содержимого
#IMPLIED тип содержимого для данных
#IMPLIED тип содержимого для значения при valuetype=ref
#REQUIRED тип содержимого языка скрипта
#REQUIRED тип содержимого языка стилей
TEXT тип ввода
#IMPLIED Н L стиль элемента списка
#IMPLIED Н L стиль нумерации
#IMPLIED Н L стиль маркера
(button | submit | reset) submit кнопка формы
, , #IMPLIED использовать клиентское изображение-карту
, , , , , , , (top | middle | bottom | baseline) #IMPLIED вертикальное выравнивание в ячейках
#IMPLIED по умолчанию содержимое элемента
#IMPLIED значение свойства
#IMPLIED для флажков и кнопок с зависимой фиксацией
#IMPLIED отправляется на сервер при отправке
#IMPLIED Н L сброс номера последовательности
(DATA | REF | OBJECT) DATA как интерпретировать значение
Н L постоянная
#IMPLIED Н L цвет просмотренных ссылок
, , #IMPLIED Н L вертикальный gutter
#IMPLIED Н L
#IMPLIED L ширина фрейма
, #IMPLIED переопределение ширины
#IMPLIED ширина таблицы
#REQUIRED Н L начальная ширина
#IMPLIED задание ширины столбца
#IMPLIED ширина по умолчанию для вложенных COL
, #IMPLIED Н L ширина ячейки
#IMPLIED Н L
Указатель элементов
Условные обозначения: Н еобязательный, З апрещен, П устой, Н ежелательный, L oose DTD, F rameset DTD
ИмяНач. тегКон. тегПустНежелат.DTDОписание
якорь
сокращенная форма (например, WWW, HTTP и т.д.)
информация об авторе
Н L апплет Java
З П область клиентского изображения-карты
полужирный текст
З П базовый URI документа
З П Н L базовый размер шрифта
I18N BiDi over-ride
большой текст
цитата
Н Н тело документа
З П жесткий перевод строки
кнопка
заголовок таблицы
Н L сокращение для DIV align=center
цитата
фрагмент компьютерного кода
З П столбец таблицы
Н группа столбцов таблицы
Н описание определения
удаленный текст
определение экземпляра
Н L список каталогов
общий контейнер языка/стиля
список определений
Н определяемый термин
выделение
группа управляющих элементов формы
Н L локальное изменение шрифта
интерактивная форма
З П F вложенное окно
F разделение окна
заголовок
заголовок
заголовок
заголовок
заголовок
заголовок
Н Н заголовок документа
F П горизонтальный разделитель
Н Н корневой элемент документа
курсив
L встроенное окно
З П внедренное изображение
З П управляющий элемент формы
вставленный текст
З П Н L запрос из одной строки
текст, вводимый пользователем
текст метки поля формы
описание набора полей
Н элемент списка
З П не зависящая от устройства ссылка
клиентское изображение-карта
Н L список меню
З П общая метаинформация
F альтернативный контейнер содержимого для представления без фреймов
альтернативный контейнер содержимого для представления без скриптов
общий внедренный объект
упорядоченный список
группа опций
Н выбираемый элемент
Н абзац
З П значение именованного свойства
форматированный текст
короткая встроенная цитата
Н L перечеркнутый текст
пример вывода программы, скрипта и т.д.
выражения скрипта
выбор варианта
мелкий текст
общий контейнер языка/стиля
З L перечеркнутый текст
усиленное выделение
инфомрация о стиле
нижний индекс
верхний индекс
Н Н тело таблицы
Н ячейка данных таблицы
текстовое поле из нескольких строк
Н сноска таблицы
Н заголовок ячейки таблицы
Н заголовок таблицы
название документа
Н строка таблицы
шрифт пишущей машинки (моноширинный)
Н L подчеркнутый текст
неупорядоченный список
экземпляр переменной или аргумента программы
Указатель
application/x-www-form-urlencoded , %attrs; %block; BODY none в наборе фреймов CDATA ,
данные скрипта и стиля CERN %Character; %Charset; %Color; %ContentType; %Datetime; Dublin Core %FrameTarget; GET и передача формы HTML версия 2.0 версия 3.0 версия 3.2 версия HTML+ как приложение SGML комментарии в определение внешних данных развитие советы авторам HTTP GET и POST с формами заголовок Content-Language заголовок Content-Script-Type заголовок Content-Style-Type заголовок Content-Type заголовок Default-Style использвание для связи с внешними таблицами стилей ID IDREF IDREFS %inline; Internet Engineering Task Force (IETF) %LanguageCode; %Length; %MediaDesc; %MultiLength; multipart/form-data , NAME NUMBER %Pixels; Platform for Internet Content Selection (PICS) POST для данных формы в формате, отличном от ASCII и отправка формы %Script; SGML введение в замечания о применении каталог для HTML набор символов документа обработка переноса строки объявление объявление HTML 4.0 объявление типа документа определение типа документа (DTD) приложение проверка корректности документа функции с ограниченной поддержкой , strict DTD объявление определение text/css text/html %Text; transitional DTD объявление определение URI использование в HTML относительный разрешение относительного , регистр символы не из набора ASCII в значениях атрибутов указание базового %URI; URL отношение к URI UTF-1 UTF-16 World Wide Web (Web) аббревиатуры и сокращения абзац визуальное представление автор агент пользователя и данные скрипта и данные стиля и ошибочные состояния о, обработка данных скриптов и стилей обработка изображений-карт соответствующий альтернативные таблицы стилей альтернативный текст указание апплет способы включения атрибут значение #FIXED значение #IMPLIED значение #REQUIRED кавычки вокруг значения логический минимизированный логический объявление в DTD регистр значений с учетом регистра атрибут id роль то же пространство имен, что у атрибута name атрибут lang если применим не для направления атрибут класса роли базовый URI безопасность замечания о управляющего элемента для ввода пароля включение объекта внутренние события время формат встроенный элемент выравнивание изображений объектов плавающего текста плавающее содержимого таблиц элементов уровня блока вырезка текста таблицы граница изображения объекта таблицы фрейма группа столбцов группа строк дата вставленного и удаленного текста формат двунаправленность алгоритм Unicode и кодировка символов и таблицы стилей переопределение двунаправленный алгоритм Unicode дескриптор устройства регистр синтаксический анализ список распознаваемых длинное описание изображения отношение с текстом alt документ динамическое изменение с помощью скриптов проверка SGML способы включения , способы внедрения документ HTML документ с набором фреймов доступность альтернативное содержимое объекта альтернативный текст длинное описание изображения замечания о генерации альтернативного текста и альтернативное содержание фрейма и длинные описаиня фреймов и таблицы стилей изображений-карт , клавиши доступа функции HTML 4.0 заголовки корректно вложенные заголовок документа доступный пользователю использование для аннотации элементов заголовок Content-Language заголовок Content-Script-Type заголовок Content-Style-Type заголовок Content-Type замечания о минимизированном значение атрибута #FIXED значение атрибута #IMPLIED значение атрибута #REQUIRED идентификатор фрагмента , изображение визуальное представление выравнивание граница вокруг длинное описание не в кадре пустое пространство вокруг способы включения ширина и высота изображение-карта ,
доступность клиентское на сервере недопустимое для элемента IMG в элементе BUTTON перекрывающиеся области серверное с элементом OBJECT каскадные таблицы стилей каталог для HTML клавиша доступа клиентское изображение-карта создание кнопка кнопка отправки кнопка сброса кнопка с зависимой фиксацией кодировка символов ,
UTF-1 UTF-16 выбор для отправки формы и двунаправленность имена общие примеры определение агентами пользователей по умолчанию спецификация ссылок комментарии в DTD в HTML использование для скрытия данных таблицы стилей использование для скрытия текста скрипта не представляемые ссылки на символы в только информативные конечный тег объявление как необязательного пропуск координаты серверного изображения-карты щелчка для отправки формы краткая инфомрация о содержимом логический атрибут , минимизированный меню визуальное представление сгруппированных вариантов группировка вариантов заранее выбранные варианты представление вариантов метаданные LINK и META профили схема метка и фокус неявная связь с управляющим элементом явная связь с управляющим элементом модель содержимого исключенные элементы в синтаксис в DTD мягкий перенос набор данных формы кодировка набор символов набор символов документа ISO10646 эквивалентность ISO10646 и UNICODE набор фреймов DTD, обяъвление DTD, определение альтернативное содержимое для вложенные определение расположения проблемы перехода с совместное использование данных между наборы комбинаций URI для HTML 4.0 направление информации о таблице наследование для вложенных элементов текста начальный тег отсутствует нежелательный элемент нумерованные заголовки нумерованный область действия заголовка ячейки таблицы объект в HEAD , , в форме визуальное представление выравнивание граница вокруг инициализация нейтрализация ошибок представления общее включение объявляемые статически правила внедрения пустое пространство вокруг расположение реализации и данных схемы именования ширина и высота объект параметра %Character; %Charset; %Color; %ContentType; %Datetime; %FrameTarget; %LanguageCode; %Length; %MediaDesc; %MultiLength; %Pixels; %Script; %Text; %URI; %attrs; %block; %inline; объект сообщения объявление типа документа для frameset DTD для strict DTD для transitional DTD определение объекта параметра определение типа документа strict transitional как читать комментарии в набор фреймов примеры соответствия фрагменты DTD, соответствующие отключенные управляющие элементы неуспешные относительная длина относительный URI разрешение ошибка изображение-карта с помощью IMG в элементе BUTTON недоступные ресурсы правила стиля представления в элементе STYLE при обработке агентами пользователей , перевод строки жесткий запрет и двунапрвленный текст и плавающий текст перенос переход с помощью клавиши tab пиксел плавающие объекты плавающий текст по умолчанию кодировка символов целевой фрейм язык скрипта язык таблиц стилей позиция кода поисковая машина и ссылки помощь , поисковый робот помощь пользователь последовательность перехода постоянные таблицы стилей предпочитаемые таблицы стилей профиль пустое пространство вокруг изображений и объектов вокруг содержимого таблицы вокруг фрейма сбой символ сохраненный в PRE пустой элемент Рабочая группа HTML члены разбиение текста разделитель между элементами уровня блока между ячейками таблицы разметка разрешение относительного URI расстояние между словами регистр URI данных скрипта данных стиля дескрипторов устройств значений атрибутов , , значений длин имен атрибутов имен элементов имен якорей кодировок символов кодов языков названий цветов ссылки на комбинацию символов типов содержимого типов ссылок числовых ссылок на символы сброс формы серверное изображение-карта , координаты щелчка символы абстрактные клавиши доступа наилучшее представление обработка неотображаемых представление неотображаемых скрипт введение в выполняемый по загрузке документа выполняемый по событию данные замечания о применении зарезервированный синтаксис для использование использование для изменения документов использование для установки якоря комментарии для скрытия не поддерживается ссылки на элементы скрытый управляющий элемент , события соответствие список визуальное представление вложение неупорядоченный нумерация определений таблицы стилей и упорядоченный средства разработки , и язык таблиц стилей по умолчанию ссылка вперед и назад заголовок и внешние таблицы стилей , и зависимые от устройств таблицы стилей и кодировка символов использование для загрузки ресурса использование для определения отношений недопустимость вложения определение представление семантика с целевым фреймом тип цель по умолчанию для ссылки на комбинации символов ссылки на символы , для направления столбец число в таблице ширина в таблице строка число в таблице схема таблица алгоритм для поиска заголовков алгоритмы компоновки визуальное представление выравнивание содержимого границы и разделители группа столбцов в группа строк в заголовки замечания о последовательном представлении категоризация ячеек краткая инфомрация о содержимом направление невизуальное представление не для форматирования страниц поля в ячейках последовательное представление произнесение данных ячейки число столбцов число строк ширина столбцов ячейки данных ячейки заголовков ячейки, объединяющие несколько строк/столбцов таблица стилей альтернативная введение в внешние внешние через ссылки встроенные правила данные и двунаправленность использование с DIV и SPAN каскадные комментарии по скрытию постоянные правила в HEAD предпочитаемые спецификация внешних спецификация предпочитаемых целевое устройство для текст в кавычках заранее отформатированный направление плавающий разбиение на строки в абзацах разметка для вставленного и удаленного текст в кавычках представление тип данных CDATA ID IDREF IDREFS NAME NUMBER тип содержимого application/x-www-form-urlencoded multipart/form-data text/css text/html тип ссылки профили для нового регистр список распознаваемых типы содержимого для кодирования данных формы универсальный идентификатор ресурсов (см. URI) универсальный набор символов управление объектом ,
управляющий элемент значение управляющего элемента имя управляющего элемента исходное значение клавиша доступа к отключенный перевод фокуса на переход с помощью клавиши tab события для типы только для чтения успешный управляющий элемент для ввода пароля управляющий элемент для ввода текста многострочный однострочный управляющий элемент для выбора файлов отправка управляющий элемент только для чтения уровень блока и двунаправленность , элемент успешный управляющий элемент устаревшие элементы устройства и внешние таблицы стилей использование с таблицами стилей флажок фокус и клавиша доступа метка, даваемая управляющему элементу форма добавление меток в замечания об отображении кодирование данных метод отправки методы и действия обработка управляющих элементов остаток отправка переход по управляющим элементам передаваемые значения последовательность перехода в управляющих элементах структурирующие управляющие элементы в типы содержимого для кодирования типы управляющих элементов управляющие элементы в фрейм введение в встроенные границы длинное описание исходное содержимое проблемы URI с простраство вокруг список зарезервированных целевых имен целевой алгоритм цель документа цвет фона цвет фона названия целевой фрейм алгоритм зарезервированные имена по умолчанию семантика спецификация числовые ссылки на символы шрифт стиль в HTML элемент встроенный конечный тег модель содержимого начальный тег объявление типа , поддержка нежелательных поддержка устаревших пропуск конечного тега пропуск начального тега пустой ,
список нежелательных список устаревших ссылки из скриптов с учетом регистра типы уникальный идентификатор уровня блока язык коды для указания связанного ресурса скрипта текста Язык описания ресурсов (Resource Description Language, RDF) , язык разметки язык скриптов локальное объявление по умолчанию спецификация язык таблиц стилей по умолчанию якорь простраство имен регистр имени символы ASCII в имени символы, не входящие в набор ASCII, в имени синтаксис имени создание с помощью атрибута id создание с помощью элемента A с помощью A и с помощью id ссылки на символы в имени уникальность имени устанавливаемый скриптом ячейка данных в таблице ячейка заголовка в таблице область действия сокращение
О спецификации HTML 4.0
Application/x-www-form-urlencoded
Этот тип содержимого используется по умолчанию. Формы, передаваемые с этим типом содержимого, должны быть закодированы следующим образом:
Имена и значения управляющих элементов are escaped. Неотображаемые символы заменяются `+', после чего зарезервированные символы are escaped, как описано в [RFC1738], раздел 2.2: Неарифметические символы заменяются `%HH', знаком процентов с последующими шестнадцатеричными цифрами, представляющими ASCII-код символа. Разрывы строк представляются парами "CR LF" (т.е. `%0D%0A').
Имена/значения управляющих элементов перечисляются в том порядке, в котором они отображаются в документе. Имя отделяется от значения с помощью символа `=', а пары имя/значение отделяются друг от друга символом `&'.
Четвертый шаг: Передача закодированного набора данных формы
Наконец, закодированные данные отправляются обрабатывающему агенту, назначаемому атрибутом , по протоколу, указанному в атрибуте .
В данной спецификации не определяются все допустимые способы отправки или , которые могут использоваться с формами. Однако агенты пользователей HTML 4.0 должны поддерживать установленные соглашения в следующих случаях:
Если для атрибута установлено значение "get", а для атрибута указан HTTP URI, агент пользователя принимает значение атрибута , добавляет к нему `?', затем добавляет , закодированный с использованием "application/x-www-form-urlencoded". Затем агент пользователя переходит по ссылке на этот URI. В этом сценарии данные формы ограничиваются кодами ASCII. Если для атрибута установлено значение "post", а для атрибута - HTTP URI, агент пользователя выполняет транзакцию HTTP "post" с использованием значения атрибута и сообщения, созданного в соответствии с , указанным в атрибуте attribute.
Для других значений атрибута или поведение не определено.
Агенты пользователей должны представлять ответ на транзакции HTTP "get" и "post".
Динамическое изменение документов
Скрипты, выполняемые при загрузке документа, могут динамически изменять содержимое документа. Такая возможность зависит от самого языка скрипта (например, выражение "document.write" в объектной модели HTML поддерживается некоторыми производителями).
Динамическое изменение документа может моделироваться следующим образом:
Все элементы оцениваются по порядку при загрузке документа.
Оцениваются все конструкции скрипта в данном элементе , генерирующие SGML CDATA. Сгенерированный текст вставляется в документ вместо элемента .
Сгенерированные CDATA оцениваются повторно.
Документы HTML ограничиваются требованием соответствия HTML DTD до и после обработки элементов .
В следующем примере показано, как скрипты могут динамически изменять документ. Следующий скрипт:
Тестовый документ
имеет тот же эффект, что и разметка HTML:
Тестовый документ Hello World!
Добавление в формы структуры: элементы FIELDSET и LEGEND
Начальный тег: обязателен , Конечный тег: обязателен
LEGEND Определения атрибутов
align = top|bottom|left|right Определяет положение legend относительно набора полей. Возможные значения:
top: legend располагается сверху набора полей. Это значение используется по умолчанию. bottom: legend располагается внизу набора полей. left: legend располагается в левой части набора полей. right: legend располагается в правой части набора полей.
Атрибуты, определяемые в другом месте
, ()
(), ()
()
()
()
, , , , , , , , ,
()
Элемент FIELDSET позволяет авторам группировать связанные метки и управляющие элементы по темам. Группировка управляющих элементов упрощает пользователям понимание назначения элементов, одновременно упрощая переход по клавише tab для визуальных агентов пользователей и речевую навигацию для звуковых агентов пользователей. Корректное использование этого элемента повышает доступность документов.
Элемент позволяет авторам назначать заголовки для элемента . Legend повышает доступность, если элемент представляется невизуально.
В этом примере мы создадим форму, которую можно заполнять на приеме у врача. Она имеет три раздела: личная информация, история болезни и текущее лечение. В каждом разделе имеются управляющие элементы для ввода соответствующей информации.
Обратите внимание, что в этом примере мы можем улучшить визуальное представление формы, добавив элементы в каждый элемент (с помощью таблиц стилей), добавив информацию о цвете и шрифте (с помощью таблиц стилей), добавив скрипты (например, чтобы область "текущее лечение" открывалась, только если пользователь указывает, что он проходит лечение) и т.д. /samp
Язык скрипта по умолчанию
Авторы должны указывать язык скрипта по умолчанию для всех скриптов в документе, включив следующее объявление в тег :
где "type" - , именующий язык скрипта. Примерами значений являются "text/tcl", "text/javascript", "text/vbscript".
Если отсутствует объявление META, значение по умолчанию может устанавливаться с помощью заголовка протокола HTTP "Content-Script-Type".
Content-Script-Type: тип
где "тип" - именующий язык скрипта.
Агенты пользователей должны определять язык скрипта по умолчанию для документа в соответствии со следующими действиями (приоритет от высшего к низшему):
Если в объявлении задается "Content-Script-Type", язык скрипта по умолчанию задается последним таким объявлением в потоке символов. В противном случае, если в заголовках HTTP задается "Content-Script-Type", язык скрипта по умолчанию задается последним таким объявлением в потоке символов.
Документы, в которых не указан язык скрипта по умолчанию, но содержатся элементы, задающие , некорректны. Агенты пользователей могут предпринимать попытки интерпретировать некорректно заданные скрипты, но это не обязательно. Средства разработки должны генерировать информацию о языке скрипта по умолчанию во избежание создания некорректных документов.
Элемент BUTTON
Начальный тег: обязателен , Конечный тег: обязателен
Определения атрибутов
name =
Определяет
value =
Определяет кнопки.
type = submit|button|reset
Объявляет тип кнопки. Возможные значения:
submit: Создает Это значение используется по умолчанию.
reset: Создает
button: Создает
Атрибуты, определяемые в другом месте
()
()
() , , , , , , , , , , , (внутренние события)
Кнопки, создаваемые с помощью элемента , действуют так же, как и кнопки, создаваемые с помощью элемента , но они обеспечивают более богатые возможности представления: элемент может иметь содержимое. Например, элемент , содержащий изображение, действует и может resemble подобно элементу , для атрибута которого установлено значение "image", но тип элемента может иметь содержимое content.
Визуальные агенты пользователей могут представлять кнопки рельефно или с эффектом нажатия при щелчке мыши, в то время как кнопки могут представляться только как "плоские" изображения.
В следующем примере предыдущий пример расширяется, и кнопки отправки и создаются с помощью элемента вместо элемента . Используемое для кнопок изображение определяется элементом .
Имя: Фамилия: email: Мужской Женский Send Reset
Помните, что авторам следует предусматривать для элемента .
Не допускается связывать изображение-карту с элементом , содержащимя в элементе element.
ПРИМЕР НЕДОПУСТИМОГО ИСПОЛЬЗОВАНИЯ:
В следующем примере представлен недопустимый код HTML.
Элемент FORM
Начальный тег: обязателен , Конечный тег: обязателен
Определения атрибутов
action =
Задает агента для обработки формы. Например, значением может быть URI HTTP (для передачи формы в программу) или mailto URI (для отправки формы по электронной почте).
method = get|post
Определяет метод HTTP, используемый для передачи . Возможные значения (с учетом регистра) - "get" (по умолчанию) и "post". Подробнее см. в разделе об .
enctype =
Этот атрибут задает , используемый для отправки формы на сервер (если для используется значение "post"). По умолчанию для этого атрибута используется значение "application/x-www-form-urlencoded". С элементом , type="file" должно использоваться значение "multipart/form-data".
accept-charset =
Этот атрибут задает список кодировок символов для ввода данных, которые должны приниматься обрабатывающим эту форму сервером. Значением является разделенный пробелами и/или запятыми список значений . Сервер должен интерпретировать этот список как список исключающих или, то есть он должен принимать любую кодировку для загруженного объекта.
По умолчанию значением этого атрибута является зарезервированная строка "UNKNOWN". Агенты пользователей могут интерпретировать это значение как кодировку символов, используемую для передачи документа, содержащего этот элемент .
accept =
Этот атрибут определяет разделенным запятыми список типов содержимого, которые должен корректно обрабатывать сервер, обрабатывающий форму. Агенты пользователей могут использовать эту информацию для отфильтровывания отвечающих спецификации файлов при предложении пользователю выбора файлов для отправки на сервере (если в элементе указано ="file").
Атрибуты, определяемые в другом месте
, ()
(), () (встроенная информация о стиле) ()
() , , , , , , , , , , ,
()
Элемент служит контейнеров для . Он определяет:
Макет формы (дается содержимым элемента).
Программу, которая будет обрабатывать заполенную и переданную форму (атрибут ). Получающая форму программа должна иметь возможность определения пар имя/значение, чтобы их использовать.
Метод отправки данных на сервер (атрибут ).
Кодировку символов, которая должна приниматься сервером для обработки этой формы (атрибут ). Агенты пользователей могут рекомендовать пользователю значение атрибута и/или не позволять пользователям вводить нераспознаваемые символы.
Форма помимо может содержать текст и разметку (абзацы, списки и т.д.).
В следующем примере показана форма, которая должна обрабатываться программой "adduser". Эта форма будет отправляться с использованием метода HTTP "post".
...содержимое формы...
В следующем примере показана отправка формы на адрес электронной почты:
...содержимое формы...
Информацию о том, как агенты пользователя должны подготавливать данные формы для серверов и как они должны обрабатывать ответы от сервера Вы можете найти в разделе об .
Примечание. Дальнейшее обсуждение поведения серверов, принимающих данные формы, лежит вне области, рассматриваемой в данной спецификации.
Элемент INPUT
Начальный тег: обязателен , Конечный тег: запрещен
Определения атрибутов
type = text|password|checkbox|radio|submit|reset|file|hidden|image|button
Определяет . По умолчанию используется значение "text".
name =
Определяет .
value =
Определяет управляющего элемента. Этот атрибут не обязателен, если только для атрибута не установлено значение "radio".
size =
Сообщает агенту пользователя начальную ширину управляющего элемента. Ширина дается в , если для атрибута не установлено значение "text" или "password". В этом случае ширина задается в числе символов (число должно быть целым).
maxlength
=
Если для атрибута установлено значение "text" или "password", этот атрибут определяет максимальное число символов, вводимых пользователем. Это число может превышать указанный в атрибуте размер поля; в этом случае агент пользователя должен обеспечивать механизм прокрутки. По умолчанию число символов не ограничено.
checked
Если для атрибута установлено значение "radio" или "checkbox", этот логический атрибут указывает, что флажок установлен. Агенты пользователей должны игнорировать этот атрибут для других типов управляющих элементов.
src =
Если атрибут имеет значение "image", этот атрибут определяет местоположение изображения, используемое для представления графической кнопки.
Атрибуты, определяемые в другом месте
, ()
(), ()
()
()
()
() ()
()
()
()
()
() , , , , , , , , , , , , ,
()
Элемент ISINDEX
ISINDEX является . Этот элемент создает управляющий элемент для из одной строки. Авторам следует использовать для создания управляющих элементов для элемент .
Формальное определение см. в .
Определения атрибутов
prompt =
Нежелателен. Задает строку запроса для поля ввода.
Атрибуты, определяемые в другом месте
, ()
(), ()
()
()
Элемент создает управляющий элемент для из одной строки, в который можно ввести любое число симвлов. Агенты пользователей могут использовать значение атрибута в качестве запроса.
ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
Следующее объявление :
можно переписать с использованием элемента следующим образом:
Введите фразу для поиска:
Семантика элемента ISINDEX.
В настоящее время семантика элемента точно определена, только если базовый URI для влключающего элемента является URI HTTP. На практике в эту строку можно вводить только символы в кодировке Latin-1, поскольку для URI нет механизма задания другого набора символов.
Элемент LABEL
Начальный тег: обязателен , Конечный тег: обязателен
Определения атрибутов
for
=
Явно связывает определяемую метку с другим управляющим элементом. Если указано значение этого атрибута, оно должно совпадать со значением атрибута другого управляющего элемента в этом же документе. Если этот атрибут не указан, определяемая метка связывается с содержимым элемента.
Атрибуты, определяемые в другом месте
, ()
(), ()
()
()
()
()
, , , , , , , , , , ,
()
Элемент может использоваться для прикрепления к управляющим элементам информации. Каждый элемент связан ровно с одним управляющим элементом формы.
Атрибут for явно связывает метку с другим управляющим элементом: значение атрибута должно совпадать со значением атрибута связанного управляющего элемента. С одним и тем же управляющим элементом может быть связано несколько элементов , если создать несколько ссылок с помощью атрибута .
В этом примере мы создадим таблицу, которая используется для выравнивания двух элементов для и связанные с ними метки. Каждая метка явно связана с одним из :
Здесь мы расширим предыдущий пример и включим элементы .
Имя: Фамилия: email: Male Female
Чтобы неявно связать метку с другим управляющим элементом, этот управляющий элемент должен находиться в элементе . В таком случае элемент может содержать только один управляющий элемент. Сама метка может располагаться до или после связанного с ней управляющего элемента.
В этом примере мы неявно связываем две метки с двумя управляющими элементами :
Имя Фамилия
Обратите внимание, то такая технология не может использоваться, если таблицы используются для форматирования документов, и метка находится в одной ячейке, а связанный с ней управляющий элемент в другой.
Если на элемент LABEL
переходит , то он передается в связанный управляющий элемент. Примеры см. ниже в разделе о .
Метки могут представляться агентами пользователей несколькими способами (например, визуально, прочитываться синтезаторами речи и т.д.)
Элемент NOSCRIPT
Начальный тег: обязателен , Конечный тег: обязателен Элемент позволяет авторам определять альтернативное содержимое, когда скрипт не выполняется. Содержимое элемента должно генерироваться агентам пользователей, поддерживающими скрипты, только в следующих случаях:
Агент пользователя сконфигурирован так, чтобы не выполнять скрипты.
Агент пользователя не поддерживает язык скриптов, используемый элементом .
Агенты пользователей, не поддерживающие клиентские скрипты, должны представлять содержимое этого элемента.
В следующем примере агент пользователя, выполняющий элемент , включит в документ динамически создаваемые данные. Если агент пользователя не поддерживает скрипты, пользователь может загрузить эти данные по ссылке.
Доступ к данным .
Элемент SCRIPT
Начальный тег: обязателен , Конечный тег: обязателен
Определения атрибутов src =
Этот атрибут определяет местоположение внешнего скрипта.
type =
Этот атрибут задает язык скрипта содержимого элемента и имеет приоритет над языком скрипта, заданным по умолчанию. Язык скрипта указывается как тип содержимого (например, "text/javascript"). Авторы должны указать значение этого атрибута. Значение по умолчанию для этого атрибута не задано.
language
=
Этот атрибут определяет язык скрипта содержимого этого элемента. Его значением является идентификатор языка, но поскольку идентификаторы не стандартизованы, этот атрибут является вместо него нужно использовать атрибут type.
defer [CI]
Если этот логический атрибут установлен, он обеспечивает для агента пользователя подсказку о том, что скрипт не будет генерировать содержимое документа (например, "document.write" в javascript) и таким образом агент пользователя может продолжать синтаксический разбор и представление документа.
Атрибуты, определяемые в любом другом месте
()
Элемент помещает скрипт в документа. Этот элемент может указываться в элементе или документа HTML несколько раз.
Скрипт может определяться в содержимом элемента SCRIPT или во внешнем файле. Если не установлен атрибут , агенты пользователя должны интерпретировать содержимое элемента как скрипт. Если для для атрибута установлено значение URI, агенты пользователей должны игнорировать содержимое этого элемента и загружать скрипт через URI. Обратите внимание, что атрибут относится к скрипта, назначаемого атрибутом ; он не относится к содержимому элемента .
Скрипты оцениваются ядром скрипта, которое агент пользователя должен знать.
зависит от языка скрипта.
Элемент TEXTAREA
Начальный тег: обязателен , Конечный тег: обязателен
Определения атрибутов
name =
Имя
rows
=
Число видимых текстовых строк. Пользователи должны иметь возможность вводить большее количество строк, поэтому агенты пользователей должны обеспечивать средства прокрутки этого управляющего элемента, если содержимое уходит за пределы видимой области.
cols
=
Видимая ширина, выраженная шириной среднего символа. Пользователи должны иметь возможность вводить более длинные строки, поэтому агенты пользователей должны обеспечивать средства прокрутки этого управляющего элемента, если содержимое уходит за пределы видимой области. Агенты пользователей могут разбивать видимые тестовые строки, чтобы длинные строки были видны без прокрутки.
Атрибуты, определяемые в другом месте
, ()
(), ()
()
()
()
()
()
, , , , , , , , , , , , ,
()
Элемент создает управляющий элемент для многострочного . Агенты пользователей должны использовать содержимое этго элемента как управляющего элемента и представлять этот текст сначала.
В этом примере создается управляющий элемент в 20 строк и 80 столбцов, в котором изначально имеется две строки текста. За элементом следуют кнопки отправки и сброса.
Первая строка исходного текста. Вторая строка исходного текста.
Устанвока атрибута позволяет авторам отображать неизменяемый текст в элементе . В отличие от стандартной разметки текста в документе, при такой разметке значение элемента передается с формой.
Элементы SELECT, OPTGROUP и OPTION
Начальный тег: обязателен , Конечный тег: обязателен
Определения атрибутов элемента SELECT
name =
Определяет
size
=
Если элемент представлен в виде списка с возможностью прокрутки, этот атрибут определяет число строк в списке, видимых в один момент времени. Визуальные агенты пользователей не обязательно должны представлять элемент в виде списка; они могут использовать другие механизмы - например, выпадающие меню.
multiple
Если этот логический атрибут установлен, он позволяет выбирать несколько пунктов. Если он не установлен, в элементе можно выбрать только один вариант.
Элемент создает . Каждый вариант пункт меню представляется элементом . Элемент должен содержать хотя бы один элемент .
Элемент OPTGROUP element позволяет авторам логически группировать варианты. Обычно это полезно, если пользователь должен делать выбор в длинном списке вариантов; группы связанных вариантов проще просматривать и запоминать, чем один длинный список вариантов. В HTML 4.0 все элементы должны задаваться непосредственно в элементе (т.е. группы не могут быть вложенными).
Как скрыть скрипт от агентов пользователей
Агенты пользователей, не распознающие элемент , могут представить его в виде текста. Некоторые ядра скриптов, включая ядра для языков JavaScript, VBScript и Tcl, позволяют включать выражения скриптов в комментарий SGML. Агенты пользователей, не распознающие элемент , будут игнорировать комментарии, а ядро скрипта обнаружит и выполнит его.
Другим решением этой проблемы является хранение скриптов во внешних документах и ссылка на них с помощью атрибута .
Комментирование скриптов JavaScript
Ядро JavaScript допускает использование строки "" не разбиралась синтаксическим анализатором JavaScript.
Комментирование скриптов в VBScript
В VBScript комментарием считается весь текст, начиная с символа одиночной кавычки до конца строки. Это может использоваться для комментирования строки "-->" от VBScript, напрмер:
Комментирование скриптов в TCL
В Tcl комментарием считается текст от символа "#" до конца строки:
Примечание.
Некоторые браузеры считают концом комментариев первый символ ">". В этом случае Вы можете перенести операнды для операторов отношения и сдвига (например, используя "y < x" вместо "x > y") или использовать определенные в языке скрипта способы обхода символа ">".
Клавиши доступа
Определения атрибутов
accesskey =
Назначает для элемента клавишу доступа. Клавиша доступа - это один символ из набора символов документа. Примечание. При определении клавиши доступа авторы должны учитывать способ ввода, который, скорее будет использоваться читателем.
Нажатие назначенной элементу клавиши доступа передает элементу фокус. Действие, происходящее по получении элементом фокуса, зависит от элемента. Например, если пользвоатель активизирует ссылку, определяемую элементом , агент пользователя обычно производит переход по ссылке. Если пользователь активизирует кнопку с зависимой фиксацией, агент пользователя изменяет значение кнопки. Если пользователь активизирует текстовое поле, в него разрешается ввод и т.д.
Следующие элементы поддерживают атрибут : , , , , , и .
В этом примере клавиша доступа "U" назначается метке, связанной с управляющим элементом . Нажатие клавиши доступа переводит фокус на метку, которая, в свою очередь, передает его связанному с ней управляющему элементу. После этого пользователь может ввести текст в область .
User Name
В этом примере мы назначаем клавишу доступа ссылке, определяемой элементом . Нажатие этой клавиши приведет к переходу пользователя в другой документ, в данном случае - в оглавление.
Оглавление
Использование клавиши доступа зависит от системы. Например, на машинах под управлением MS Windows обычно вместе с клавишей доступа нужно нажимать клавишу "alt". В системах Apple обычно требуется нажатие клавиши "cmd".
Представление клавиши доступа зависит от агента пользователя. Авторам рекомендуется включать клавиши доступа в текст метки или туда, где применяется клавиша доступа. Агенты пользователей должны представлять значение клавиши доступа таким образом, чтобы подчеркнуть ее роль и дать отличить ее от других символов (например, с помощью подчеркивания).
Локаьлное объявление языка скрипта
Язык скрипта можно задавать в каждом элементе с помощью атрибута type. Если не указан язык скрипта по умолчанию, этот атрибут должен устанавливаться для каждого элемента . Если задан язык скрипта по умолчанию, атрибут type имеет приоритет над ним.
В этом примере мы объявляем язык скриптов по умолчанию: "text/tcl". В заголовок включается элемент , сам скрипт находится во внешнем файле и использует язык "text/vbscript". Кроме того, один элемент SCRIPT находится в теле документа и содержит другой скрипт, написанный на языке "text/javascript".
Документ со скриптами
Метки
С некоторыми управляющими элементами формы могут автоматически связываться метки (например, с кнопками), с другими элементами метки не связываются (текстовые поля, флажки и кнопки с зависимой фиксацией и меню).
Для управляющих элементов с неявными метками агенты пользователей должны использовать в качестве метки значение атрибута value.
Элемент используется для задания меток для управляющих элементов, не имеющих неявных меток.
Метод отправки формы
Атрибут элемента определяет метод HTTP, используемый для отправки формы в агент обработки. Этот атрибут может принимать два значения:
get: С использованием метода HTTP "get" добавляется к URI, указанному в атрибуте , и этот новый URI отправляется в агент обработки.
post: С использованием метода HTTP "post" включается в тело формы и отправляется в агент обработки.
Метод "get" следует использовать, если форма is idempotent (то есть не вызывает побочных эффектов). Большое число операций поиска в базе данных не имеет видимых побочных эффектов и представляет собой идеальное приложение для метода "get".
Если обслуживание, связанное с обработкой формы, вызывает побочные эффекты (например, если форма изменяет базу данных или производит подписку н услуги), следует использовать метод "post".
Примечание. При использовании метода "get" набор данных формы должен включать только символы набора ASCII. Только с методом "post" (с атрибутом ="multipart/form-data") можно использовать весь набор символов [ISO10646].
Multipart/form-data
Примечание. Дополнительную информацию о вопросах совместимости с предыдущими версиями, об отношении типа содержимого "multipart/form-data" и других типов содержимого, о проблемах работы и т.д. см. в [RFC1867].
Информацию о см. в приложении.
Тип "application/x-www-form-urlencoded" неэффективен для отправки большого количества двоичных данных или текста, содержащего символы, не входящие в набор ASCII. Тип "multipart/form-data" следует использовать для отправки форм, содержащих файлы, данные, не входящие в набор ASCII и двоичные данные.
В содержимом "multipart/form-data" используются правила всех составных потоков данных MIME, как описано в [RFC2045]. Определение типа "multipart/form-data" можно найти в реестре [IANA].
Сообщение типа "multipart/form-data" состоит из нескольких частей, каждая их которых представляет . Части отправляются обрабатывающему агенту в том порядке, в котором соответствующие управляющие элементы представлены в потоке документа. Границы частей не должны находиться в данных; обеспечение этого требования лежит вне области, рассматриваемой в данной спецификации.
Как и во всех составных типах MIME, каждая часть имеет необязательный заголовок "Content-Type", для которого по умолчанию устанавливается значение "text/plain". Агенты пользователей должны предоставлять заголовок "Content-Type" с параметром "charset".
Каждая часть должна содержать:
заголовок "Content-Disposition", имеющий значение "form-data".
атрибут именования, определяющий соответствующего управляющего элемента. Имена управляющих элементов, изначально закодированные с использованием , отличных от ASCII, могут кодироваться с помощью метода, описанного в [RFC2045].
Например, для управляющего элемента с именем "mycontrol" соответствующая часть может выглядеть так:
Content-Disposition: form-data; name="mycontrol"
Как и во всех процессах передачи данных MIME, для разделения строк данных используется комбинация "CR LF" (т.е. `%0D%0A').
Может кодироваться каждая часть с указанием заголовка "Content-Transfer-Encoding", если значение этой части не соответствует кодировке по умолчанию (7BIT) (см. [RFC2045], раздел 6)
Если содержимое файла передается с формой, файловый ввод должен определяться соответствующим (например, "application/octet-stream"). Если в результате одного элемента формы должны быть возвращены несколько файлов, они должны возвращаться как тип "multipart/mixed", внедренный в "multipart/form-data".
Агент пользователя должен попытаться указать имя для каждого передаваемого файла. Имя файла может указываться в параметре "filename" заголовка 'Content-Disposition: form-data' или, в случае нескольких полей, в заголовке 'Content-Disposition: file' составной части. Если имя файла клиентской операционной системы содержит символы, не входящие в набор US-ASCII, имя файла может изменяться или кодироваться с использованием метода [RFC2045]. Это удобно в случаях, когда, например, выгруженные файлы могут содержать ссылки друг на друга (например, файл TeX и его вспомогательное описание стилей ".sty").
В следующем примере показана кодировка "multipart/form-data". Предположим, у нас имеется следующая форма:
Как Вас зовут? Какие файлы Вы отправляете?
Если пользователь введет в текстовое поле слово "Larry" и выберет текстовый файл "file1.txt", агент пользователя может отправить следующие данные:
Content-Type: multipart/form-data; boundary=AaB03x
--AaB03x Content-Disposition: form-data; name="submit-name"
Larry --AaB03x Content-Disposition: form-data; name="files"; filename="file1.txt" Content-Type: text/plain ... содержимое файла file1.txt ... --AaB03x--
Если пользователь выбрал второй файл (изображение) "file2.gif", агент пользователя может сконструировать части следующим образом:
Content-Type: multipart/form-data; boundary=AaB03x
--AaB03x Content-Disposition: form-data; name="submit-name"
Larry --AaB03x Content-Disposition: form-data; name="files" Content-Type: multipart/mixed; boundary=BbC04y
--BbC04y Content-Disposition: attachment; filename="file1.txt" Content-Type: text/plain
... содержимое файла file1.txt ... --BbC04y Content-Disposition: attachment; filename="file2.gif" Content-Type: image/gif Content-Transfer-Encoding: binary
...содержимое файла file2.gif... --BbC04y-- --AaB03x--
Обработка данных формы
Когда пользователь отправляет форму (например, активизировав кнопку отправки), агент пользователя обрабатывает ее следующим образом.
Отключенные управляющие элементы и элементы только для чтения
В контекстах, где ввод пользователя нежелателен или не требуется, важна возможность отключения управляющего элемента или представление его только для чтения. Например, можно отключить кнопку отправки формы до ввода некоторых обязательных данных. Аналогично, автор может включить текст только для чтения, который должен передаваться с формой как значение. В следующих разделах описываются отключенные управляющие элементы и элементы только для чтения.
Отключенные управляющие элементы
Определения атрибутов
disabled Если этот атрибут установлен для управляющего элемента формы, ввод пользователем в этот элемент невозможен.
Если атрибут установлен, он влияет на элемент следующим образом:
К отключенным элементам не переходит . Отключенные элементы не участвуют в . Отключенные управляющие элементы не могут быть .
Атрибут поддерживают следующие элементы: , , , и .
Этот атрибут наследуется, но локальные объявления имеют приоритет над наследуемым значением.
Представление отключенных элементов зависит от агента пользователя. Например, некоторые агенты пользователей "выделяют серым" отключенные пункты меню, метки кнопок и т.д.
В этом примере элемент отключен. Таким образом, пользователь не может ввести туда текст, и его значение не будет передаваться с формой.
Примечание.
Единственным способом динамического изменения значения атрибута является использование
Отправка формы
В следующих разделах объясняется передача данных формы агентами пользователей агентам обработки форм.
Переход фокуса на элемент
В документе HTML, чтобы стать активным и выполнить свои задачи, элемент должен получить фокус от пользователя. Например, пользователи должны активизировать ссылку, задаваемую элементом , чтобы перейти к связанному документу. Точно так же пользователи должны перевести фокус на элемент , чтобы в него можно было вводить текст.
Имеется несколько способов передачи фокуса элементу:
Указать элемент с помощью указательного устройства.
Перейти с одного элемента на другой с помощью клавиатуры. Автор документа может определить последовательность перехода, определяющую порядок получения элементами фокуса при переходе пользователя по документу с помощью клавиатуры (см. ). Выбранный элемент можно активизировать с помощью другой последовательности клавиш.
Выбрать элемент с помощью (иногда называется "клавиатурным сокращением").
Переход с помощью клавиши Tab
Определения атрибутов
tabindex =
Определяет положение текущего элемента в последовательности перехода для текущего документа. Значение должно лежать в диапазоне от 0 до 32767. Агенты пользователей должны игнорировать начальные нули.
Последовательность перехода определяет порядок получения фокуса элементами при переходе с помощью клавиатуры. Последовательность перехода может включать элементы, вложенные в другие элементы.
Переход к элементам, которые могут получать фокус, должен осуществляться агентами пользователей в соответствии со следующими правилами:
Переход к элементам, поддерживающим атрибут , которому назначено положительное значение, должен осуществляться в первую очередь. Переход производится от элементов с наименьшим значением атрибута до элементов с наивысшим значением. Значения не обязательно должны быть последовательными и не обязательно должны начинаться с какого-то конкретного значения. Переход к элементам с одинаковыми значениями атрибута должен осуществляться в порядке их нахождения в потоке символов.
Переход к элементам, не поддерживающим атрибут или элементам, у которых значением этого атрибута является "0", выполняется в следующую очередь. Переход к этим элементам производится в порядке их нахождения в потоке символов.
элементы не участвуют в последовательности перехода.
Следующие элементы поддерживают атрибут : , , , , , и .
В этом примере последовательность перехода будет включать элементы , в порядке (обратите внимание, что "field1" и кнопка используют одно и то же значение атрибута tabindex, но "field1" находится потоке в потоке символов), и наконец, ссылка, создаваемая элементом .
Документ с тегом FORM ...некоторый текст...
Посетите сайт W3C. ...еще текст...
Текущая база данных. ...еще текст...
Клавиши перехода.
Фактическая последовательность клавиш, обеспечивающая переход или активизацию элемента, зависит от конфигурации агента пользователя (например, клавиша "tab" используется для перехода, а клавиша "enter" - для активизации выбранного элемента).
Агенты пользователей могут также определять последовательности клавиш для перехода в обратном порядке. По достижении конца (или начала) последовательности агенты пользователей могут переходить в начало (или в конец).
Примеры форм с управляющими элементами типа INPUT
В следующем фрагменте кода HTML определяется простая форма, позволяющая пользователям вводить имя, фамилию, адрес электронной почты и пол. В случае активизации кнопки отправки форма передается программе, указанной в атрибуте .
Имя: Фамилия: email: Мужской Женский
Эта форма может представляться следующим образом:
В разделе об элементе мы обсудим разметку меток типа "First name".
В следующем примере в случае события "onclick" включается функция JavaScript с именем verify:
Подробнее о скриптах и событиях Вы можете узнать в разделе о внутренних событиях.
В следующем примере показано, как содержимое указанного пользователем файла -может передаваться вместе с формой. У пользователя запрашивается имя и список имен файлов, содержимое которых должно передаваться с формой. С помощью указания значение для "multipart/form-data" содержимое всех файлов будет упаковываться для передачи в отдельные разделы существующего документа.
Как Вас зовут? Какие файлы Вы отправляете?
Разработка документов для агентов пользователей, не поддерживающих скрипты
В следующих разделах обсуждается создание документов для агентов пользователей, не поддерживающих скрипты.
Разработка документов для агентов пользователя, поддерживающих скрипты
Следующие разделы относятся к агентам пользователей, поддерживающих скрипты.
Ссылки из скрипта на элементы HTML
Каждый язык скриптов имеет собственные соглашения относительно ссылок на объекты HTML в скрипте. В данной спецификации не определяется стандартный механизм для ссылки на объекты HTML.
Однако скрипты должны ссылаться на элементы в соответствии с назначенным им именем. Ядро скриптов должно соблюдать при идентификации элемента следующие правила приоритета: атрибут имеет преимущество над атрибутом , если установлены оба эти атрибута. В противном случае используется установленный атрибут.
Типы содержимого формы
Атрибут элемента определяет , используемый для кодирования для передачи на сервер. Агенты пользователей должны поддерживать перечисленные ниже типы содержимого. Поведение для других типов содержимого не определено.
См. также раздел об использовании амперсандов в значениях атрибутов URI.
Типы управляющих элементов, создаваемые с помощью элемента INPUT
определяемый элементом , зависит от значения атрибута :
text
Создает элемент для ввода текста из одной строки.
password
Аналогичен значению "text", но вводимый текст представляется таким образом, чтобы не отображать символы (например, в виде ряда звездочек). Этот управляющий элемент часто используется для ввода паролей. Обратите внимание, что является текст, введенный пользователем, а не текст, представляемый агентом пользователя.
Примечание. Разработчикам приложений следует обратить внимание на то, что этот механизм обеспечивает только слабую защиту. Хотя пароль маскируется агентом пользователя от случайных наблюдателей, он передается на сервер в виде открытого текста, и его может прочесть любой пользователь, имеющий доступ к сети на низком уровне.
checkbox
Создает
radio
Создает
submit Создает
image
Создает графическую Значение атрибута задает URI изображения, используемого для представления кнопки. Из соображений доступности авторам следует предусматривать для изображения с помощью атрибута .
Если для щелчка на изображении используется указующее устройство, на сервер передаются форма и координаты щелчка. Значение x измеряется в от левой границы изображения, а значение y - в от верхней границы изображения. В передаваемые данные включаются последовательности имя.x=значение-x и name.y=значение-y, где "имя" - значение атрибута name, а значение-x и значение-y - значения координат x и y соответственно.
Если сервер предпринимает различные действия в зависимости от места щелчка, пользователи неграфических браузеров не смогут воспользоваться этим свойством. По этой причине авторам следует предусматривать альтернативные подходы:
Использовать несколько кнопок отправки (каждая с отдельным изображением) вместо одной графической кнопки. Можно использовать для управления местоположением этих кнопок таблицы стилей.
Использовать и скрипты.
reset
Создает
button
Создает Агенты пользователей должны использовать в качестве метки на кнопке значение атрибута value.
hidden
Создает
file
Создает управляющий элемент . Агенты пользователей могут использовать значение атрибута в качестве исходного имени файла.
Типы управляющих элементов
В HTML определены следующие типы управляющих элементов:
кнопки
Авторы могут создавать три типа кнопок:
кнопки отправки: При активизации такой кнопки производится В форме может быть несколько кнопок отправки.
кнопки сброса: При активизации такой кнопки для всех управляющих элементов устанавливаются
прочие кнопки: Для таких кнопок действие по умолчанию не определено. С атрибутами каждой такой кнопки могут быть связаны . Если происхходит событие (например, пользователль нажимает кнопку, отпускает ее и т.д.), включается связанный с событием скрипт.
Авторы должны определять язык скрипта для кнопок в (в элементе ).
Авторы создают кнопки с помощью элемента или . Подробнее об определении различных типов кнопок см. в определении этих элементов.
Примечание. Авторам следует обратить внимание на то, что элемент предоставляет более широкие возможности представления кнопки, чем элемент .
флажки
Флажки (и кнопки с зависимой фиксацией) - это переключатели вкл./выкл., которые могут переключаться пользователем. Переключатель "включен", если для управляющего элемента установлен атрибут . При отправке формы могут стать только включенные переключатели. Несколько флажков в форме могут иметь одно и то же Таким образом, например, флажки позволяют пользователям выбрать несколько значений для одного и того же свойства. Для создания флажков используется элемент .
кнопки с зависимой фиксацией
Кнопки с зависимой фиксацией похожи на флажки за исключением того, что, если несколько кнопок используют одно и то же , они являются взаимоисключающими: если одна кнопка включена, другие обязательно выключены. Для создания кнопок с зависимой фиксацией используется элемент .
меню
Предоставляют пользователям варианты на выбор. Меню создается с помощью элемента , а также элементов и .
текстовый ввод
Для ввода текста пользователем авторы могут создавать управляющие элементы двух типов. Элемент создает управляющий элемент для ввода текста из одной строки, а элемент - элемент для ввода текста из нескольких строк. В обоих случаях вводимый текст становится управляющего элемента.
выбор файлов
Управляющие элементы этого типа позволяют пользователям выбирать файлы, содержимое которых может передаваться вместе с формой. Для создания этого управляющего элемента используется элемент .
скрытые управляющие элементы
Авторы могут создавать управляющие элементы, не представляемые пользователям, но имеющие значения, которые передаются с формой. Обычно они используются для хранения информации между обменом клиент/сервер, которая в противном случае могла бы пропасть вследствие stateless природы протокола HTTP (см. [RFC2068]). Для создания скрытого управляющего элемента используется элемент .
объекты
Авторы могут помещать в формы общие объекты, так что связанные с ними значения будут передаваться с другими управляющими элементами. Для создания таких управляющих элементов используется элемент .
Элементы, используемые для создания управляющих элементов, обычно располагаются в элементе , но могут находиться и за пределами объявления , если они используются для построения интерфейса пользователя. Это обсуждается в разделе о Обратите внимание, что управляющие элементы за пределами формы не могут быть .
Третий шаг: Кодирование набора данных формы
Затем набор данных формы кодируется в соответствии с типом содержимого, определяемого атрибутом элемента .
Указание языка скрипта
Поскольку документ HTML не предполагает определенный язык скрипта, авторы документа должны явно сообщить агентам пользователей язык каждого скрипта. Это может выполняться с помощью объявления скрипта по умолчанию или с помощью локального объявления.
Управляющие элементы только для чтения
Определения атрибутов
readonly Если этот атрибут установлен для управляющего элемента формы, изменение значения этого элемента невозможно.
Атрибут определяет, может ли пользователь изменять содержимое управляющего элемента.
Если атрибут установлен, он влияет на элемент следующим образом:
К элементам только для чтения переходит , но пользователь не может изменять их. Элементы только для чтения входят в . Элементы только для чтения могут быть .
Атрибут поддерживают следующие элементы: , TEXT, PASSWORD и .
Представление элементов только для чтения зависит от агента пользователя.
Примечание. Единственным способом динамического изменения значения атрибута является использование
Управляющие элементы
Пользователи взаимодействуют с формами с помощью именованных управляющих элементов.
"Имя элемента" задается атрибутом name. Областью действия атрибута name для управляющего элемента в элементе является элемент .
Каждый управляющий элемент имеет начальное и текущее значение, оба они являются символьными строками. Информацию о начальных значениях и возможных ограничениях на значения см. в определении управляющего элемента. В общем случае "исходное значение" управляющего элемента может задаваться с помощью атрибута value. Однако исходное значение элемента задается его содержимым, а исходное значение элемента в форме определяется реализацией объекта (т.е лежит вне области, рассматриваемой в данной спецификации).
"Текущее значение" управляющего элемента сначала устанавливается равным начальному значению. Затем текущее значение может изменяться пользователем или
Начальное значение управляющего элемента не изменяется. Таким образом при сбросе формы каждое текущее значение устанавливается равным начальному значению. Если управляющий элемент не имеет начального значения, результат сброса формы непредсказуем.
Когда форма предоставляется для обработки, с формой пары управляющий элемент-текущее значение. Передаваемые пары имя/значение называются .
Успешные управляющие элементы
Успешный управляющий элемент "подходит" для отправки. Каждый успешный управляющий элемент имеет и ; эта пара является частью передаваемого . Успешный управляющий элемент должен определяться в элементе и должен иметь имя.
Однако:
управляющие элементы не могут быть успешными.
Если в форме содержится несколько , успешной является только активизированная кнопка.
Успешными могут быть все "включенные" .
Для с одним и тем же значением атрибута , успешной может быть только "включенная" кнопка.
Для задается элементом , а значения - элементами . Успешными могут быть только выбранные пункты.
Текущее значение элемента является список из одного или нескольких имен файлов. После отправки формы содержимое каждого файла передается с остальными данными формы. Содержимое файла упаковывается в соответствии с формы.
Текущее значение управляющего элемента объекта определяется реализацией объекта.
Если управляющий элемент не имеет во время отправки формы, агенты пользователей не обязательно должны обрабатывать его как успешный.
Более того, агенты пользователей не должны считать успешными следующие управляющие элементы:
Элементы OBJECT, у которых установлен атрибут .
Скрытые управляющие элементы и управляющие элементы, не представляемые благодаря могут быть успешными. Например:
В этом случае значению будет сопоставлено имя "invisible-password", и оно будет передаваться с формой.
Внутренние события
Примечание. Сообщаем авторам документов HTML, что в области внутренних событий (например, в привязке скриптов к событиям) весьма вероятны изменения. Работа в этой области ведется членами рабочей группы по объектной модели документов W3C (W3C Document Object Model Working Group) (более подробную информацию можно найти на Web-сайте W3C по адресу ).
Определения атрибутов
onload
=
Событие onload происходит, когда агент пользователя заканчивает загружать окно или все фреймы элемента . Этот атрибут может использоваться в элементах и .
onunload
=
Событие onunload происходит, когда агент пользователя удаляет документиз окна или фрейма. Этот атрибут может использоваться в элементах и .
onclick
=
Событие onclick происходит при однократном щелчке кнопки указующего устройства на элементе. Этот атрибут может использоваться с большинством элементов.
ondblclick
=
Событие ondblclick происходит при двойном щелчке клавиши указующего устройства на элементе. Этот атрибут может использоваться с большинством элементов.
onmousedown
=
Событие onmousedown происходит при нажатии кнопки указующего устройства на элементе. Этот атрибут может использоваться с большинством элементов.
onmouseup
=
Событие onmouseup происходит при отпускании кнопки указующего устройства на элементе. Этот атрибут может использоваться с большинством элементов.
onmouseover
=
Событие onmouseover происходит при перемещении указующего устройства на элемент. Этот атрибут может использоваться с большинством элементов.
onmousemove
=
Событие onmousemove происходит при перемещении указующего устройства, когда оно находится на элементе. Этот атрибут может использоваться с большинством элементов.
onmouseout
=
Событие onmouseout происходит при перемещении указующего устройства за пределы элемента. Этот атрибут может использоваться с большинством элементов.
onfocus
=
Событие onfocus происходит при получении элементом фокуса с помощью указующего устройства или последовательности перехода. Этот атрибут может использоваться со следующими элементами: , , SELECT, и .
onblur
=
Событие onblur происходит при переходе фокуса с этого элемента с помощью указующего устройства или последовательности перехода. Оно может использоваться с теми же элементами, что и onfocus.
onkeypress
=
Событие onkeypress происходит при нажатии и отпускании клавиши на элементе. Этот атрибут может использоваться с большинством элементов.
onkeydown
=
Событие onkeydown происходит при нажатии клавиши на элементе. Этот атрибут может использоваться с большинством элементов.
onkeyup
=
Событие onkeyup происходит при отпускании клавиши на элементе. Этот атрибут может использоваться с большинством элементов.
onsubmit
=
Событие onsubmit происходит при отправке формы. Оно используется только в элементе .
onreset
=
Событие onreset происходит при сбросе формы. Оно используется только в элементе .
onselect
=
Событие onselect происходит при выделении пользователем некоторого текста в текстовом поле. Этот атрибут может использоваться с элементами и .
onchange
=
Событие onchange происходит при потере управляющим элементом фокуса ввода, если его значение было изменено с момента получения фокуса. Этот атрибут используется со следующими элементами: , и .
Действие можно связать с определенным рядом событий, происходящих при взаимодействии пользователя с агентом. Значением каждого из перечисленных выше "внутренних событий" является скрипт. Этот скрипт выполняется, если это событие происходит для этого элемента. зависит от языка скрипта.
Элементы управления, такие как , , , и реагируют на внутренние события. Если они не отображаются в форме, они могут использоваться для улучшения графического интерфейса доумента.
Например, авторы могут включить в документы кнопки, которые не используются для отправки формы, но при нажатии которых происходит некоторое взаимодействие с сервером.
В следующем примере показан возможное поведение управляющего элемента и интерфейса пользователя в зависимости то внутренних событий.
В этом примере userName является обязательным текстовым полем. Если пользователь не заполняет это поле, событие onblur вызывает функцию JavaScript для проверки значения поля userName.
Вот еще один пример JavaScript:
Вот пример обработчика событий для текстового поля на языке VBScript:
Вот тот же пример с использованием Tcl:
Вот пример привязки события внутри скрипта на языке JavaScript. Для начала простой обработчик щелчка мыши:
Вот более интересный обработчик окна:
На языке Tcl это выглядит следующим образом:
Обратите внимание, что выражение "document.write" или эквивалентные выражения в обработчиках внутренних событий создают и выполняют запись в новый документ, а не изменяют текущий.
Второй шаг: Построение набора данных формы
Набор данных формы - это последовательность пар имя/, составляемых из
Введение в формы
Форма HTML - это раздел документа, в котором содержатся обычная информация, разметка и специальные элементы, называемые (флажки, кнопки с зависимой фиксацией, меню и т.д.), а также метки этих управляющих элементов. Обычно пользователи "заполняют" форму, модифицируя управляющие элементы (вводя текст, выбирая пункты меню и т.д.) перед тем, как предоставить форму агентц пользователя для обработки (например, на Web-серввер, на почтовый сервер и т.д.)
Вот простая форма, включающая метки, кнопки с зависимой фиксацией и кнопки (очистка формы или отправка):
Имя: Фамилия: Адрес электронной почты: Мужской Женский
Примечание. В данной спецификации имеется более подробная информация о формах в подразделах о .
Введение в скрипты
Клиентский скрипт - это программа, которая может сопровождать документ HTML или непосредственно быть внедренной в него. Эта программа выполняется на клиентской машине при загрузке документа или в другое время, например, когда активизируется ссылка. Поддержка скриптов в HTML не зависит от языка скрипта.
Скрипты предлагают авторам средства усиления интерактивности документов HTML. Например:
Скрипты могут оцениваться во время загрузки документа и динамически изменять содержимое документа.
Скрипты могут использоваться в форме для обработки вводимых данных. Дизайнеры могут динамически заполнять поля формы в зависимости от значений других полей. Они могут проверять, попадают ли введенные данные в предопределенный диапазон значений, соответствие полей и т.д.
Скрипты могут включаться событиями, оказывающими влияние на документ, например, загрузкой, выгрузкой, фокусом элемента, перемещением мыши и т.д.
Скрипты могут связываться с управляющими элементами формы (например, с кнопками) для представления элементов пользовательского интерфейса.
Авторы могут прикреплять к документу HTML два типа скриптов:
Скрипты, выполняющиеся один раз при загрузке документа агентом пользователя. Скрипты, описанные в элементе , выполняются при загрузке документа. Для агентов пользователя, не обрабатывающих скрипты, авторы могут определить альтернативное содержимое с помощью элемента .
Скрипты, выполняемые каждый раз, когда происходит определенное событие. Эти скрипты могут назначаться ряду элементов с помощью атрибутов внутренних событий.
Примечание.
Более подробная информация приводится в разделах о .
Заранее выбранные варианты
Варианты могут быть выбраны заранее. Агенты пользователей должны определять, какие варианты выбраны, следующим образом:
Если ни для одного элемента не установлен атрибут , ни один вариант заранее не выбран.
Если для одного элемента установлен атрибут , этот вариант должен быть выбран зарнее.
Если для элемента установлен атрибут , и для нескольких элементов установлен атрибут , они должны быть выбраны заранее.
Считается ошибкой, если для нескольких элементов установлен атрибуто , а для элемента не установлен атрибут . Агенты пользователей могут по-разному обрабатывать эту ошибку, но не должны заранее выбирать более одного варианта.
Начальный тег: обязателен , Конечный тег: обязателен
Определения атрибутов элемента OPTGROUP
label =
Метка группы вариантов.
Атрибуты, определяемые в другом месте
, ()
(), ()
()
()
() , , , , , , , , , , , ,
()
Примечание. Разработчикам рекомендуется иметь в виду, что в будущих версиях HTML механизм группировки может быть расширен для подержки вложенных групп (т.е. элементы смогут быть вложенными). Это позволит авторам представлять более сложную иерархию вариантов.
Начальный тег: обязателен , Конечный тег: optional
Определения атрибутов элемента OPTION
selected
Если этот логический атрибут установлен, этот вариант выбран заранее.
value =
Определяет управляющего элемента. Если этот атрибут не установлен, устанавливается равным содержимому элемента .
label =
Позволяет авторам определить более короткую метку для варианта, чем содержимое элемента . Если этот атрибут определен, агенты пользователей должны использовать его значение вместо содержимого элемента в качестве метки варианта.
Атрибуты, определяемые в другом месте
, ()
(), ()
()
()
() , , , , , , , , , , , ,
()
При представлении пункта меню агенты пользователей должны использовать значение атрибута элемента в качестве выбора. Если этот атрибут не определен, агенты пользователей должны использовать содержимое элемента .
Атрибут элемента определяет метку группы вариантов.
В этом примере мы создадим меню, позволяющее пользователю выбрать, какую из семи программ установить. Первая и вторая программы выбраны заранее, но пользователь может отменить их выбор. Остальные программы заранее не выбраны. Атрибут определяет, что меню должно занимать 4 строки, хотя пользователь и имеет 7 вариантов. Доступ к другим вариантам должен обеспечиваться с помощью механизма прокрутки.
За элементом следуют кнопки отправки и сброса.
Программа_1 Программа _2 Программа _3 Программа _4 Программа _5 Программа _6 Программа _7
будут только выбранные варианты (с использованием "component-select"). Обратите внимание, что, если установлено значение атрибута , оно определяет управляющего элемента, в противном случае это будет содержимое элемента.
В этом примере мы используем элемент для группировки вариантов. Следующая разметка:
PortMaster 3 и ComOS 3.7.1 PortMaster 3 и ComOS 3.7 PortMaster 3 и ComOS 3.5 PortMaster 2 и ComOS 3.7 PortMaster 2 и ComOS 3.5 IRX и ComOS 3.7R IRX и ComOS 3.5R представляет следующую группировку:
PortMaster 3 3.7.1 3.7 3.5 PortMaster 2 3.7 3.5 IRX 3.7R 3.5R
Визуальные агенты пользователей могут обеспечивать выбор в группах вариантов с помощью иерархических меню или с использованием любого другого механизма, отражающего структуру вариантов.
Графические агенты пользователей могут представлять это следующим образом:
Здесь показан элемент , представленный в виде каскадных меню. В вершине меню представлено выбранное в настоящий момент значение (PortMaster 3, 3.7.1). У пользователя имеется unfurled два каскадных меню, но он еще не выбрал новое значение (PortMaster 2, 3.7). Обратите внимание, что в каждом каскадном меню отображается метка элемента или .
О спецификации HTML 4.0
Альтернативное содержимое
Авторы должны указывать альтернативное содержимое для агентов пользователей, не поддерживающих фреймы или сконфигурированных так, чтобы не отображать их.
Цвет фона
Определение атрибутов
bgcolor =
Этот атрибут устанавливает цвет фона тела документа или ячеек таблицы.
Этот атрибут устанавливает цвет фона тела документа (элемент ) или таблицы (элементы , , , and ). В элементе могут использоваться дополнительные атрибуты для указания цвета текста.
Использование этого атрибута , вместо этого следует использовать таблицы стилей.
Длинные описания фреймов
Атрибут позволяет авторам сделать документы с использованием фреймов более доступными для людей, использующих невизуальные агенты. В этом атрибуте назначается ресурс, предоставляющий длинное описание фрейма. Авторам следует обратить внимание, что длинные описания, связанные с фреймами, прикрепляются к фрейму, а не к его содержимому. Поскольку содержимое может изменяться, исходное длинное описание, скорее всего, перестанет соответствовать содержимому фрейма. В частности, не следует включать изображение как единственное содержимое фрейма.
В следующем документе с фреймами описываются два фрейма. В левом фрейме находится содержание, а в правом сначала - изображение устрицы:
Плохо составленный документ с фреймами
Обратите внимание, что изображение включено в фрейм независимо от любого элемента HTML, так что у автора нет другой возможности указать альтернативный текст, кроме атрибута . Если содержимое правого фрейма изменится (например, пользователь выберет в содержании змею), у пользователя не будет текстового доступа к новому содержимому фрейма.
Таким образом, авторы не должны помещать изображение непосредственно в фрейм. Вместо этого изображение должно включаться в отдельный документ HTML и снабжаться там соответствующим альтернативным текстом:
Хорошо составленный документ с фреймами
Быстрая и мощная устрица Эти устрицы здорово вкусные!
Информация о стиле в заголовке: элемент STYLE
Начальный тэг: обязателен , Конечный тэг: обязателен
Определения атрибутов
type =
Этот атрибут определяет язык таблиц стилей для содержимого элемента и имеет приоритет над языком таблиц стилей, ипользуемы. Язык таблиц стилей указывается как тип содержимого (например, "text/css"). Авторы должны указать значение для этого атрибута; для него нет значения по умолчанию.
media =
Этот атрибут задает целевое устройство для информации о стиле. Это может быть один дескриптор устройства или список дескрипторов, разделенных запятыми. По умолчанию устанавливается значение "screen".
атрибуты, определяемые в другом месте
(), ()
Элемент позволяет авторам помещать правила таблиц стилей в раздел head документа. В HTML допустимо любое число элементов в разделе .
Агенты пользователей, не поддерживающие таблицы стилей или не поддерживающие определенный язык таблиц стилей, используемый в элементе , не должны показывать элемент . Ошибкой будет генерировать его содержимое как часть текста документа. Некоторые языки таблиц стилей поддерживают синтаксис для того, чтобы несоответствующим спецификации агентам пользователей.
зависит от языка таблицы стилей.
Некоторые реализации таблиц стилей могут поддерживать большее разнообразие правил для элемента , чем в атрибуте . Например, в CSS правила могу объявляться в элементе для:
Всех экземпляров определенного элемента языка HTML (например, для всех элементов , всех элементов и т.д.)
Всех экземпляров элемента HTML, принадлежащих определенному классу (т.е. для атрибута которых установлено определенное значение).
Отдельных экземпляров элемента языка HTML (т.е. для атрибута которого установлено определенное значение).
Правила приоритета и наследования правил таблиц стилей зависят от языка таблиц.
Следующее объявление CSS приводит к появлению границы вокруг всех элементов в документе и центрированию их на странице.
Чтобы указать, что эта информация о стиле должна применяться только к элементам определенного класса, можно изменить определение следующим образом:
Наш стиль влияет на этот заголовок уровня H1 А на этот заголовок наш стиль не влияет
И, наконец, для ограничения области действия информации о стиле единственным экземпляром элемента , установите атрибут :
На этот заголовок H1 стиль не влияет А на этот влияет На этот опять не влияет
Хотя информация о стиле может устанавливаться почти для всех элементов HTML, два элемента, и , особенно полезны тем, что они не накладывают никакой семантики представления (кроме ). Вместе с таблицами стилей эти элементы позволяют пользователям неограниченно расширять язык HTML, особенно при использовании атрибутов и .
В следующем примере элемент используется для установки малых прописных букв для стиля шрифта первых нескольких слов абзаца.
Первые несколько слов абзаца выделены малыми прописными буквами.
В следующем примере мы используем элемент и атрибут для установки выравнивания текста для ряда абзацев, составляющих введение в научную статью. Информация о стиле может повторно использоваться для других разделов введения путем установки атрибута в любом месте документа.
The Chieftain product range is our market winner for the coming year. This report sets out how to position Chieftain against competing products.
Chieftain replaces the Commander range, which will remain on the price list until further notice.
Элемент FRAME
]]>
Определения атрибутов
name =
Назначает имя текущему фрейму. Это имя может использоваться в качестве цели в последующих ссылках.
longdesc =
Ссылка на длинное описание фрейма. Это объявление должно дополнять краткое описание, задаваемое атрибутом , и может быть особенно полезно для невизуальных агентов пользователей.
src =
Определяет местонахождение начального содержимого фрейма.
noresize
Если этот атрибут присутствует, он сообщает агенту пользователя, что размеры фрейма изменять нельзя.
scrolling = auto|yes|no
Этот атрибут задает информацию о прокрутке фрейма. Возможные значения
auto: При необходимости предоставлять возможности прокрутки. Это значение используется по умолчанию. yes: Всегда предоставлять возможности прокрутки. no: Не предоставлять возможности прокрутки.
frameborder
= 1|0
Этот атрибут предоставляет агенту пользователя информацию о границе фрейма. Возможные значения:
1: Агент пользователя должен изобразить разделитель между этим фреймам и всеми прилежащими фреймами. Это значение используется по умолчанию. 0: Агент пользователя не должен отображать разделитель. Обратите внимание, что разделители могут все равно отображаться, если они заданы в других фреймах.
marginwidth = пикселы
Этот атрибут задает пространство, оставляемое во фрейме в качестве левого и правого полей. Значение должно превышать один пиксел. Значение по умолчанию зависит от агента пользователя.
marginheight = пикселы
Этот атрибут определяет верхнее и нижнее поля в фрейме. Значение должно превышать один пиксел. Значение по умолчанию зависит от агента пользователя.
Атрибуты, определяемые в другом месте
, () () (встроенная информация о стиле) (информация о целевом фрейме)
Элемент определяет содержимое и вид одного фрейма.
Элемент FRAMESET
]]>
Определения атрибутов
rows
=
Этот атрибут определяет расположение горизонтальных фреймов. Это разделенный запятыми список пикселов, процентов и относительных длин. По умолчанию используется 100%, что означат одну строку.
cols = =
Этот атрибут определяет расположение вертикальных фреймов. Это разделенный запятыми список пикселов, процентов и относительных длин. По умолчанию используется 100%, что означат один столбец.
Атрибуты, определяемые в другом месте
, () () (встроенная информация о стиле) , (внутренние события)
Элемент FRAMESET определяет макет основного окна пользователя в виде прямоугольных пространств.
Элемент NOFRAMES
]]>
Элемент задает содержимое, которое должно отображаться, только если не отображаются фреймы. Агенты пользователей, поддерживающие фреймы, должны отображать содержимое объявления , только если они сконфигурированы так, чтобы не отображать фреймы. Агенты пользователей, не поддерживающие фреймы, должны отображать содержимое элемента в любом случае.
Элемент можно использовать в разделе документа с фреймами.
Например:
Документс фреймами и NOFRAMES Это версия документа без фреймов.
Элементы, определяющие стиль шрифта: элементы TT, I, B, BIG, SMALL, STRIKE, S и U
Начальный тег: обязателен , Конечный тег: обязателен
Атрибуты, определяемые в другом месте
, ()
(), ()
()
()
, , , , , , , ,
()
Представления элементов, определяющих стиль шрифта, зависит от агента пользователя. Далее приведено только информативное описание.
TT: Представляется как моноширинный шрифт (шрифт пишущей машинки). I: Представляет курсивом. B: Представляется полужирным шрифтом. BIG: Представляется "крупным" шрифтом. SMALL: Представляется "малым" шрифтом. STRIKE и S: Представляет перечеркнутым шрифтом. U: Представляется подчеркнутым шрифтом.
В следующем предложении показаны несколько типов текста:
полужирный , курсив , полужирный курсив , моноширинный и большой и малый текст.
Слова будут представлены следующим образом:
С использованием таблиц стилей можно достичь большего разнообразия эффектов. Чтобы задать для абзаца синий курсив с помощью CSS, запишите:
...Текст синим курсивом...
Элементы стиля шрифта должны корректно вкладываться. Представление вложенных элементов стиля зависит от агента пользователя.
Элементы управления шрифтами: FONT и BASEFONT
Использование элементов и .
Формальное определение см. в .
Определения атрибутов
size =
Устанавливает размер шрифта. Возможные значения:
Целое число от 1 до 7. Устанавливает фиксированный размер шрифта, представление которого зависит от агента пользователя. Не все агенты пользователей могут представлять все семь размеров.
Относительное изменение размера шрифта. Значение "+1" означает на один размер больше. Значение "-3" означает шрифт на три размера меньше. Все размеры относятся к шкале от 1 до 7.
color =
Этот атрибут устанавливает цвет текста.
face =
Этот атрибут определяет список разделенных запятыми названий шрифтов, поиск которых агент пользователя должен выполнить в порядке приоритета.
Атрибуты, определяемые в другом месте
, () (), () () ()
Элемент изменяет размер и цвет шрифта для текста его содержимого.
Элемент устанавливает базовый размер шрифта (с помощью атрибута size). Изменения размера шрифта с помощью элемента производятся относительно базового размера, установленного элементом . Если элемент не используется, по умолчанию используется размер 3.
ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
В следующем примере показана разница между семью размерами шрифтов, устанавливаемых с помощью элемента :
size=1 size=2 size=3 size=4 size=5 size=6 size=7
Это может представляться следующим образом:
Далее показан пример установки относительного размера шрифта с использованием базового размера 3:
Базовый размер шрифта не применяется к заголовкам, если они не изменены с помощью элемента с указанием относительного размера шрифта.
Как добавить стиль в HTML
Примечание. В примере таблицы стилей по умолчанию для HTML 4.0, включенном в [CSS2], выражена общепринятая информация о стиле для каждого элемента. Авторы могут воспользоваться этим ресурсом.
Документы в формате HTML могут содержать правила таблиц стилей непосредственно или могут импортировать таблицы стилей.
В HTML можно использовать все языки таблиц стилей. Простого языка таблиц стилей может быть достаточно для большинства пользователей, в то время как другие языки могут подходить для более специализированных задач. В примерах в данной спецификации используется язык "Каскадные таблицы стилей" ([CSS1]), сокращенно CSS.
зависит от языка таблицы стилей.
Как скрыть информацию о стиле от агентов пользователей
Некоторые языки таблиц стилей поддерживают синтаксис, позволяющий авторам скрывать содержимое элементов от несоответствующих агентов пользователей.
В данном примере для CSS показано, как можно скрыть содержимое элементов , чтобы гарантировать, что более старые несоответствующие спецификации агенты пользователей не будут представлять их в виде текста.
Каскады таблиц стилей
Каскадные языки таблиц стилей, такие как CSS, позволяют использовать информацию о стиле из нескольких источников. Однако не все языки таблиц стилей поддерживают каскады. Чтобы определить каскад, авторы указывают последовательность элементов и/или . Каскад информации таблиц стилей производится в порядке указания элементов в разделе .
Примечание.
В данной спецификации не описано каскадирование таблиц стилей разных языков. Авторам следует избегать смешивания языков.
В следующем примере мы определяем две альтернативные таблицы стилей с именем "compact". Если пользователь выбирает стиль "compact", агент пользователя должен применять обе внешние таблицы, а также постоянную таблицу "common.css". Если пользователь выбирает стиль "big print", применяться будут только альтернативная таблица "bigprint.css" и постоянная таблица "common.css".
Вот пример каскада, в котором задействованы оба элемента - и .
Каскады, зависящие от устройств
Каскад может включать таблицы стилей, применяемые к различным устройствам. Элементы и могут использоваться с атрибутом . Агент пользователя несет ответственность за отфильтровывание таблиц стилей, не применяющихся к текущему устройству.
В следующем примере мы определяем каскад, в котором таблица стилей "corporate" представляется в нескольких версиях: одна для печати, другая для экранного представления, третья для речевых браузеров (полезная, например, при чтении электронной почты в машине). Таблица "techreport" применяется ко всем устройствам. Цветная rule, определяемая элементом , используется для печати и для экрана, но не для звукового представления.
Наследование и каскады
Если агент пользователя собирается представлять документ, ему необходимо найти значения для свойств стиля, например, семейство шрифтов, начертание, размер шрифта, длину строки, цвет текста и т.д. Точный механизм зависит от языка таблиц стилей, но в общем применяется следующее:
Механизм каскадирования используется, если к элементу применяется ряд правил стиля. Этот механизм позволяет агенту пользователя сортировать правила по специфичности и определять, какое правило нужно применить. Если правило невозможно найти, следующий шаг зависит от наследования свойства. Не все свойства могут наследоваться. Для этих свойств язык таблиц стилей обеспечивает значения по умолчанию для использования в случае отсутствия явных правил для конкретного элемента.
Если свойство может наследоваться, агент пользователя проверяет непосредственно элемент, в который вложен текущий элемент, и ищет правило, применяющееся к нему. Этот процесс продолжается до тех пора, пока применимое правило не будет обнаружено. Этот механизм обеспечивает компактное задание таблиц стилей. Например, авторы могут указать семейство шрифтов для всех элементов в разделе с помощью одного правила для элемента .
Обтекание объекта текстом
Другой атрибут, определенный для элемента , управляет обтеканием текста вокруг прикрепленных объектов.
Определения атрибутов
clear = none|left|right|all
Определяет, где в визуальном браузере должна появиться следующая за переводом строки, вызванном этим элементом, строка. Этот атрибут учитывает прикрепляемые объекты (изображения, таблицы и т.д.). Возможные значения:
none: Следующая строка начинается обычным образом. Это значение используется по умолчанию.
left: Следующая строка начнется на ближайшей строке под прикрепленным объектом у левого поля.
right: Следующая строка начнется на ближайшей строке под прикрепленным объектом у правого поля.
all: Следующая строка начнется на ближайшей строке под прикрепленным объектом у любого поля.
Рассмотрим следующий визуальный сценарий, в котором обтекание текстом производится справа от изображения до разрыва строки с помощью :
**************** ------- | | ------- | изображение | -- | | ****************
Если для атрибута установлено значение none, строка, следующая за , начнется сразу же за ним справа от изображения:
*************** ------- | | ------- | изображение | -- | | ------ ***************
ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
Если для атрибута установлено значение left или all, следующая строка будет отображаться так:
*************** ------- | | ------- | изображение | -- | | *************** -----------------
С помощью таблиц стилей Вы можете задать подобное поведение для всех концов строк для всех объектов (изображений, таблиц и т.д.), прикрепленных к левому полю. С использованием CSS Вы можете достичь этого эффекта следующим образом:
Чтобы определить такое поведение только для определенных экземпляров элемента , следует использовать атрибут :
...
... *********** ------- | | ------- | таблица | -- | | *********** ----------------- ...
Определение цели фрейма
Примечание.
О том, как сейчас принято определять цель фрейма, Вы можете узнать в в приложении.
Определения атрибутов
target =
Задает имя фрейма, в котором должен открываться документ.
Назначая фрейму имя с помощью атрибута , авторы могут ссылаться на него как на "target" для ссылок, определяемый другими элементами. Атрибут может устанавливаться для элементов, создающих ссылки (, ), навигационных карт () и форм ().
Информацию о рспознаваемых именах фреймов Вы можете найти в разделе о .
В этом примере показано, как цели обеспечивают динамическое изменение содержимого фрейма. Сначала определим набор фреймов в показанном здесь документе frameset.html:
Документ с фреймами
Затем в файле init_dynamic.html мы будем ссылаться на фрейм с именем "dynamic".
Документ с якорями с определенными целями ...начало документа...
Теперь можно перейти к слайду 2. ...продолжение документа...
Все отлично. Переходим к слайду 3.
Активизация любой из ссылок приведет к открытию нового документа в фрейме с именем "dynamic", в то время как в другом фрейме, "fixed", сохраняется исходное содержимое.
Примечание. Определение набора фреймов никогда не изменяется, но содержимое одного из фреймов может изменяться. При изменении исходного содержимого одного из фреймов определение набора фреймов более не отражает текущего состояния фреймов.
В настоящий момент невозможно кодировать полностью состояние набора фреймов в URI. Таким образом, многие агенты пользователей не позволяют пользователям вносить наборы фреймов в закладки.
Наборы фреймов могут затруднять переход вперед или назад по списку просомтренных в агенте пользователя страниц.
Предпочитаемые и альтернативные таблицы стилей
HTML позволяет авторам связывать с документом любое число внешних таблиц стилей. Язык таблиц стилей определяет взаимодействие нескольких внешних таблиц стилей (например, правила "каскадов" CSS).
Авторы могут указать ряд взаимоисключающих таблиц стилей, называемых альтернативными. Пользователи могут выбирать таблицы, которые им больше нравятся. Например, автор может указать один стиль для небольших экранов, другой - для слабовидящих пользователей (например, с использованием крупного шрифта). Агенты пользователей должны предоставлять пользователям возможности выбора одной из альтернативных таблиц.
Автор может указать, что одна из альтернатив является предпочтительной. Агенты пользователей должны применять предпочитаемые автором таблицы стилей, если пользователь не выбрал другую альтернативу.
Авторы могут сгруппировать несколько альтернативных таблиц стилей (включая предпочитаемые автором) под одним именем стиля. Если пользователь выбирает именованный стиль, агент пользователя должен применять все таблицы стилей с этим именем. Агенты пользователей не должны применять альтернативные таблицы стилей с другим именем стиля. Как присвоить имя группе стилей, описано в разделе об .
Авторы также могут указать постоянные таблицы стилей, которые агенты пользователей должны применять в дополнение к альтернативным таблицам стилей.
При применении таблицы стилей агенты пользователей должны учитывать .
Агенты пользователей также должны позволять пользователям полностью отключать таблицы стилей автора; в этом случае агент пользователя не должен применять ни одну из таблиц стилей.
Прикрепление объекта
Атрибут для объектов, изображений, таблиц, фреймов и т.д. приводит к тому, что объект прикрепляется к левому или правому краю. Обычно прикрепляемые объекты располагаются с новой строки. Для этого атрибута могут устанавливаться следующие значения:
left: Объект прикрепляется к текущему левому полю. Последующий текст обтекает изображение справа.
right: Объект прикрепляется к текущему правому полю. Последующий текст обтекает изображение слева.
ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
В следующем примере показано, как прикрепить элемент к левому полю.
Некоторые атрибуты выравнивания допускают значение "center", который не прикрепляет объект, но центрирует его относительно текущих полей. Однако для элементов и значение "center" приводит к центрированию содержимого элемента.
Прикрепляемые объекты
Изображения и объекты могут быть "встроенными" или прикрепляться к краю страницы, временно изменяя поля текста с учетом объекта.
Привязка таблиц стилей с помощью заголовков HTTP
Менеджеры Web-серверов могут сконфигурировать сервер таким образом, чтобы таблица стилей применялась к группе страниц. Заголовок HTTP Link, описанный в [RFC2068], раздел 19.6.1.2, действует так же, как элемент , с теми же атрибутами и значениями. Несколько заголовков Link соответствуют нескольким элементам в том же порядке. Например,
Link: ; REL=stylesheet
соответствует:
Можно задать несколько альтернативных стилей с помощью нескольких заголовков Link, а затем использовать атрибут для определения стиля по умолчанию.
В следующем примере стиль "compact" применяется по умолчанию, поскольку в нем отсутствует ключевое слово "alternate" для атрибута .
Link: ; rel="stylesheet"; title="compact" Link: ; rel="alternate stylesheet"; title="big print"
Это работает и при отправке документов HTML по электронной почте. Некоторые агенты электронной почты могут изменять порядок заголовков [RFC822]. Чтобы защитить стиль от изменения порядка каскадов для таблиц, задаваемых заголовками Link, авторы могут использовать объединение заголовков для объединения нескольких экземпляров одного и того же поля заголовка. Кавычки необходимы только в случае, если значения атрибутов включают пробелы. Используйте SGML entities для ссылок на символы, недопустимые в заголовках HTTP или электронной почты или символов, которые могут быть изменены при передаче через шлюзы.
Элементы и , implied заголовками HTTP, определяются как встреченные раньше явного элемента and а разделе документа.
Расположение фреймов
Документ HTML, в котором описывается компоновка фреймов (называемый документом с фреймами), выглядит не так, как документ HTML без фреймов. Стандартный документ имеет один раздел и один раздел . Документ с фреймами имеет раздел и раздел , который заменяет раздел .
В разделе задается расположение фреймов в основном окне агента пользователя. Кроме того, в разделе может присутствовать элемент с для агентов пользователей, не поддерживающих фреймы или сконфигурированных так, чтобы их не показывать.
Элементы, обычно помещаемые в раздел , не должны присутствовать до первого элемента , иначе элемент будет игнорироваться.
Разделение данных между фреймами
Авторы могут разделять данные между несколькими фреймами, включая эти данные с помощью элемента . Элемент следует включать в элемент документа с фреймами и давать ему имя с помощью атрибута . Любой документ, являющийся содержимым фрейма, может ссылаться на этот идентификатор.
В следующем примере показано обращение скрипта к элементу , определенному для всего набора фреймов:
Это набор фреймов с элементом OBJECT в разделе HEAD
Страница Бьянки ...начало документа...
...продолжение документа...
Разделители: элемент HR
>
Начальный тег: обязателен , Конечный тег: запрещен
Определения атрибутов
align = left|center|right
Этот атрибут определяет горизонтальное выравнивание разделителя относительно окружающего контекста. Возможные значения:
left: разделитель выровнен по левому краю. center: разделитель выровнен по центру. right: разделитель выровнен по правому краю.
По умолчанию используется align=center.
Нежелателен.
Если этот атрибут установлен, он предлагает агенту пользователю представлять разделитель сплошным цветом, а не обычным двухцветным стилем.
size = пикселы [CI]
Нежелателен.
Этот атрибут задает высоту разделителя. Значение по умолчанию зависит от агента пользователя.
width = length [CI]
Нежелателен.
Этот атрибут задает ширину разделителя. По умолчанию используется 100%, т.е. вся ширина страницы.
Атрибуты, определяемые в другом месте
, () (), () () () , , , , , , , , ,
() ()
Элемент приводит к генерации горизонтального разделителя визуальными агентами пользователей.
Высота пустого пространства между разделителем и текстом зависит от агента пользователя.
ПРИМЕР НЕДОПУСТИМОГО ИСПОЛЬЗОВАНИЯ: В этом примере разделители центрируются, а их размер устанавливается в половину ширины между полями. Верхний разделитель имеет толщину по умолчанию, а для нижнего установлена толщина 5 пикселов. Нижний разделитель должен представляться сплошным цветом без тени:
Эти разделители могут представляться следующим образом:
Семантика целей
Агенты пользователей должны определять целевой фрейм, в который должен загружаться связанный ресурс в соответствии со следующими приоритетами (от высшего к низшему):
Если в элементе установлен атрибут и используется известный фрейм, при активизации элемента (то есть щелчке на ссылки или обработке формы) назначаемый элементом ресурс должен загружаться в указанном целевом фрейме.
Если для элемента не установлен атрибут , а в элементе он установлен, фрейм определяется атрибутом элемента .
Если ни в самом элементе, ни в элементе цель не указана, назначенный элементом ресурс должен загружаться во фрейм, в котором содержится сам элемент.
Если в атрибуте указан неизвестный фрейм F, агент пользователя должен создать новое окно и фрейм, назначить фрейму имя F и загрузить назначаемый элементом ресурс в новый фрейм.
Агенты пользователей могут обеспечивать для пользователей механизм переопределения атрибута .
Шрифты
Следующие элементы HTML определяют информацию о шрифтах. Хотя не все они , рекомендуется использовать вместо них таблицы стилей.
Строки и столбцы
Установка атрибута определяет число горизонтальных отрезков пространства в наборе фреймов. Устанвока атрибута определяет число вертикальных отрезков. Для создания сетки можно установить оба атрибута одновременно.
Если атрибут не установлен, каждый столбец занимает всю длину страницы. Если атрибут не установлен, каждая строка занимает всю ширину страницы. Если не установлен ни один из этитх атрибутов, фрейм занимает всю страницу.
Фреймы создаются в направлении слева направо для столбцов и сверху вниз для строк. Если указаны оба атрибута, разделы окон создаются слева направо в верхней строке, слева направо во второй строке и т.д.
В первом примере экран разделяется горизонтально на две части (то есть создаются верхняя и нижняя части).
...продолжение определения...
В следующем примере создается три столбца: второй имеет фиксированную ширину 250 пикселов (это полезно, например, для представления изображения известной ширины). Первый фрейм получает 25% оставшегося пространства, а третий - 75%.
...продолжение определения...
В следующем примере создается сетка 2x3.
...продолжение определения...
Для следующего примера предположим, что окно браузера имеет высоту строго 1000 пикселов. Первый раздел получает 30% общей высоты (300 пикселов). Второй имеет высоту ровно 400 пикселов. Остается 300 пикселов на два другие фрейма. Для четвертого фрейма задана высота "2*", так что он должен быть вдвое выше третьего, для которого заданы высота "*" (эквивалентно 1*). Таким оразом, третий фрейм будет иметь высоту 100 пикселов, а четвертый - 200.
...продолжение определения...
Абсолютные длины, если они не дают в сумме 100% реально доступного пространства, должны корректироваться агентом пользователя. Если указана длина менее фактической, оставшееся пространство должно равномерно распределяться между всеми разделами. Если указана длина, превышающая фактическую, каждый раздел должен уменьшаться в зависимости от того, какую часть пространства он занимает.
Типы устройств
HTML позволяет авторам создавать документы, использующие характеристики устройства, на котором будет представляться документ (например, графические дисплеи, телевизионные экраны, переносные устройства, речевые браузеры, тактильные устройства на базе азбуки Бройля и т.д.). С помощью атрибута авторы могут позволить агентам пользователей загружать и применять таблицы стилей выборочно. См. список распознаваемых дескрипторов устройств.
Объявления в следующем примере применяются к элементам . При показе на проекторе во время встречи все экземпляры будут отображаться синим цветом. При печати они будут отцентрированы.
Этот пример добавляет звуковые эффекты для устройства речевого вывода:
Управление устройствами особенно интересно при использовании с внешними таблицами стилей, поскольку агенты пользователей могут сэкономить время, загружая из сети только таблицы стилей, применяющиеся к текущему устройству. Например, речевые браузеры могут не загружать таблицы стилей, разработанные для визуального представления. Подробнее см. в разделе .
Указание внешних таблиц стилей
Авторы указывают внешние таблицы стилей с помощью атрибутов элемента :
Установите в атрибуте местоположение файла таблицы стилей. Значением атрибута должен быть . Установите для атрибута type значение, указывающее язык связанного ресурса (таблицы стилей). Это позволяет агентам пользователей не загружать таблицы стилей, использующие неподдерживаемые языки. Укажите, является ли таблицы стилей постоянно, предпочитаемой или альтернативной:
Чтобы таблицы была постоянной, установите для атрибута значение "stylesheet", и не устанавливайте атрибут . Чтобы таблица была предпочитаемой, установите для атрибута значение "stylesheet", и дайте таблице имя с помощью атрибута . Чтобы указать альтернативную таблицу, установите для атрибута значение "alternate stylesheet" а дайте таблице имя с помощью атрибута .
Агенты пользователей должны обеспечивать пользователям средства просмотра и выбора таблицы стилей из списка альтернатив. Для атрибута рекомендуется устанавливать значение, которое будет представлять эту таблицу в списке.
В этом примере мы сначала определяем постоянную таблицу стилей, находящуюся в файле mystyle.css:
Установка атрибута назначает ее предпочитаемой автором таблицей:
Добавление ключевого слова "alternate" а атрибут сделает ее альтернативной таблицей стилей:
Подробнее о внешних таблицах стилей Вы можете узнать в разделе о
Авторы также могут использовать для установки предпочитаемой таблицы стилей элемент META. Например, чтобы установить предпочитаемую таблицу стилей "compact" (см. предыдущий пример), авторы могут включить в элемент следующую строку:
Предпочитаемую таблицу стилей можно также указать с помощью заголовков HTTP. Объявление выше эквивалентно заголовку HTTP:
Default-Style: "compact"
Если предпочитаемая таблица стилей указывается двумя или более элементами или заголовками HTTP, преимущество имеет последнее объявление. Считается, что заголовки HTTP обрабатываются раньше, чем объявления .
Если предпочитаемая таблица стилей задается двумя или более элементами , преимущество имеет первая.
Предпочитаемые таблицы стилей, задаваемые с помощью или заголовков HTTP имеют преимущество над таблицами, задаваемыми элементом .
Установка цели по умолчанию для ссылок
Если во многих ссылках в документе используется одна и та же цель, можно указать ее один раз и использовать везде с помощью атрибута каждого элемента. Это делается с помощью утсановки атрибута элемента .
Вернемся к предыдущему примеру и определим информацию о цели в элементе и удалим ее из элементов .
Документ с определением цели в элементе BASE ...начало документа...
Теперь Вы можете перейти к слайду 2. ...продолжение документа...
Все отлично. Переходим к слайду 3.
Установка языка таблицы стилей по умолчанию
Авторы должны указывать язык таблицы стилей для информации о стиле, связанной с документом HTML.
Для установки языка таблицы стилей для документа по умолчанию следует использовать элемент . Например, чтобы установить по умолчанию язык CSS, следует поместить в раздел следующее объявление:
зык таблиц стилей по умолчанию можно также установить с помощью заголовков HTTP. Показанное выше объявление с использованием тэга эквивалентно заголовку HTTP:
Content-Style-Type: text/css
Агенты пользователей должны определять язык таблиц стилей по умолчанию для документа в соответствии со следующими шагами (от высшего приоритета к низшему):
Если в объявлении задается "Content-Style-Type", язык таблиц стилей определяет последнее объявление в потоке символов. В противном случае, если "Content-Style-Type" задается в заголовках HTTP, язык таблиц стилей определяет последний заголовок в потоке символов. В противном случае по умолчанию используется язык "text/css".
Документы, включающие элементы, в которых устанавливается атрибут , но не определяется язык таблиц стилей по умолчанию, являются некорректными. Средства разработки должна генерировать информацию о языке таблиц стилей по умолчанию (обычно с помощью объявлений ), чтобы агенты пользователей не полагались на язык по умолчанию "text/css".
Визуальное представление фрейма
В следующем примере показано использование декоративных атрибутов . Фрейм 1 не должен содержать полос прокрутки. В фрейме 2 вокруг содержимого (изображения) останется пустое пространство, и размер фрейма нельзя будет изменять. Между фреймами 3 и 4 не будет границы. Границы (по умолчанию) будут присутствовать между фреймами 1, 2 и 3.
Документ с фреймами
Вложенные наборы фреймов
Число уровней вложенности фреймов не ограничено.
В следующем примере внешний элемент разделяет доступное пространство на три равных столбца. Внутренний элемент разделяет вторую область на две строки неравной высоты.
...содержимое первого фрейма...
...содержимое второго фрейма, первая строка...
...содержимое второго фрейма, вторая строка...
...содержимое третьего фрейма...
Внешние таблицы стилей
Авторы могут отделять таблицы стилей от документов HTML. Это дает следующие преимущества:
Авторы и менеджеры Web-сайтов могут совместно использовать таблицы стилей в ряде документов (и сайтов). Авторы могут изменять таблицы стилей без изменения документа. Агенты пользователей могут загружать таблицы стилей выборочно (в зависимости от описаний устройств).
Встроенная информация о стиле
Определения атрибутов
style =
Этот атрибут определяет информацию о стиле текущего элемента.
style Атрибут style определяет информацию о стиле одного элемента. Язык таблиц стилей встроенных правил стиля определяется . зависит от языка таблиц стилей.
В данном примере устанавливается информация о цвете и размере шрифта текста определенного абзаца.
Что за прелесть эти таблицы стилей!
В CSS объявления свойств имеют форму "имя : значение" и разделяются точкой с запятой.
Атрибут может использоваться для применения определенного стиля к отдельному элементу HTML. Если стиль повторно используется для нескольких элементов, авторы должны использовать элемент STYLE для перегруппировки этой информации. Для оптимальной гибкости авторам следует определять стили во внешних таблицах стилей.
Встроенные фреймы : элемент IFRAME
Определения атрибутов
longdesc =
Этот атрибут определяет ссылку на длинное описание фрейма. Это описание должно дополнять краткое описание, задаваемое атрибутом , и особенно полезно для невизуальных агентов пользователей.
name =
Этот атрибут назначает имя текущего фрейма. Имя может использоваться в качестве цели в ссылках.
width =
Длина встроенного фрейма.
height
=
Высота встроенного фрейма.
Атрибуты, определяемые в другом месте
, () () () , , , , , (frame controls and decoration) () ()
Элемент позволяет авторам вставлять фрейм в блок текста. Вставка встроенного фрейма в раздел текста скорее похожа на вставку объекта с помощью элемента : оба они позволяют Вам вставить один документ HTML в другой, оба могут выравниваться относительно окружающего текста и т.д.
Встраиваемая инфомрация назначается атрибутом этого элемента. Содержимое элемента , с другой стороны, должно отображаться только агентами пользователей, не поддерживающими фреймы или сконфигурированными так, чтобы не поддерживать их.
Для поддерживающих фреймы агентов пользователей в следующем примере в текст будет помещен отделенный границей встроенный фрейм.
Изменять размер встроенных фреймов нельзя (и поэтому у них нет атрибута ).
Примечание. Документы HTML могут также внедряться в другие документы HTML с помощью элемента . Подробнее см. в разделе о внедренных документах.
Введение в фреймы
Фреймы в HTML позволяют авторам представлять документы в нескольких разделах, которые могут быть независимыми или вложенными окнами. Это обеспечивает дизайнерам способ оставлять некоторую информацию видимой, в то время как другая информация прокручивается или заменяется. Например, в одном окне в одном фрейме может отображаться статический баннер, во втором навигационное меню, а в третьем - сам документ, который можно прокручивать или переходить к другому с помощью навигации во втором фрейме.
Вот простой документ с использованием фреймов:
Простой документ с фреймами В этом документе содержится: Миленький текстик Еще славный текстик
это может привести примерно к следующей структуре экрана:
--------------------------------------- | | | | | | | Фрейм 1 | | | | | | | | |---------| | | | Фрейм 3 | | | | | | | | | | | Фрейм 2 | | | | | | | | | | | | | | ---------------------------------------
Если агент пользователя не может представлять фреймы или сконфигурирован так, чтобы не делать этого, он должен генерировать содержимое элемента .
Введение в таблицы стилей
Таблицы стилей представляют наибольшее достижение для дизайнеров Web-страниц, расширяя возможности улучшения внешнего вида страниц. В научных средах, в которых и зародилась Web, люди более сосредоточены на содержании документов, нежели на их представлении. По мере открытия Web прочими людьми ограничения HTML стали источником разочарований, и авторам пришлось уклоняться от стилистических ограничений HTML. Хотя намерения и были добрыми - улучшение представления Web-страниц, -- технологии имели нежелательные побочные эффекты. Эти технологии работали только для некоторых, только иногда, но не для всех и не всегда. Сюда включаются:
Использование собственных расширений HTML Преобразование текста в изображения Использование изображений для управления пустым пространством Использование таблиц для размещения объектов на станице Написание программ вместо использования HTML
Эти технологии существенно усложняют Web-страницы, ограничивают гибкость, создают проблемы взаимодействия и создают сложности для людей с физическими недостатками.
Таблицы стилей решают эти проблемы, одновременно превосходя ограниченные механизмы представления в HTML. Таблицы стилей упрощают определение интервалов между строками текста, отступов, цветов, используемых для текста и фона, размера и стиля шрифтов и другой информации .
Например, следующая таблица стилей CSS (хранящаяся в файле "special.css") зеленый устанавливает цвет текста абзаца и окружает его сплошной красной рамкой:
P.special { color : green; border: solid red; }
Авторы могут связывать таблицы стилей с исходным документом HTML с помощью элемента :
В этом абзаце текст должен быть зеленым.
HTML 4.0 обеспечивает поддержку следующих функций таблиц стилей:
Гибкое размещение информации о стиле
Помещение таблиц стилей в отдельные файлы упрощает их повторное использование. Иногда полезно включать инструкции по представлению в документ, к которому они применяются, в начало документа или в атрибуты элементов в теле документа. Для упрощения управления стилем сайта в данной спецификации описывается использование заголовков HTTP для установки таблиц стилей, применяемых к документу.
Независимость от языков таблиц стилей
Данная спецификация не привязывает HTML к конкретному языку таблиц стилей. Это позволяет использовать широкий диапазон таких языков, например, простые языки для большинства пользователей и более сложные для более специализированных случаев. Во всех примерах, приведенных ниже, используется язык CSS (Каскадные таблицы стилей) [CSS1], но можно использовать и другие языки.
Каскады
Эта возможность обеспечивается некоторыми языками таблиц стилей, такими как CSS, для объединения информации о стиле из нескольких источников. Это может быть, например, корпоративные положения о стиле, стили, общие для группы документов, а также стили, специфичные для одного документа. С использованием раздельного хранения эти таблицы стилей могут использоваться повторно, что упрощает работу авторов и повышает эффективность сетевого кэширования. Каскад определяет упорядоченную последовательность таблиц стилей, в которой правила более поздних таблиц имеют приоритет над более ранними. Не все языки таблиц стилей поддерживают каскады.
Зависимость от устройств
HTML позволяет авторам разрабатывать документы независимо от устройств. Это позволяет пользователям обращаться к Web-страницам с использованием различных устройств, например, графических дисплеев для компьютеров под управлением Windows, Macintosh OS и X11, телевизионных устройств, специальным образом адаптированных телефонов и портативных устройств на базе PDA, речевых браузеров и тактильных устройств на базе азбуки Бройля.
Таблицы стилей, напротив, применяются к конкретным устройствам или группам устройств. Таблица стилей, предназначенная для экрана, может применяться при печати, но бесполезна для речевых браузеров. Данная спецификация позволяет Вам определить широкие категории устройств, к которым применяется конкретная таблица стилей. Это позволяет агентам пользователей избежать загрузки ненужных таблиц стилей. Языки таблиц стилей могут включать функции описания зависимости от устройств в одной таблице.
Альтернативные стили Авторы могут предлагать читателям несколько способов просмотра документа. Например, таблица стилей для представления компактных документов с мелким шрифтом, или таблица, задающая крупные шрифты для удобства чтения. Данная спецификация позволяет авторам указать предпочитаемую таблицу стилей, а также альтернативные таблицы для определенных пользователей или устройств. Агенты пользователей должны предоставлять пользователям возможность выбора одной из альтернативных таблиц или отключать все таблицы стилей.
Вопросы производительности
Некоторые пользователи высказывали сомнения относительно скорости работы таблиц стилей. Например, загрузка внешней таблицы стилей может привести к задержке общего представления материала для пользователя. Подобные ситуации возникают и в том случае, если в заголовок документа включен длинный набор правил относительно стиля.
Эти проблемы решаются путем предоставления авторам возможности включать инструкции по представлению в каждый элемента HTML. Благодаря этому информация о представлении всегда доступна ко времени представления элемента агентом пользователя.
Во многих случаях авторы воспользуются преимуществами использования общей таблицы стилей для группы документов. В этом случае распределение правил стиля в документе приведет к снижению производительности по сравнению с использованием связанной таблице стилей, поскольку для большинства документов таблицы стилей уже будет находиться в локальном кэше. К этому эффекту приведет общедоступность хороших таблиц стилей.
Выравнивание, стили шрифтов и горизонтальные разделители
В этом разделе спецификации обсуждаются некоторые элементы и атрибуты языка HTML, которые могут использоваться для визуального форматирования элементов. Многие из них являются .
Выравнивание
Выравнивать блочные элементы (таблицы, изображения, объекты, абзацы и т.д.) можно с помощью атрибута . Хотя этот атрибут может устанавливаться для многих элементов HTML, диапазон его возможных значений в разных элементах может быть различным. Здесь обсуждается только значение атрибута align для текста.
Определения атрибутов
align = left|center|right|justify
Этот атрибут задает горизонтальное выравнивание своего элемента относительно окружающего контекста. Возможные значения:
left: строки текста выравниваются по левому краю. center: строки текста выравниваются по центру. right: строки текста выравниваются по правому краю. justify: строки текста выравниваются по обоим краям.
Значение по умолчанию зависит от общего направления текста. Для текста, направленного слева направо, по умолчанию используется значение align=left, я для текста, направленного справа налево - .
ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
В данном примере заголовок центрируется.
How to Carve Wood
С использованием CSS, например, Вы можете достичь того же эффекта следующим образом:
How to Carve Wood How to Carve Wood
Обратите внимание, что будут выровнены все объявления . Вы можете ограничить область действия стиля, установив атрибут :
How to Carve Wood How to Carve Wood
ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
Аналогично, чтобы выровнять абзац по правому краю с помощью атрибута HTML Вы можете записать:
...Текст абзаца...
а с использованием CSS:
How to Carve Wood ...Текст абзаца...
ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
Чтобы выровнять по правому краю ряд абзацев, сгруппируйте их с помощью элемента :
...текст первого абзаца...
...текст второго абзаца...
...текст третьего абзаца...
С использованием CSS свойство выравнивания текста наследуется от родительского элемента, поэтому Вы можете использовать:
How to Carve Wood ...текст первого абзаца...
...текст второго абзаца...
...текст третьего абзаца...
Чтобы отцентрировать с использованием CSS весь документ:
How to Carve Wood ...тело документа отцентрировано...
Использование элемента CENTER абсолютно эквивалентно использованию элемента с атрибутом , для которого установлено значение "center". Использование элемента .
Задание исходного содержимого фрейма
Атрибут определяет исходный документ, содержащийся в фрейме.
В следующем примере документа HTML:
Документ с фреймами
должна создаваться примерно следующая страница:
------------------------------------------ |Фрейм 1 |Фрейм 3 |Фрейм 4 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -------------| | | |Фрейм 2 | | | | | | | | | | | ------------------------------------------
а агент пользователя должен загружать каждый файл в отдельный раздел.
Содержимое фрейма и его определение не должны находиться в одном документе.
ПРИМЕР НЕДОПУСТИМОГО ИСПОЛЬЗОВАНИЯ:
Следующее определение фреймов не является допустимым в HTML, поскольку содержимое второго фрейма находится в документе, описывающем набор фреймов.
Документ с фреймами ...некоторый текст...
...некоторый текст...
О спецификации HTML 4.0
Объявление SGML
С поддержкой первых 17 уровней ISO 10646 и увеличенной длиной тегов и литералов и т.д. --
CHARSET BASESET "ISO Registration Number 177//CHARSET ISO/IEC 10646-1:1993 UCS-4 with implementation level 3//ESC 2/5 2/15 4/6" DESCSET 0 9 UNUSED 9 2 9 11 2 UNUSED 13 1 13 14 18 UNUSED 32 95 32 127 1 UNUSED 128 32 UNUSED 160 55136 160 55296 2048 UNUSED -- SURROGATES -- 57344 1056768 57344
CAPACITY SGMLREF TOTALCAP 150000 GRPCAP 150000 ENTCAP 150000
SCOPE DOCUMENT SYNTAX SHUNCHAR CONTROLS 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127 BASESET "ISO 646IRV:1991//CHARSET International Reference Version (IRV)//ESC 2/8 4/2" DESCSET 0 128 0
FUNCTION RE 13 RS 10 SPACE 32 TAB SEPCHAR 9
NAMING LCNMSTRT "" UCNMSTRT "" LCNMCHAR ".-_:" UCNMCHAR ".-_:" NAMECASE GENERAL YES ENTITY NO DELIM GENERAL SGMLREF SHORTREF SGMLREF NAMES SGMLREF QUANTITY SGMLREF ATTCNT 60 -- увеличено -- ATTSPLEN 65536 -- максимальные значения -- LITLEN 65536 -- допускается в объявлении -- NAMELEN 65536 -- избегайте фиксированных ограничений -- PILEN 65536 -- в реализации агентов пользователей HTML -- TAGLVL 100 TAGLEN 65536 GRPGTCNT 150 GRPCNT 64
FEATURES MINIMIZE DATATAG NO OMITTAG YES RANK NO SHORTTAG YES LINK SIMPLE NO IMPLICIT NO EXPLICIT NO OTHER CONCUR NO SUBDOC NO FORMAL YES APPINFO NONE >
Определение типа документа (Document Type Definition)
-->
-->
-->
-->
-->
-->
]]>
>
Определение типа документов с фреймами (Frameset Document Type Definition)
... ... -->
%HTML4.dtd;
Переходное определение типа документа (Transitional Document Type Definition)
... ...
URI, используемый как идентификатор системы, позволяет агенту пользователя загрузить необходимые DTD и наборы комбинаций.
FPI для Strict HTML 4.0 DTD:
"-//W3C//DTD HTML 4.0//EN"
его URI:
http://www.w3.org/TR/REC-html40/strict.dtd
Авторы должны использовать Strict DTD, если только им не нужно использовать управление представленим для агентов пользователей, не поддерживающих (адекватынм образом) таблицы стилей.
Если Вы создаете документ с фреймами, используйте следующий FPI:
"-//W3C//DTD HTML 4.0 Frameset//EN"
и URI:
http://www.w3.org/TR/REC-html40/frameset.dtd
По отношению к HTML 4.0 поддерживаются следующие URI
"" (Strict DTD) "" (Loose DTD) "" (Frameset DTD) "" (Latin-1 entities) "" (Symbol entities) "" (Special entities)
Эти URI указывают на последнюю версию каждого файла. Для ссылки на специальную версию используйте следующие URI:
"" "" "" "" "" ""
-->
-->
-->
-->
-->
-->
-->
]]>
(left|center|right) #IMPLIED () #IMPLIED #IMPLIED #IMPLIED >
]]>
]]>
]]>
]]>
>
Пример каталога SGML
В этот каталог включаются заменяющие директивы, гарантирующие, что для обрабатывающего программного обеспечения, такого как nsgmls, общие идентификаторы будут иметь приоритет над системными. Это означает, что пользователи не обязательно должны быть подключены к Web при загрузке системных идентификаторов на базе URI.
OVERRIDE YES
PUBLIC "-//W3C//DTD HTML 4.0//EN" strict.dtd PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" loose.dtd PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" frameset.dtd PUBLIC "-//W3C//ENTITIES Latin1//EN//HTML" HTMLlat1.ent PUBLIC "-//W3C//ENTITIES Special//EN//HTML" HTMLspecial.ent PUBLIC "-//W3C//ENTITIES Symbols//EN//HTML" HTMLsymbol.ent
Проверка корректности документа
Многие авторы проверяют свои документы в ограниченном наборе браузеров, считая, что, если эти браузеры могут представить их документ, то документ является допустимым. К сожалению, это весьма неэффективное средство проверки документов, поскольку браузеры разработаны так, чтобы поддерживать и некорректные документы, представляя их настолько хорошо, насколько это возможно.
Для проверки корректности следует проверять документы с помощью грамматического анализатора SGML типа nsgmls (см. ), чтобы убедиться в их соответствии HTML 4.0 DTD. Если объявление типа Вашего документа включает URI, а синтаксический анализатор SGML поддерживает такой тип системных идентификаторов, он получит DTD прямо. В противном случае Вы можете использовать примерный каталог SGML. Предполагается, что DTD сохранено в виде файла "strict.dtd", а комбинации находятся в файлах "HTMLlat1.ent", "HTMLsymbol.ent" и "HTMLspecial.ent". В любом случае убедитесь, что синтаксический анализатор SGML поддерживает Unicode. Подробнее см. в документации по утилите для проверки корректности.
Помните, что несмотря на то, что такая проверка полезна и настоятельно рекомендуется, она не гарантирует полного соответствия документа спецификации HTML 4.0. Причина заключается в том, что синтаксический анализатор SGML использует только данное DTD SGML, в котором не отражены все аспекты корректного документа HTML 4.0. В частности, синтаксический анализатор SGML гарантирует корректность синтаксиса, структуры, списка элементов и их атрибутов. Но он не может отследить, например, такие ошибки как установка недопустимого значения атрибута элемента (например, "foo" или "12.5"). Хотя в данной спецификации значение этого атрибута ограничивается только "целыми числами, представляющими длину в пикселах", в DTD оно определено только как тип , для которого допустимы любые значения. Проверить полностью соответствие HTML 4.0 может только специальная программа.
Тем не менее, такая проверка все равно настоятельно рекомендуется, поскольку она позволяет обнаружить большой спектр ошибок.
в наборе символов документа данного
Примечание. Общее число элементов кода в наборе символов документа данного объявления SGML может включать первые 17 уровней [ISO10646] (17 раз по 65536). Такое ограничение накладывается, поскольку это число в текущем стандарте SGML имеет максимальную длину 8 цифр. Это не значит, что ограничение символов в UCS первыми 17 уровнями останется надолго. Весьма вероятно, что ограничение 8 цифрами в SGML будет устранено, и данная спецификация будет обновлена.
Примечание. Строго говоря, регистрационный номер ISO 177 относится к начальному состоянию [ISO10646] в 1993 году, в то время как в данной спецификации мы всегда подразумеваем последнюю версию ISO 10646. Изменения с 1993 года заключались в добавлении символов и one-time operation reallocating a large number of codepoints for Korean Hangul (Amendment 5).
Список символов
Справочная информация SGML для HTML
В следующих разделах содержится формальное определение SGML языка HTML 4.0. Сюда входят , определение типа документа (Document Type Definition, DTD) и ссылки на комбинации символов, а также пример каталога SGML.
Эти файлы можно также получить в формате ASCII:
DTD по умолчанию (Default DTD):
Переходное DTD (Transitional DTD):
DTD с фреймами (Frameset DTD):
Объявление SGML:
Файлы определения комбинаций:
Пример каталога:
в данном разделе, позволяют обратиться
Ссылки, перечисленные в данном разделе, позволяют обратиться к символам, числовые эквиваленты которых уже должны поддерживаться агентами пользователей, соответствующими спецификации HTML 2.0. Для доступа к знаку деления (?) гораздо удобнее использовать ссылку ÷, чем ÷.
Для поддержки таких именованных комбинаций агентам пользователя необходимо лишь распознавать имена объектов и преобразовывать их в символы набора [ISO88591].
Символ 65533 (шестнадцатеричный код FFFD) является последним допустимым символом набора UCS-2. 65534 (шестнадцатеричный код FFFE) зарезервирован как версия НЕРАЗРЫВНОГО ПРОБЕЛА НУЛЕВОЙ ШИРИНЫ с перестановкой байтов с целью определения порядка байтов. Символ 65535 (шестнадцатеричный код FFFF) не назначен.
Ссылки на символы, математические символы и буквы греческого алфавита
Ссылки, перечисленные в этом разделе, позволяют обратиться к символам, представляемым знаками широко используемого шрифта Symbolфимры Adobe, включая буквы греческого алфавита, различные скобки и ряд математических операторов типа градиента, произведения и суммы.
Для поддержки этих комбинаций агенты пользователей должны поддерживать полный набор [ISO10646] или использовать другие средства. Отображение иероглифов может достигаться за счет возможности отображения соответствующих символов набора [ISO10646] или иными средствами, например, внутренним отображением на перечисленные символы, числовыми ссылками на символы в соответствующей позиции в некотором шрифте, содержащем запрошенные иероглифы.
Когда нужно использовать греческие символы.
Этот набор символов содержит все буквы, используемые в современном греческом языке. Однако сюда не входят греческие символы пунктуации, символы с ударением, а также неразрывные ударения (тонос, диалитика), необходимые для их составления. Не включены устаревшие буквы, коптские буквы и буквы политонического греческого языка. Определенные здесь объекты не предназначены для представления современного греческого текста; они предназначены для представления отдельных греческих букв, используемых в математических работах.
Ссылки на значимые для разметки символы и символы интернационализации
В этом разделе перечислены ссылки на символы для обозначения значимых для разметки символов (те же, что и в HTML 2.0 и 3.2) для обозначения пробелов и тире. Другие символы в этом разделе относятся к вопросам интернационализации, таким как однозначность двунаправленного текста (см. раздел о ).
Кроме того, добавлены комбинации для других символов кодировки CP-1252, не входящих в наборы HTMLlat1 или HTMLsymbol. Все они находятся в диапазоне от 128 до 159 в наборе cp-1252. Эти объекты позволяют определять символы независимо от платформы.
Для поддержки этих объектов агенты пользователей могут поддерживать весь [ISO10646] или использовать другие средства. Отображение знаков для этих символов может достигаться за счет возможности отображения соответствующих символов [ISO10646] другими средствами, например, за счет внутреннего отображения перечисленных объектов, числовых ссылок на символы и символов в соответствующие позиуии в каком-либо шрифте, содержащем необходимые знаки.
Введение в ссылки на комбинации символов
- это конструкция SGML, которая ссылается на символ из
В данной версии HTML поддерживается несколько наборов ссылок на комбинации символов:
В соответствии с разделом 14 [RFC1866], набор объектов Latin-1 в данной спецификации расширяется и включает весь набор правой части ISO-8859-1 (все позиции кодов с установленным высшим разрядом), включая повсеместно используемые , © и ®. Имена комбинаций берутся из дополнений к SGML (defined in [ISO8879]). символы, математические символы и буквы греческого алфавита. Эти символы могут представляться знаками шрифта "Symbol" фирмы Adobe. (например, для двунаправленного текста).
В следующих разделах представлены полные списки ссылок на комбинации символов. Хотя по соглашению имена [ISO10646] записываются буквами верхнего регистра, мы преобразовали их в нижний для удобства чтения.
О спецификации HTML 4.0
Абзацы: элемент P
Начальный тег: обязателен , Конечный тег: необязателен
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
()
, , , , , , , , , (внутренние события)
Элемент представляет абзац. В нем не могут содержаться (включая и сам элемент ).
Мы призываем авторов не использовать пустой элемент . Агенты пользователей должны игнорировать пустые элементы .
Алгоритм поиска заголовочной информации
В отсутствии заголовочной информации в атрибуте или агенты пользователей могут составлять эту информацию в соответствии со следующим алгоритмом. Целью алгоритма является нахождение упорядоченного списка заголовков. (В следующем описании алгоритма принято слева направо.)
Сначала выполняется поиск влево от позиции ячейки для определения ячейки заголовка строки. Затем выполняется поиск вверх для определения ячейки заголовка столбца. Поиск в заданном направлении прекращается, если достигнут край таблицы или обнаружена ячейка данных после ячейки заголовка.
Заголовки строк помещаются в список в том порядке, в котором они расположены в таблице. Для таблиц, направленных слева направо, заголовки помещаются слева направо.
Заголовки столбцов помещаются после заголовков строк, в том порядке, в каком они расположены в таблице, сверху вниз.
Если для ячейки заголовка установлен атрибут , заголовки, на которые ссылается этот атрибут, помещаются в список, и поиск для текущего направления прекращается.
Ячейки , в которых устанавливается атрибут , обрабатываются так же, как и ячейки заголовков.
Атрибут title
Определения атрибутов
title =
Этот атрибут предлагает информацию об элементе, для которого он устанавливается.
В отличие от элемента , который предоставляет информацию обо всем документе и может присутствовать в тексте только один раз, атрибут может сопровождать любое число элементов. Узнать, поддерживает ли элемент этот атрибут, можно в определении элемента.
Значения атрибута могут использоваться агентами пользователя в генерации изображения по-разному. Например, визуальные браузеры часто отображают заголовок как подсказку (краткое сообщение, которое появляется, если Вы указываете на объект). Аудиоагенты пользователя могут проговаривать информацию заголовка. Например, установка этого атрибута для ссылки позволяет агентам пользователей (визуальным и невизуальным) сообщить пользователям о природе связанного ресурса:
...текст...
Вот фотография как я нырял в прошлом году ...еще текст...
Атрибут играет дополнительную роль при использовании с элементом для назначения Подробнее см. в разделе о .
Примечание.
Для улучшения качества синтеза речи в случае плохой обработки стандартными механизмами будущие версии HTML могут включать атрибут для кодирования фонематической информации.
Captions таблиц: элемент 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" указывает на предыдущую и последующую главы:
...другая заголовочная информация...
Глава 5
Тип первой ссылки - "prev", второй - "next" (два из ряда распознаваемых типов ссылок). Ссылки, задаваемые элементов , не генерируются с содержимым документа, хотя агенты пользователей могут отображать их различными способами (например, в виде средств перехода).
Даже если они не используются для перехода, эти ссылки могут интерпретироваться интересными способами. Например, агент пользователя, выполняющий печать ряда документов в формате HTML в виде одного документа, может использовать эту информацию для формирования последовательного линейного документа. Дальнейшая информация об использовании приведена ниже.
Форматирование таблиц визуальными агентами пользователей
Примечание. В следующих разделах описываются атрибуты таблиц HTML, относящиеся к визуальному форматированию. Хотя таблицы стилей предлагают лучшие возможности управления визуальным форматированием таблиц, во время написания этой спецификации в [CSS1] не было механизмов для управления всеми аспектами визуального форматирования таблиц.
В HTML 4.0 имеются механизмы для управления:
содержимого ячеек
и
Форматированный текст: Элемент PRE
Начальный тег: обязателен , Конечный тег: обязателен
Определения атрибутов
width = Этот атрибут предоставляет визуальным агентам пользователей подсказку относительно желаемой ширины блока форматированного текста. Агент пользователя может использовать эту информацию для выбора соответствующего размера шрифта или для создания соответствующего отступа. Ширина выражается числом символов. Этот атрибут часто не поддерживается.
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , , (внутренние события)
Элемент сообщает визуальным агентам пользователей, что содержащийся в нем текст "отформатирован". При обработке форматированного текста визуальные агенты пользователей:
Могут оставлять так, как они указаны.
Могут использовать для отображения текста шрифт с символами одинаковой ширины.
Могут отключать автоматическое продолжение слов.
Не должны отключать обработку двунаправленности.
Невизуальные агенты пользователей не обязаны учитывать дополнительные в содержимом элемента .
Подробнее о переходе на новую строку в спецификации SGML см. в разделе в приложении.
В приведенном выше фрагменте DTD указывается, какие элементы не могут находиться в объявлении . То же самое выполняется в HTML 3.2; это предназначено для сохранения постоянного межстрочного интервала и выравнивания столбцов для текста, генерируемого с использованием шрифта с символами равной ширины. Авторам не рекомендуется изменять такую обработку с помощью таблиц стилей.
В следующем примере показана отформатированная строфа из стихотворения Шелли To a Skylark:
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.
Вот как она обычно отображается:
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.
Установив атрибут , агент пользователя может определить, нужно ли загружать ли приложение Java, в зависимости от своих возможностей.
Некоторым схемам генерации для определения обработки необходима дополнительная информация, поэтому им необходимо указать, где находится эта информация. Авторы могут указать путь к обработчику объекта с помощью атрибута .
codebase="http://foooo.bar.com/java/myimplementation/"
В следующем примере (с помощью атрибута ) задается объект ActiveX в виде адреса URI, начинающегося со схемы именования "clsid". Атрибут определяет местоположение генерируемых данных (еще одни часы).
Это приложение не поддерживается.
Горизонтальное и вертикальное выравнивание
Для различных элементов таблицы можно установить следующие атрибуты (см. их определения).
Определения атрибутов
align = left|center|right|justify|char
Этот атрибут задает выравнивание данных и выключку текста в ячейке. Возможные значения:
left: Выравнивание данных по левому краю/выключка текста влево. Это значение используется по умолчанию.
center: Выравнивание данных по центру/выключка текста по центру. Это значение используется по умолчанию в заголовках таблиц.
right: Выравнивание данных по правому краю/выключка текста вправо.
justify: Выключка по обоим краям.
char:Выравнивание текста вокруг указанного символа.
valign = top|middle|bottom|baseline
Этот атрибут задает вертикальное положение данных в ячейке. Возможные значения:
top: Данные ячейки сдвигаются вверх.
middle: Данные ячейки центрируются вертикально. Это значение используется по умолчанию.
bottom: Данные в ячейке сдвигаются вниз.
baseline: Во всех ячейках строки, в которой находится ячейка, для которой установлен атрибут valign, текст должен располагаться так, чтобы первая строка оказывалась на базовой линии, общей для всех ячеек в строке. Это ограничение не применяется к последующим текстовым строкам в этой ячейке.
char =
Этот атрибут определяет отдельный символ во фрагменте текста, служащий осью для выравнивания. По умолчанию в качестве значения этого атрибута используется символ десятичной точки для текущего языка, установленного в соответствии с атрибутом (например, точка (".") в английском языке и запятая (",") во французском). Агенты пользователя не обязательно должны поддерживать этот атрибут.
charoff =
Если этот атрибут задан, он определяет отступ первого экземпляра символа выравнивания в каждой строке. Если в строек нет символа выравнивания, она горизонтально сдвигается до конца в позиции выравнивания.
Если для установления смещения символа выравнивания используется атрибут , направление смещения определяется текущим направлением текста (устанавливаемым атрибутом ). В текста, направленных слева направо (по умолчанию), смещение производится от левого поля. В текстах, направленных справа налево, смещение производится от правого поля. Агенты пользователей не обязательно должны поддерживать этот атрибут.
В этом примере денежные единицы выровнены по десятичной точке. Мы явно установили выравнивание по символу ".".
Овощи Цена за кг Lettuce $1 Silver carrots $10.50 Golden turnips $100.30
Отформатированная таблица может выглядеть следующим образом:
------------------------------ | Овощи |Цена за кг | |--------------|-------------| |Lettuce | $1 | |--------------|-------------| |Silver carrots| $10.50| |--------------|-------------| |Golden turnips| $100.30| ------------------------------
Если в ячейке содержится несколько экземпляров символов выравнивания, заданных в атрибуте , и содержимое ячейки переносится на другую строку, поведение агента пользователя не определено. Поэтому авторы должны внимательно использовать атрибут .
Примечание. Визуальные агенты пользователей обычно генерируют элементы выровненными вертикально и горизонтально по центру с использованием полужирного шрифта.
Границы и 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 =
Этот атрибут задает ширину (только в пикселах) кадра вокруг таблицы (подробнее об этом атрибуте см. в Примечании ниже).
Для простоты различия ячеек в таблице мы можем устанавливать атрибут элемента . Рассмотрим предыдущий пример:
Сколько чашек кофе выпивает каждый сенатор Имя Число чашек Тип кофе Сахар? Т. Секстон 10 Эспрессо Нет Дж. Диннен 5 Без кофеина Да
В следующем примере агент пользователя должен отобразить границу шириной в пять пикселов слева и справа от таблицы и rules между столбцами.
Следующие настройки должны рассматриваться агентами пользователей для обеспечения совместимости с предыдущими версиями.
Настройка ="0" подразумевает ="void" и, если не указано другое, ="none".
Другие значения предполагают ="border" и, если не указано другое, ="all".
Значение "border" в начальном теге элемента должно интерпретироваться как значение атрибута . Предполагается, что ="all" и используется некоторое стандартное значение (не нулевое) для атрибута .
Например, следующие определения эквивалентны:
следующим:
Примечание. Атрибут также определяет отображение границы для элементов и , но принимает для этих элементов различные значения.
Границы
Изображение или объект может окружать граница (например, если она указана пользователем или изображение имеет содержимое элемента ).
Определения атрибутов
border =
Атрибут border определяет ширину границы в пикселах. Значение этого атрибута, используемое по умолчанию, зависит от агента пользователя.
Группировка элементов: элементы DIV и SPAN
Начальный тег: обязателен , Конечный тег: обязателен
Определения атрибутов
href =
Этот атрибут указывает ресурс, предоставляющий дополнительную информацию о содержимом элемента или .
Атрибуты, определяемые в любом другом месте
, () (информация о языке), () () (встроенная информация о стиле information) () , , , , , , , , , (внутренние события)
Элементы и вместе с атрибутами и обеспечивают общий механизм добавления в документы структуры. Эти элементы определяют встраиваемую информацию () или информацию уровня блока (), но не налагают никаких других выражений для представления контекста. Таким образом, авторы могут использовать эти элементы с , атрибутами и т.д..
Предположим, Вы хотите сгенерировать документ в формате HTML на основе базы данных информации о клиентах. Поскольку HTML не включает элементов для идентификации таких объектов как "клиент", "номер телефона", "адрес электронной почты" и т.д., мы используем элементы и для достижения нужных эффектов структуры и представления. Для структурирования информации мы могли использовать элемент следующим образом:
Информация о клиенте: Фамилия: Boyera Имя: Stephane Тел: (212) 555-1212 Email: sb@foo.org
Информация о клиенте: Фамилия: Lafon Имя: Yves Тел: (617) 555-1212 Email: yves@coucou.com
Затем мы легко сможем добавить объявление таблицы стиля для настройки представления этих записей.
Другой пример см. в разделе об атрибутах .
Визуальные агенты пользователей обычно помещают символ перевода строки перед и после элементов , например:
аааааааааббббббббб
вввввввввв
что обычно генерируется как:
ааааааааа ббббббббб ввввв
ввввв
Группы столбцов: элементы и
Группы столбцов позволяют создавать структурные подразделения внутри таблицы. Авторы могут выделять такую структуру с помощью таблиц стилей или атрибутов HTML (например, атрибут для элемента ). Пример визуального представления группы столбцов см. в .
Таблица может содержать одну неявную группу столбцов (элемент не разделяет столбцы) или любое число явных групп столбцов (каждая из которых отделяется одним экземпляром элемента ).
Элемент позволяет авторам использовать одни и те же атрибуты в различных столбцах, не используя структурной группировки. "span" элемента - это число столбцов, использующих атрибуты этого элемента.
Группы строк: элементы THEAD, TFOOT и TBODY
Начальный тег: обязателен , конечный тег: необязателен
Начальный тег: необязателен , конечный тег: необязателен
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , ,
()
, , ,
()
Строки таблицы могут группироваться в заголовки, нижние заголовки и один или несколько разделов тела таблицы с помощью элементов , и соответственно. Это подразделение позволяет агентам пользователей поддерживать прокрутку тела таблицы независимо от заголовков. При печати длинных таблиц информация из заголовков может повторяться на каждой странице, на которой имеются данные таблицы.
Заголовки таблицы должны содержать информацию о столбцах таблицы. Тело таблицы должно содержать строки данных таблицы.
Если элементы , и присутствуют, каждый из них содержит группу строк. Каждая группа строк должна содержать по крайней мере одну строку, определяемую элементом .
В этом примере показан порядок и структура заголовков таблицы, нижних заголовков и тел.
...заголовок...
...нижний заголовок...
...первая строка данных блока 1...
...вторая строка данных блока 1...
...первая строка данных блока 2...
...вторая строка данных блока 2...
...третья строка данных блока 2...
Элемент должен располагаться до элемента в определении , чтобы агенты пользователей могли генерировать нижний заголовок до получения всех (возможно, многочисленных) строк данных. Ниже приводится сводка обязательных тегов и тегов, которые можно опустить:
Начальный тег всегда обязателен, если только таблица не содержит единственного тела без верхних и нижних заголовков. Конечный тег всегда можно опускать.
Начальные теги для элементов и обязательны, если в таблице присутствуют верхний и нижний заголовки, но соответствующие конечные теги можно опускать.
Соответствующий спецификации агент пользователя при разборе должен obey эти правила из соображений совместимости с предыдущими версиями.
Таблицу из предыдущего примера можно сократить, удалив конечные теги, как показано ниже:
...верхний заголовок...
...нижний заголовок...
...первая строка данных блока 1...
...вторая строка данных блока 1...
...первая строка данных блока 2...
...вторая строка данных блока 2...
...третья строка данных блока 2...
Разделы , и должны содержать одинаковое число столбцов.
Идентификаторы элементов: атрибуты id and class
Определения атрибутов
id = name
Этот атрибут назначает элементу имя. Имя в пределах документа должно быть уникальным.
class = cdata-list
Этот атрибут назначает элементу имя класса или набор имен классов. Одно и то же имя или имена классов могут быть назначены любому числу элементов. Несколько имен классов должны быть разделены пробелами.
Атрибут назначает элементу уникальный идентификатор (который может проверяться синтаксическим анализатором SGML). Например, следующие абзацы распознаются по значениям их атрибутов :
Этот абзац имеет уникальное имя.
Этот абзац тоже имеет уникальное имя.
Атрибут имеет в HTML несколько ролей:
Способ выбора .
Назначение цели для гипертекстовых ссылок.
Средство ссылки на определенный элемент сценария.
Имя объявленного объекта .
В целях обработки агентами пользователей (например. для полей идентификации при извлечении данных из страниц HTML в базу данных, преобразовании документов HTML в другие форматы и т.д.).
Атрибут , с другой стороны, назначает одно или несколько имен классов элементу; при этом элемент может называться принадлежащим к этим классам. Имя класса может использоваться несколькими экземплярами элемента. Атрибут имеет в HTML несколько ролей:
Способ выбора (когда автор хочет назначить информацию о стиле набору элементов).
Для общей обработки агентами пользователей.
Далее элемент example используется вместе с атрибутами и для пометки сообщений документа. Сообщения отображаются в английской и русской версиях.
Variable declared twice Undeclared variable Bad syntax for variable name
Переменная объявлена дважды Переменная не объявлена Синтаксическая ошибка в имени переменной
Следующие правила стиля CSS сообщат агентам пользователя о необходимости отображения информации зеленым цветом, предупреждений - желтым, а сообщений об ошибках - красным:
SPAN.info { color: green } SPAN.warning { color: yellow } SPAN.error { color: red }
Помните, что русской "msg1" и английское "msg1" не могут отображаться в одном документе, поскольку они используют одно и то же значение атрибута . Авторы могут извлечь дальнейшую пользу, используя атрибут для усовершенствования представления отдельных сообщений, указания их в качестве целей (якорей) и т.д.
Почти каждому элементу HTML может быть назначен идентификатор и информация о классе.
Предположим, мы пишем документ о языке программирования. Этот документ должен включать ряд отформатированных примеров. Для форматирования примеров мы используем элемент . Мы также назначаем цвет фона (зеленый) всем экземплярам элемента , принадлежащим классу "example".
... название документа... ...код примера...
Установив атрибут для этого примера, мы можем (1) создать на него гиперссылку и (2) использовать информацию о стиле, отличную от определенной в таблицы, для одного экземпляра информации о стиле.
Примечание. Атрибут использует одно пространство имен с атрибутом name, если он используется для имен якорей. Подробнее см. в разделе о .
Информация о языке и направление текста
В этом разделе документа обсуждаются два важных вопроса интернационализации HTML: задание языка (атрибут ) и направления (атрибут ) текста в документе.
Информация о пути: элемент BASE
Начальный тэг: обязателен , Конечный тэг: запрещен
Определения атрибутов
href =
Этот атрибут задает абсолютный URI, служащий базовым URI для разрешения относительных URI.
Атрибуты, определяемые в другом месте
()
В HTML ссылки на внешние изображения, апплеты, программы для обработки форм, таблицы стилей и т.д. всегда задаются с помощью URI. Относительные URI в соответствии с базовым URI, который может определяться из различных источников. Элемент позволяет авторам явно указать базовый URI документа.
Если элемент указан, он должен присутствовать в разделе документа HTML, до элементов, ссылающихся на внешние ресурсы. Информация о пути, указанная в элементе , влияет только на URI в документе, в котором присутствует этот элемент.
Например, даны следующее объявление и объявление :
Наши продукты
Вы видели наши клетки для птиц ?
относительный 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, используйте такое объявление типа документа:
HTML 4.0 Transitional DTD (переходное определение) включает все, что включено в строгое DTD, а также нежелательные элементы и атрибуты (большинство из которых относится к визуальному представлению). Для документов, использующих это DTD, используйте такое объявление типа документа:
HTML 4.0 Frameset DTD (определение для кадров) включает все, что включено в переходное DTD, а также кадры. Для документов, использующих это DTD, используйте такое объявление типа:
URI в каждом объявлении типа документа позволяет агентам пользователей загрузить DTD и все необходимые . Следующие URI указывают на DTD и наборы комбинаций для HTML 4.0, поддерживаемого W3C:
"" - строгое DTD по умолчанию "" - переходное DTD "" -- DTD для документов, использующих кадры "" - комбинации Latin-1 "" - комбинации символов "" - специальные комбинации
Связь между общими идентификаторами и файлами можно указать с использованием файла каталога, за которым следует формат, рекомендуемый Открытым консорциумом SGML (см. [SGMLOPEN]). включен в начало раздела о справочной информации об SGML для HTML. Две последние буквы декларации указывают язык DTD. Для HTML это всегда английский ("EN").
Инициализация объекта: элемент PARAM
Начальный тег: обязателен , Конечный тег: запрещен
Определения атрибутов
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 пикселов с помощью двух элементов .
Этот агент пользователя не может сгенерировать приложение на языке Python.
В следующем примере рабочие данные для параметра "Init_values" объекта задаются в виде внешнего ресурса (файл GIF). Таким образом для атрибута устанавливается значение "ref", а атрибутом value является адрес URI ресурса.
valuetype="ref">
Обратите внимание, что мы также установили атрибут , так что агент пользователя может отобразить сообщение во время загрузки генерирующего механизма.
Когда элемент сгенерирован, агенты пользователя должны выполнить поиск содержимого только для тех элементов , которые являются их прямыми дочерними элементами и "feed" их to the .
Таким образом, в следующем примере, если сгенерирован "obj1", "param1" применяется к "obj1" (и не применяется к "obj2"). Если "obj1" не сгенерирован, а "obj2" сгенерирован, "param1" игнорируется, а "param2" применяется к "obj2". Если ни один не сгенерирован, ни один не применяется.
Интернационализация и ссылки
Поскольку ссылки могут указывать на документы, использующие другие , элементы и поддерживают атрибут . Этот атрибут позволяет авторам рекомендовать агентам пользователей кодировку данных в связанном документе.
Атрибут hreflang предоставляет агенту пользователя информацию о языке связанного ресурса, точно так же, как атрибут предоставляет информацию о языке содержимого элемента или значениях атрибутов.
Имея дополнительные знания, агенты пользователей должны иметь возможность не представлять пользователю "мусор". Вместо этого они могут находить ресурсы, необходимые для корректного представления документа или, если они не могут найти эти ресурсы, по крайней мере уведомить пользователя о невозможности прочтения документа с указанием причины.
Интерпретация кодов языков
В контексте HTML код языка должен интерпретироваться агентами пользователя как иерархия знаков, а не один знак. Если агент пользователя генерирует изображение в соответствии с информацией о языке (скажем, сравнивая языковые коды в таблицах стилей и значения атрибута ), он всегда должен находить точное соответствие, но должен также принимать во внимание первичные коды. Таким образом, если значение атрибута "en-US" установлено для элемента , агент пользователя должен сначала выбрать информацию о стиле, совпадающую с "en-US", а затем сгенерировать более общее значение "en".
Примечание. Иерархия кодов языков не гарантирует понимания всех языков с общими префиксами людьми, бегло говорящими на одном или нескольких из этих языков. Она помогает пользователю запросить эту общность, когда для пользователя она является истинной.
Ячейки, span несколько строк или столбцов
Ячейки могут span несколько строк или столбцов. Число строк или столбцов, spanned ячейкой, устанавливается с помощью атрибутов и элементов и .
В этом определении таблицы мы указываем, что ячейка в четвертой строке во втором столбце span все три столбца, включая текущий.
Сколько чашек кофе выпивает каждый сенатор Имя Число чашек Тип кофе Сахар? Т. Секстон 10 Эспрессо Нет Дж. Диннен 5 Без кофеина Да А. Сориа Нет данных
На терминале эта таблица может генерироваться следующим образом:
Сколько чашек кофе выпивает каждый сенатор ---------------------------------------------- | Имя |Число чашек|Тип кофе |Сахар?| ---------------------------------------------- |Т. Секстон|10 |Эспрессо |Нет | ---------------------------------------------- |Дж. Диннен|5 |Без кофеина |Да | ---------------------------------------------- |А. Сориа |Нет данных | ----------------------------------------------
В следующем примере показано (с помощью границ таблицы), как определения ячеек, span несколько строк или столбцов, влияют на определения следующих ячеек. Рассмотрите следующее определение таблицы:
Поскольку ячейка "2" spans первую и вторую строки, определение второй строки будет принято во внимание. Таким образом, второй элемент в строке два в действительности определяет третью ячейку строки. Визуально на терминале таблица может генерироваться следующим образом:
------------- | 1 | 2 | 3 | ----| |---- | 4 | | 6 | ----|---|---- | 7 | 8 | 9 | -------------
а графический агент пользователя может представить ее так:
Помните, что, если элемент , определяющий ячейку "6", опущен, агенты пользователя будут добавлять дополнительную пустую ячейку, чтобы заполнить строку.
Точно так же в следующем определении таблицы:
ячейка "4" spans два столбца, так что второй элемент в строке на самом деле определяет третью ячейку ("6"):
------------- | 1 | 2 | 3 | --------|---- | 4 | 6 | --------|---- | 7 | 8 | 9 | -------------
Графический агент пользователя может представить это следующим образом:
Определение перекрывающихся ячеек является ошибкой. Агенты пользователей могут по-разному обрабатывать эту ошибку (например, они могут по-разному генерировать такие таблицы).
В следующем примере недопустимого использования показано, как можно создать перекрывающиеся ячейки. В этой таблице ячейка "5" spans две строки, а ячейка "7" spans два столбца, так что они обе используют ячейку между "7" и "9":
Ячейки таблицы: элементы TH и TD
Начальный тег: обязателен , Конечный тег: не обязателен
Определения атрибутов
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 = Нежелателен. Этот атрибут дает агентам пользователей рекомендуемую высоту ячейки.
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , , ()
()
, , , ()
Ячейки таблицы могут содержать информацию двух типов: заголовочную информацию и данные. Это различие позволяет агентам пользователей генерировать ячейки заголовков и данных различным образом даже при отсутствии таблиц стилей. Например, визуальные агенты пользователей могут представлять текст ячеек заголовков жирным шрифтом. Синтезаторы речи могут выделять заголовочную информацию голосом.
Элемент определяет ячейку, содержащую информацию заголовка. Агентам пользователей доступны две части заголовочной информации: содержимое элемента и значение атрибута . Агенты пользователей должны генерировать содержимое ячейки или значение атрибута . Для визуальных устройств последнее может иметь смысл, если пространства для генерации полного содержимого ячейки недостаточно. Для невизуальных устройств может использоваться в качестве сокращения для заголовков таблиц, когда они генерируются вместе с содержимым ячеек, к которым они относятся.
Атрибуты и также позволяют авторам помочь невизуальным агентам пользователей в обработке информации заголовка. Подробную информацию и примеры см. в разделе о .
Элемент определяет ячейку, содержащую данные.
Ячейка может быть пустой (т.е. не содержать данных).
Например, в следующей таблице содержится четыре столбца данных, каждый столбец имеет заголовок.
Сколько чашек кофе выпивает каждый сенатор Имя Число чашек Тип кофе Сахар? Т. Секстон 10 Эспрессо Нет Дж. Диннен 5 Без кофеина Да
Агент пользователя, выполняющий генерацию для терминала, может отобразить это следующим образом:Имя Число чашек Тип кофе Сахар?
Т. Секстон 10 Эспрессо Нет Дж. Диннен 5 Без кофеина Да
Якоря с атрибутом id
Атрибут может использоваться для создания якоря в начальном тэге любого элемента (включая элемент ).
В данном примере показано использование атрибута для размещения якоря в элементе . Связь с якорем осуществляется с помощью элемента .
Подробнее об этом Вы можете прочесть в Разделе 2 . ...далее в документе
Раздел 2 ...далее в документе
Подробнее см. в Разделе 2 выше.
В следующем примере имя целевого якоря задается с помощью атрибута :
Я только что вернулся из отпуска! Вот фотография моей семьи на озере. .
Атрибуты и используют одно и то же пространство имен. Это означает, что они не могут определять якорь с одним и тем же именем в одном и том же документе.
ПРИМЕР НЕДОПУСТИМОГО ИСПОЛЬЗОВАНИЯ:
Далее показан недопустимый фрагмент кода HTML, поскольку эти атрибут объявляют одно и то же имя дважды в пределах одного документа.
... ... ...страницы и страницы...
По спецификации в HTML DTD атрибут может содержать ссылки на символы. Таким образом, значение Dürst является допустимым для атрибута , так же как Dürst . Атрибут не может содержать ссылки на символы.
Что использовать - или ? При выборе элемента или для указания имени якоря авторы должны иметь в виду следующее:
Атрибут может быть не только именем якоря (а также селектором таблицы стилей, идентификатором обработки и т.д.).
Некоторые агенты пользователей более старых версий не поддерживают якоря, созданные с помощью атрибута .
Атрибут обеспечивает более разнообразные имена якорей (с использованием ).
Элемент A
Начальный тэг: обязателен , Конечный тэг: обязателен
Определения атрибутов
name = cdata
Этот атрибут дает якорю имя, так что он может служить целью другой ссылки. Значением этого атрибута должно быть уникальное имя. Область действия имени - текущий документ. Обратите внимание, что этот атрибут использует общее пространство имен с атрибутом .
href = uri
Этот атрибут определяет местоположение ресурса Web, определяя связь между текущим элементом (исходным якорем) и целевым якорем, определяемым этим атрибутом.
hreflang =
Этот атрибут задает базовый язык ресурса, назначаемого атрибутом , и может использоваться, только если указан атрибут .
type =
Если этот атрибут задан, он определяет тип части содержимого, например, результат обратного действия ссылки на ресурс. Типы содержимого определены в разделе [MIMETYPES].
rel =
Этот атрибут описывает отношение из текущего документа к якорю, заданному атрибутом . Значением этого атрибута является разделенный пробелами список типов ссылок.
rev =
Этот атрибут используется для описания из якоря, задаваемого атрибутом , в текущий документ. Значением этого атрибута является разделенный пробелами список типов ссылок.
charset =
Этот атрибут задает кодировку символов назначаемого ссылкой ресурса. Подробнее см. в разделе о .
Атрибуты, определяемые в другом месте
, ()
(), ()
()
()
and ()
, , , , , , , , , , , (внутренние события)
()
()
()
Каждый элемент A определяет якорь
Содержимое элемента определяет положение якоря.
Атрибут задает имя якоря, так что он может служить пунктом назначения любого числа ссылок (см. также ).
Атрибут назначает якорь пунктом назначения ровно одной ссылки.
Авторы также могут создавать элемент , не определяющий ни одного якоря, и не указывающий , или . Значения этих атрибутов могут устанавливаться позднее с помощью скриптов.
В следующем примере элемент определяет ссылку. Исходным якорем является текст " Web-сайте W3C", а пунктом назначения - "http://www.w3.org/":
Подробнее о W3C Вы можете узнать на Web-сайте W3C .
Эта ссылка указывает на страницу World Wide Web Consortium. Если пользователь активизирует эту ссылку в своем агенте, агент загрузит ресурс, в данном случае - документ HTML.
Обычно агенты пользователей представляют ссылки так, чтобы они были очевидны для пользователей (подчеркивание, обратное видео и т.д.). Конкретное представление зависит от агента пользователя. Представление может различаться в зависимости от того, посещал ли уже пользователь указанную ссылку. Возможное визуальное представлением предыдущей ссылки:
Подробнее о W3C Вы можете узнать на Web-сайте W3C. ~~~~~~~~~~~~~
Чтобы дать агентам пользователей явное указание кодировки символов целевой страницы, установите атрибут :
Подробнее о W3C Вы можете узнать на Web-сайте W3C
Предположим, мы определяем якорь с именем "anchor-one" в файле "one.html".
...текст до якоря...
Это местоположение первого якоря. ...текст после якоря...
В данном фрагменте вокруг текста "Это местоположение первого якоря" создается якорь. Обычно содержимое элемента не представляется каким-либо особым образом, если элемент определяет только якорь.
Определив якорь, мы можем связать его с этим же или с другим документом. 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", будет указывать на этот якорь следующим образом:
...текст до ссылки...
Подробнее см. первый якорь . ...текст после ссылки...
Элемент в следующем примере задает ссылку (с помощью атрибута ) и одновременно создает именованный якорь (с помощью атрибута ):
Я только что вернулся из отпуска! Вот фотография моей семьи на озере. .
В этом примере содержится ссылка на другой тип ресурса Web (изображение в формате PNG). Активизация ссылки должна привести к загрузке изображения из Web (и, возможно, его отображению, если система сконфигурирована соответствующим образом).
Примечание.
Агенты пользователей должны уметь находить якоря, созданные пустыми элементами , но некоторые агенты не могут этого делать. Например, некоторые агенты пользователей могут не найти "empty-anchor" в следующем фрагменте HTML:
...некоторые текст в формате HTML... Ссылка на пустой якорь
Элемент ADDRESS
Начальный тег: обязателен , Конечный тег: обязателен
Атрибуты, определяемые в любом другом месте
, () (), () , , , , , , , , , (внутренние события)
Элемент может использоваться авторами для указания контактной информации или основной части документа, такой как форма. Этот элемент часто находится в начале или в конце документа.
Например, страница на сервере W3C, относящаяся к языку HTML, может включать следующую контактную информацию:
Dave Raggett , Arnaud Le Hors , contact persons for the W3C HTML Activity $Date: 1997/12/16 05:38:14 $
Элемент BODY
Начальный тег: не обязателен , Конечный тег: не обязателен
Определения атрибутов
background = Значение этого атрибута - URI, указывающий на изображение. Это изображение является фоном (для визуальных браузеров).
text = Этот атрибут устанавливает цвет текста (для визуальных браузеров).
link =
Этот атрибут устанавливает цвет текста гипертекстовых ссылок, по которым Вы не переходили (для визуальных браузеров).
vlink = color
Этот атрибут устанавливает цвет текста ссылок, по которым Вы переходили (для визуальных браузеров).
alink =
Этот атрибут устанавливает цвет текста ссылок, когда они выбраны пользователем (для визуальных браузеров).
Атрибуты, определяемые в любом другом месте
, () (), () () (встроенная информация о стиле) (цвет фона) , (внутренние события) , , , , , , , , , (внутренние события)
В теле документа располагается содержание документа. Содержимое может представляться агентом пользователя несколькими способами. Например, для визуальных браузеров Вы можете считать тело документа полотном, на котором отображается содержимое: текст, изображения, цвета, рисунки и т.д. Для аудиоагентов пользователей оно может произноситься. Поскольку предпочтительным способом задания представления документов теперь являются , атрибуты представления в теге являются .
ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
В следующем фрагменте кода HTML показано использование атрибута. Он устанавливает белый цвет фона, черный цвет текста и красный цвет гиперссылок изначально, цвет фуксии при активизации ссылок и коричневый для ссылок, по которым Вы переходили.
Динамика популяции ... тело документа...
Используя , того же эффекта можно достичь следующим образом:
Динамика популяции ... тело документа...
Использование внешних (связываемых) таблиц стилей обеспечивает гибкость при изменении представления без пересмотра источника документа HTML:
Динамика популяции ... тело документа...
Кадры и тела документов HTML. В документах, содержащих кадры, элемент заменяется элементом . Подробнее см. в разделе о .
Элемент COL
Начальный тег: обязателен , Конечный тег: запрещен
Определения атрибутов
span =
Этот атрибут, значением которого должно быть целое число больше нуля, определяет число столбцов, "spanned" элементом ; атрибуты элемента распространяются на все столбцы, которые он spans. Значение по умолчанию для этого атрибута - 1 (т.е. элемент означает один столбец). Если для атрибута установлено значение N > 1, атрибуты текущего элемента распространяются на следующие N-1 столбец.
width =
Этот атрибут определяет ширину каждого столбца, spanned текущим элементом , используемую по умолчанию. Он имеет то же значение, что и атрибут для элемента и имеет над ним приоритет.
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , , ()
, , , ()
Элемент позволяет авторам группировать определения атрибутов для столбцов таблицы. Атрибут не группирует столбцы структурно - эту роль играет элемент .
Элементы являются пустыми и служат только для поддержания атрибутов. Они могут находиться внутри или вне явной группы столбцов (т.е. элемента ).
Атрибут для элемента означает ширину каждого столбца в span элемента.
Элемент COLGROUP
Начальный тег: обязателен , Конечный тег: необязателен
Определения атрибутов
span =
Этот атрибут, значением которого должно быть целое число больше нуля, определяет число столбцов в группе. Значения означают следующее:
При отсутствии атрибута каждый элемент определяет группу столбцов, состоящую из одного столбца.
Если для атрибута установлено значение N > 0, текущий элемент определяет группу, содержащую N столбцов.
Агенты пользователей должны игнорировать этот атрибут, если элемент содержит один или несколько элементов . width =
Этот атрибут определяет ширину каждого столбца в текущей группе, используемую по умолчанию. Кроме стандартных значений в пикселах, процентах и относительных значений, в этом атрибуте может использоваться специальная форма "0*" (ноль со звездочкой), которая означает, что ширина каждого столбца в группе должна быть минимальной, необходимой для размещения содержимого столбца. Подразумевается, что содержимое столбца известно до того, как можно будет корректно вычислить его ширину. Авторы должны знать, что использование "0*" не позволит агентам пользователей генерировать таблицу последовательно.
Этот атрибут переопределяется для любого столбца из группы, для которого значение атрибута задано в элементе .
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , ,, ()
, , , ()
Элемент создает явную группу столбцов. Число столбцов в группе может быть указано двумя взаимоисключающими способами:
Атрибут элемента (значение по умолчанию - 1) задает число столбцов в группе.
Каждый элемент в представляет один или несколько столбцов в группе.
Преимуществом использования атрибута является то, что авторы могут группировать информацию о ширине столбцов. Таким образом, если в таблице содержится сорок столбцов, каждый из которых имеет ширину 20 пикселов, проще написать:
чем:
...все сорок элементов COL...
Если необходимо выделить столбец (например, для информации о стиле, для указания информации о ширине и т.д.) в группе, авторы должны определить этот столбец с помощью элемента . Таким образом, чтобы применить специальную информацию о стиле к последнему столбцу предыдущей таблице, мы выделяем его следующим образом:
Атрибут элемента наследуют все сорок столбцов. Первый элемент относится к первым 39 столбцам (ничего особенного для них не делая), а второй назначает значение сороковому столбцу, так что на него можно будет ссылаться в таблицах стилей.
Таблица в следующем примере содержит две группы столбцов. Первая группа включает 10 столбов, вторая - 5. Ширина по умолчанию для каждого столбца в первой группе - 50 пикселов. Ширина каждого столбца во второй группе - минимальная, необходимая для этого столбца.
Элемент HEAD
Начальный тег: не обязателен , Конечный тег: не обязательно
Определения атрибутов
profile =
Этот атрибут указывает местоположение одного или нескольких профилей метаданных, отделяемых пробелами. Для расширения в будущем агенты пользователей должны предполагать, что значение является списком, хотя в данной спецификации значащим считается только первый URI. Профили обсуждаются ниже в разделе о .
Атрибуты, определяемые в любом другом месте
(), ()
Элемент содержит информацию о текущем документе, такую как заголовок, ключевые слова, которые могут использоваться поисковыми машинами, и другие данные, которые не считаются содержимым документа. Агенты пользователей обычно не используют при генерации элементы из раздела . Однако они могут предоставлять пользователям информацию из раздела с помощью своих собственных механизмов.
Элемент HTML
Начальный тег: необязателен , Конечный тег: необязателен
Определения атрибутов
версия = cdata Значение этого атрибута указывает версию HTML DTD, которой подчиняется этот документ. Этот атрибут является нежелательным, поскольку он является избыточным при наличии указываемой в объявлении типа документа.
Атрибуты, определяемые в любом другом месте
(), ()
После объявления типа документа остальная часть документа HTML содержится в элементе . Таким образом, типичный документ HTML имеет такую структуру:
...Здесь идут заголовок, тело и т.д...
Элемент META
Начальный тег: обязателен , Конечный тег: запрещен
Определения атрибутов
Для следующих атрибутов допустимые значения и их интерпретация зависят от :
name =
Этот атрибут определяет имя свойства. В данной спецификации не перечисляются допустимые значения этого атрибута.
content =
Этот атрибут определяет значение свойства. В данной спецификации не перечисляются допустимые значения этого атрибута.
scheme =
Этот атрибут дает имя схеме, используемой для интерпретации значения свойства (подробнее см. раздел о ).
http-equiv =
Этот атрибут может использоваться вместо атрибута name. Серверы HTTP используют этот атрибут для сбора информации для заголовков сообщений ответов HTTP.
Атрибуты, определяемые в любо другом месте
(), (направление текста)
Элемент может использоваться для идентификации свойств документа (например, автора, срок истечения, список ключевых слов и т.д.) и назначения им значений. В этой спецификации не определяется нормативный набор значений.
Каждый элемент задает пару свойство/значение. Атрибут name определяет свойства, а атрибут - значение.
Например, в следующем объявлении устанавливается значение свойства Author:
Атрибут может использоваться с элементом для указания языка значения атрибута . Это позволяет синтезаторам речи использовать правила произношения для разных языков.
В этом примере имя автора объявляется на французском языке:
Примечание. Элемент - это общий механизм задания метаданных. Однако некоторые элементы и атрибуты HTML уже обрабатывают некоторые части метаданных и могут использоваться авторами вместо элементов для указания этих частей: элементы , , и , атрибут и атрибут .
Примечание. Если свойство, заданное с помощью элемента , принимает значение , некоторые авторы предпочитают указывать метаданные с помощью элемента . Таким образом, следующее объявление:
можно также записать следующим образом:
Элемент TABLE
Начальный тег: обязателен , конечный тег: обязателен
Определения атрибутов
summary = текст
Краткая информация о назначении и структуре таблицы для агентов пользователей, выполняющих генерацию для невизуальных средств, таких как синтезаторы речи или азбуки Бройля.
align
= left|center|right
Этот атрибут задает положение таблицы относительно документа. Допустимые значения:
left: Таблица находится в левой части документа.
center: Таблица находится в центре документа.
right: Таблицы находится в правой части документа.
width
=
Этот атрибут определяет необходимую ширину всей таблицы и предназначен для визуальных объектов пользователей. Если значение указано в процентах, это означает долю в процентах от доступного горизонтального пространства. Если ширина не указана, она определяется агентом пользователя.
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , ,
()
()
, , ()
, ()
Элемент содержит все другие элементы, определяющие заголовок, строки, содержимое и форматирование.
В следующем списке описано, какие операции может выполнять агент пользователя при генерации таблиц:
Предоставление пользователю . Авторам следует предоставлять краткую информацию о содержании и структуре таблицы, чтобы люди, работающие с невизуальными агентами пользователей, могли лучше понять ее. Генерация caption, если он определен. Генерация верхнего заголовка таблицы, если он определен. Генерация нижнего заголовка, если он определен. Агенты пользователей должны знать, где нужно генерировать верхний и нижний заголовки. Например, если средство вывода делится на страницы, агенты пользователей могут помещать верхний заголовок в верхней части каждой страницы, а нижний - внизу. Точно так же, если агент пользователя предоставляет механизм прокрутки строк, верхний заголовок может отображаться вверху прокручиваемой области, а нижний - внизу.
Вычисление в таблице. Помните, что число строк в таблице равно числу элементов , содержащихся в элементе .
Группировка столбцов в соответствии со спецификациями .
Построчная генерация ячеек и группировка в столбцы между верхним и нижним заголовками. Визуальные агенты пользователей должны в соответствии с атрибутами HTML и спецификациями таблиц стилей.
Модель таблиц HTML разработана так, чтобы с помощью автора агенты пользователей могли генерировать таблицы последовательно (т.е. по мере получения строк таблицы), а не ждали получения всей таблицы до начала генерации.
Чтобы агенты пользователей могли форматировать таблицу за один проход, авторы должны сообщить агентам пользователей следующую информацию:
Число столбцов в таблице. Подробнее о том, как указать эту информацию, см. в разделе о . Ширину столбцов. Подробнее о том, как указать эту информацию, см. в разделе о .
Более точно агент пользователя может сгенерировать таблицу за один проход, когда ширина столбцов указана с использованием комбинации элементов и . Если для какого-либо столбца указана относительная ширина или ширина в процентах (см. раздел о ), авторы должны также указать ширину самой таблицы.
Элемент TITLE
Начальный тег: обязателен , Конечный тег: обязателен
Атрибуты, определяемые в любом другом месте
(), ()
Каждый документ HTML должен иметь элемент в разделе .
Авторы должны использовать элемент для идентификации содержимого документа. Поскольку пользователи часто обращаются к документам за пределами контекста, авторам следует обеспечивать заголовки в широком контексте. Таким образом, вместо заголовков типа "Введение", ничего не говорящих о контексте, авторам следует использовать заголовки типа "Введение в средневековое пчеловодство".
Из соображений доступности агенты пользователей всегда должны делать содержимое элемента доступным пользователям (включая элементы в кадрах). Механизм этого зависит от агента пользователя (например, в виде заголовка или произносимый).
Заголовки могут включать (для символов со знаком ударения, специальных символов и т.д.), но не могут содержать другой разметки. Вот образец заголовка документа:
Исследование динамики популяции ... другие элементы заголовка...
... тело документа...
Элементы DIR и MENU
Использование элементов DIR и MENU нежелательно.
Формальное определение см. в .
Атрибуты, определяемые в любом другом месте
, () (), () () () , , , , , , , , , (внутренние события)
Элемент предназначался для создания многостраничных списков каталогов. Элемент предназначался для использования в списках меню, состоящих из одного столбца. Оба эти элемента имеют ту же структуру, что и элемент , различаясь только при генерации. На практике агенты пользователей генерируют списки или точно так же, как список .
Настоятельно рекомендуется использовать вместо этих элементов элемент .
Элементы фраз: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ABBR и ACRONYM
Начальный тег: обязателен , Конечный тег: обязателен
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , , ( внутренние события)
Фразовые элементы добавляют в текстовые фрагменты структуру. Обычное значение фразовых элементов следующее:
EM:
Выделение.
STRONG:
Более сильное выделение.
CITE:
Содержит цитату или ссылку на другие ресурсы.
DFN:
Указывает, что это является определением вложенного термина.
CODE:
Фрагмент компьютерного кода.
SAMP:
Вывод примера программ, сценариев и т.д.
KBD:
Текст, который должен ввести пользователь.
VAR:
Экземпляр переменной или аргумента программы.
ABBR:
Сокращенная форма (например, WWW, HTTP, URI, Mass., и т.д.).
ACRONYM:
Акроним (например, WAC, радар и т.д.).
Элементы и используются для выделения. Другие фразовые элементы имеют определенное значение в технических документах. В следующих примерах показано использование некоторых фразовых элементов:
Как сказал Гари Трумэн , The buck stops here.
Подробнее см. [ISO-0000] .
В дальнейшем используйте следующий номер ссылки: 1-234-55
Представление фразовых элементов зависит от агента пользователя. Обычно визуальные агенты пользователей представляют текст элемента курсивом, а текст элемента полужирным шрифтом. Синтезаторы речи могут изменять параметры синтеза, например, громкость, повышение тона и скорости соответственно.
Элементы и позволяют авторам явно показывать использование аббревиатур и акронимов. Западные языки широко используют акронимы, такие как "GmbH", "НАТО" и "ФБР", а также аббревиатуры типа "M.", "Inc.", "et al.", "etc.". В китайском и японском языках используются аналогичные механизмы аббревиатур, когда длинное название заменяется последовательностью символов Han из оригинала. Разметка этих конструкций предоставляет агентам пользователей и вспомогательным средствам, таким как средства проверки орфографии, синтезаторы речи, переводящие системы и индексаторы поисковых машин, полезную информацию.
Содержимое элементов и определяет саму аббревиатуру, как она обычно отображается в тексте. Атрибут title этих элементов может использоваться для указания полной развернутой формы выражения.
Несколько примеров использования элемента :
WWW SNCF Doña 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"? "Сколько всего денег я потратил в Сан-Хосе?" означает "Все ячейки данных из категорий "Расходы=Еда, Гостиницы, Транспорт" и "Пункт=Сан-Хосе"?
Авторы определяют категории заголовков или ячеек данных, устанавливая для ячейки атрибут . Например, в таблице расходов на командировку ячейка, содержащая информацию "Сан-Хосе" может быть помещена в категорию "Пункт" следующим образом:
Сан-Хосе
Любая ячейка, содержащая информацию, относящуюся к "Сан-Хосе", должна ссылаться на эту ячейку заголовка с помощью атрибута или . Таким образом, расходы на еду 25-авг-1997 должны иметь ссылку на атрибут (значение которого здесь - "a6") ячейки заголовка "Сан-Хосе":
37.74
Каждый атрибут содержит список ссылок . Авторы таким образом могут определять категории для данной ячейки с помощью данного ряда способов (или along any number of "headers", hence the name).
Ниже в таблице командировочных расходов указана информация о категориях:
Отчет о командировочных расходах Еда Гостиницы Транспорт итого Сан-Хосе 25-авг-97 37.74 112.00 45.00 26-авг-97 27.28 112.00 45.00 итого 65.02 224.00 90.00 379.02 Сиэтл 27-авг-97 96.25 109.00 36.00 28-авг-97 35.00 109.00 36.00 итого 131.25 218.00 72.00 421.25 Всего 196.27 442.00 162.00 800.27
Обратите внимание на то, что такая разметка таблицы также позволяет агентам пользователей не сбивать пользователей с толку ненужной информацией. Например, если синтезатор речи должен был произнести все цифры из столбца "Еда" этой таблицы в ответ на запрос "Все расходы на еду?", пользователь не смог бы отличить дневные расходы от итоговой суммы. С помощью тщательной категоризации данных авторы позволяют агентам пользователей делать важные семантические различия при генерации.
Конечно, авторы не ограничены в категоризации информации в таблице. В таблице командировочных расходов, например, мы можем ввести дополнительные категории "итого" и "всего".
Данная спецификация не выставляет требование к агентам пользователей по обработке информации, предоставляемой атрибутом , а также не дает никаких рекомендаций относительно представления агентами пользователей информации из атрибута или спецификации запросов пользователями этой информации у агентов.
Однако агенты пользователей, особенно синтезаторы речи, могут выделять информацию, общую для нескольких ячеек, являющихся результатами запроса. Например, если пользователь спрашивает "Сколько всего денег я потратил на еду в Сан-Хосе?", агент пользователя должен определить соответствующие ячейки (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
Начальный тег: обязателен , конечный тег: обязателен
Определения атрибутов
cite = uri
Значением этого атрибута является URI, определяющий источник документа или сообщения. Этот атрибут предназначен для предоставления информации об источнике, из которого заимствована цитат.
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , , (внутренние события)
Эти два элемента определяют текст в кавычках. Элемент предназначен для длинных цитат (содержимое уровня блока) и предназначен для коротких цитат (встроенное содержимое), в которых не нужно разбиение на абзацы.
В этом примере цитата из книги "Две твердыни" Дж. Р. Р. Толкиена отформатирована с помощью элемента blockquote.
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.
Клиентские навигационные карты: элементы MAP и AREA
Начальный тег: обязателен , Конечный тег: обязателен
Начальный тег: обязателен , Конечный тег: запрещен
Определения атрибутов элемента 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 и PICS
Platform for Internet Content Selection (Платформа для выбора содержимого Интернет) (PICS, specified in [PICS]) - это инфраструктура для связывания меток (метаданных) с содержимым Интернет. Созданная для помощи родителям и учителям в управлении доступом детей к Интернет, она также упрощает другое использование меток, включая управление подписью кодов, секретностью и правами интеллектуальной собственности.
Этот пример иллюстрирует использование объявления для включения метки PICS 1.1:
... название документа ...
META и поисковые машины
Основной способ использования элемента - задание ключевых слов, которые поисковые машины могут использовать для улучшения результатов поиска. Если информация о документе представлена в нескольких элементах в зависимости от языка, поисковые машины могут фильтровать атрибут и отображать результаты поиска с использованием выбранного пользователем языка. Например,
<-- Для говорящих на американском английском --> <-- Для говорящих на британском английском --> <-- для русскоязычных пользователей -->
Эффективность поисковых машин можно также повысить с использованием элемента the для задания ссылок на переводы документа на другие языки, ссылки на версии документа для другого носителя (например, PDF), и, если документ является частью набора, ссылки на соответствующую начальную точку для просмотра набора.
Дальнейшая информация находится в разделе Как помочь поисковым машинам проиндексировать Ваш Web-сервер .
META и заголовки HTTP
Атрибут может использоваться вместо атрибута name; он особенно важен, если документы загружаются по протоколу передачи гипертекста (HTTP). Серверы HTTP могут использовать имя свойства, указанное в атрибуте для создания заголовка в ответе HTTP в стиле [RFC822]. Подробнее о допустимых заголовках HTTP см. в спецификации HTTP ([RFC2068]).
В следующем примере объявление :
вернет следующий заголовок HTTP:
Expires: Tue, 20 Aug 1996 14:25:27 GMT
Это может использоваться кэш-памятью для определения того, когда следует загрузить новую копию связанного документа.
Некоторые агенты пользователей поддерживают использование элемента для обновления текущей страницы по истечении указанного числа секунд с возможностью замены на другой URI.
content - это число, указывающее задержку в секундах, за которым следует URI, который нужно загрузить по прошествии этого времени. Этот механизм широко используется для создания кратковременных заставок. Однако поскольку некоторые агенты пользователей не поддерживают этот механизм, авторам следует включить в заставку возможность перейти на следующую страницу (чтобы они на "зависли" на заставке).
Метаданные
Во время написания этой спецификации проводились работы по предоставлению авторам возможности задания большего количества машинно-читаемой информации о документах HTML и других сетевых ресурсах. Для метаданных W3C разработан Язык описания ресурсов (см. ).
HTML позволяет авторам указывать метаданные -- информацию о документе вместо содержимого документа - множеством способов.
Например, чтобы указать автора документа, можно использовать элемент следующим образом:
Элемент задает свойство (здесь "Author (Автор)") и назначает ему значение (здесь - "Дэйв Рэггетт").
Данная спецификация не определяет набор допустимых свойств метаданных. Значение свойства и набор допустимых значений этого свойства должны определяться в относительном словаре, называемом профилем. Например, профиль, разработанный для помощи в индексировании документов для поисковых машин может определять такие свойства как "author", "copyright", "keywords" и т.д.
Направление таблиц
Направление таблицы либо наследуется (по умолчанию используется направление слева направо), либо определяется атрибутом элемента .
Для таблиц, направление которых слева направо, нулевой столбец находится слева, а нулевая строка - сверху. Для таблиц, направление которых справа налево, нулевой столбец находится справа, а нулевая строка - сверху.
Если агент пользователя allots в строку дополнительные ячейки (см. раздел о ), дополнительные ячейки строки добавляются в таблицу справа для таблиц, имеющих направление слева направо, и слева для таблиц, имеющих направление справа налево.
Помните, что - единственный элемент, для которого атрибут обращает визуальный порядок столбцов; нельзя изменить порядок одной строки () или группы столбцов ().
Если для элемента установлен атрибут , он также влияет на направление текста в ячейках таблицы (поскольку атрибут наследуется элементами уровня блока).
Чтобы определить таблицу с направлением справа налево, установите атрибут следующим образом:
...продолжение таблицы...
Направление текста в отдельных ячейках можно изменить, установив атрибут для элемента, определяющего ячейку. Подробнее о вопросах направления текста см. в разделе о .
Наследование информации о направлении текста
Для двунаправленного алгоритма Unicode необходимо основное направление текста для текстовых блоков. Чтобы указать основное направление элементов уровня блока, установите для этого элемента атрибута . Значением атрибута , устанавливаемым по умолчанию, является "ltr" (слева направо).
Если атрибут установлен для элемента уровня блока, он действует на протяжении всего элемента и для всех вложенных элементов уровня блока. Установка атрибута для вложенного элемента имеет приоритет по отношению к наследуемому значению.
Чтобы установить основное направление текста для всего документа, установите атрибут в элементе .
Например:
...заголовок справа налево... ...текст справа налево...
...текст слева направо... ...опять текст справа налево...
Встроенные элементы, с другой стороны, не наследуют атрибут . Это означает, что встроенный элемент без атрибута не открывает дополнительного уровня внедрения в соответствии с двунаправленным алгоритмом. (Здесь элементом считается элемент уровня блока или встроенный элемент на основе представления по умолчанию. Помните, что элементы и могут быть элементами уровня блока или встраиваемыми элементами в зависимости от контекста.)
Наследование кодов языков
Элемент наследует информацию о коде языка в следующем порядке старшинства (от высшего к низшему):
Атрибут , установленный для самого элемента.
Самый близкий родительский элемент, для которого установлено значение атрибута (то есть атрибут наследуется).
Заголовок HTTP "Content-Language" (который может конфигурироваться на сервере). Например:
Content-Language: en-cockney
Значения по умолчанию и настройки агента пользователя.
В этом примере первичным языком документа является французский ("fr"). Один абзац объявлен на испанском языке ("es"), после чего язык снова становится французским. В следующий абзац включена японская фраза ("ja"), после чего язык опять изменяется на французский.
Un document multilingue ...текст интерпретируется как французский...
... текст интерпретируется как испанский...
... текст опять интерпретируется как французский...
...французский текст, в котором попадается
фрагмент на японском , а здесь опять начинается французский...
Примечание. Ячейки таблицы могут наследовать значения атрибута не от родителя, а из первой ячейки объединения. Подробнее см. в разделе .
Наследование параметров выравнивания
Выравнивание содержимого ячейки могут задаваться для каждой ячейки или наследоваться от элементов верхнего уровня, таких как строка, столбец или сама таблица.
Приоритет (от высшего к низшему) атрибутов , и следующий:
Атрибут выравнивания, установленный для элемента в данных ячейки (например, ).
Атрибут выравнивания, установленный в ячейке ( и ).
Атрибут выравнивания, установленный в элементе группировки столбцов ( и ). Если ячейка является частью 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 и несоответствия между существующими применениями, авторы не должны полагаться на агенты пользователей при генерации неотображаемых символов непосредственно после начального тега или непосредственно перед конечным тегом. Таким образом, авторы и особенно средства разработки, должны писать, например:
Мы предлагаем бесплатную техническую поддержку для зарегистрированных пользователей.
и не должны писать:
Мы предлагаем бесплатную техническую поддержку для зарегистрированных пользователей.
Неупорядоченные списки (UL), упорядоченные списки (OL) и элементы списков ()
Начальный тег: обязателен , Конечный тег: обязателен
Начальный тег: обязателен , Конечный тег: не обязателен
Определения атрибутов
type = информация о стиле
Этот атрибут устанавливает стиль элемента списка. Доступные в настоящее время значения предназначены для визуальных агентов пользователей. описаны ниже (включая информацию о регистре).
start
=
Только для . Этот атрибут задает начальный номер первого элемента в упорядоченном списке. По умолчанию начальный номер - "1". Помните, что, хотя значением этого атрибута является целое число, соответствующая метка может быть нецифровая. Если в качестве стиля выбраны латинские буквы верхнего регистра (A, B, C, ...), start=3 означает "C". Если в качестве стиля выбраны римские цифры нижнего регистра, start=3 означает "iii" и т.д.
value = число [CN] Нежелетельно. Только для . Этот атрибут устанавливает номер текущего элемента списка. Помните, что, хотя значением атрибута является целое число, соответствующая метка может быть нечисловая (см. атрибут ).
compact
Если этот логический атрибут установлен, он сообщает визуальным агентам пользователей о том, что генерировать список нужно более компактно. Интерпретация этого атрибута зависит от агента пользователя.
Атрибуты, определяемые в любом другом месте
, () (), () () () , , , , , , , , , (внутренние события)
Упорядоченные и неупорядоченные списки генерируются одинаково за исключением того, что визуальные агенты пользователей нумеруют упорядоченные списки. Агенты пользователей могут представлять эти номера несколькими способами. Элементы неупорядоченного списка не нумеруются.
Оба эти типа списков состоят из последовательностей элементов списков, определяемых элементом LI (конечный тег которого можно опустить).
В этом примере показана общая структура списка.
... первый элемент списка...
... второй элемент списка...
...
Списки могут быть вложенными:
ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
... Уровень один, номер один...
... Уровень два, номер один...
... Уровень два, номер два...
... Уровень три, номер один...
... Уровень два, номер три...
... Уровень один, номер два...
Информация о порядке номеров. В упорядоченных списках невозможно продолжать нумерацию автоматически из предыдущего списка или убрать нумерацию для некоторых элементов. Однако авторы могут пропустить несколько элементов списка, установив для них атрибут value. Нумерация для последующих элементов списка продолжается с нового значения. Например:
элемент списка номер 30. элемент списка номер 40. элемент списка номер 41.
Объявление и инициализация объекта
В приведенных выше примерах были показаны отдельные определения объектов. Если в документе должно содержаться несколько экземпляров одного и того же объекта, объявление и инициализацию объекта можно разделить. Такой способ имеет несколько преимуществ:
Данные могут загружаться агентом пользователя из сети один раз (во время объявления) и повторно использоваться в каждой инициализации. Инициализировать объект можно из местоположения, отличного от того, в котором объект объявлялся, например, из ссылки. Объекты можно определять в качестве рабочих данных для других объектов.
Чтобы объявить объект так, чтобы он не обрабатывался агентом пользователя при чтении, установите логический атрибут элемента . В то же время авторы должны идентифицировать объявление, установив уникальное значение для атрибута в элементе . Инициализация объекта позже будет ссылаться на этот идентификатор.
Объявленный должен присутствовать в документе до первого экземпляра .
Объект, определенный с атрибутом , инициализируется каждый раз, когда необходима генерация элемента, ссылающегося на этот объект (например, активизируется ссылка на него, активизируется объект, ссылающийся на него и т.д.).
В следующем примере мы объявляем и вызываем его инициализацию, указав его в ссылке. Таким образом объект можно активизировать, щелкнув, например, на выделенном тексте.
Вид Земли из космоса. ...далее в документе...
Красивое анимационное изображение Земли!
В следующем примере показано, как указать рабочие значения, являющиеся другими объектами. В этом примере мы отправляем текст (стихотворение) гипотетическому механизму для просмотра стихотворений. Объект распознает рабочий параметр с именем "font" (скажем, для генерации текста стихотворения с использованием определенного шрифта). Значение этого параметра само является объектом, вставляющим (но не генерирующим) объект шрифта. Отношение между объектом шрифта и объектом механизма просмотра стихотворений достигается с помощью (1) назначения атрибута в объявлении объекта шрифта и (2) ссылки на него в элементе объекта механизма просмотра стихотворений (с помощью и value).
...просмотр стихотворения из файла KublaKhan.txt...
У вас нет такой классной программы просмотра стихотворений...
Агенты пользователей, не поддерживающие атрибут , должны генерировать содержимое объявления .
Общее включение: элемент OBJECT
Начальный тег: обязателен , Конечный тег: обязателен
Определения атрибутов
classid = uri
Этот атрибут может использоваться для указания местоположения объекта с помощью URI. Он может использоваться вместе с атрибутом или как альтернатива ему, в зависимости от типа объекта.
codebase =
Этот атрибут определяет базовый путь, используемый для разрешения относительных адресов URI, задаваемых в атрибутах , и . Если этот атрибут отсутствует, значением по умолчанию является базовый адрес URI текущего документа.
codetype = [CI]
Этот атрибут определяет тип содержимого данных, получения которых следует ожидать при загрузке объекта, задаваемого атрибутом . Этот атрибут не является обязательным, но рекомендуется, если используется атрибут , поскольку он позволяет агенту пользователя избежать загрузки информации для типа содержимого, который он не поддерживает. Если этот атрибут отсутствует, по умолчанию используется значение атрибута type.
data = uri
Этот атрибут может использоваться для указания местоположения данных объекта, например, данных изображения для объектов, определяющих изображения, или в более общем случае - serialized формы объекта, который может использоваться для повторного его создания. Если дается относительный адрес URI, он должен интерпретироваться относительно атрибута codebase.
type = [CI]
Этот атрибут определяет тип содержимого для данных, задаваемых атрибутом . Этот атрибут не является обязательным, но рекомендуется, если используется атрибут , поскольку он позволяет агенту пользователя избежать загрузки информации для типа содержимого, который они не поддерживают.
archive =
Этот атрибут может использоваться для определения разделенного пробелами списка адресов URI архивов, содержащих относящиеся к объекту ресурсы, который может включать ресурсы, задаваемые атрибутами и . Предварительная загрузка архивов приведет к уменьшению времени загрузки объекта. Архивы, указанные в виде относительных адресов URI, должны интерпретироваться относительно атрибута codebase.
declare
Если этот логический атрибут указан, он делает текущее определение только объявлением. Объект должен быть instantiated последующим определением , ссылающимся на это объявление.
standby = text
Этот атрибут определяет сообщение, которое агент пользователя может генерировать при загрузке implementation и данных объекта.
Атрибуты, определенные в другом месте
, () (), () () () , , , , , , , , , (внутренние события) () () () , , , , , ()
В большинстве агентов пользователей имеются встроенные механизмы для генерации основных типов данных, таких как текст, изображения в формате GIF, цвета, шрифты и ряд графических элементов. Для генерации типов данных, которые агенты пользователей не поддерживают по умолчанию, они обычно запускают внешние приложения. Элемент позволяет авторам управлять генерацией данных - задавать внешнюю генерацию или использование некоторой определяемой автором программы, генерирующей данные в агенте пользователя.
В более общем случае автор должен будет определить три типа информации:
Реализация включенного объекта. Например, если включенный объект - апплет, автор должен указать местоположение исполняемого кода апплета.
Генерируемые данные. Например, если включенный объект является программой, генерирующей данные шрифта, автор должен указать местоположение этих данных.
Дополнительные значения, необходимые объекту. Например, некоторым апплетам могут быть нужны исходные значения для их параметров.
Элемент позволяет авторам указать все три типа данных объекта, но авторы не обязательно должны указывать их все. Например, некоторым объектам не требуются данные (например, апплет, выполняющий анимацию). Другим может быть не нужна инициализация. Другим же может не понадобиться дополнительная информация о реализации, то есть сам агент пользователя может уже знать, как генерировать этот тип данных (например, изображения в формате GIF).
Авторы задают реализацию объекта и местоположение данных, генерируемых с помощью элемента . Однако для указания рабочих значений авторы используют элемент , обсуждаемый в разделе об
Элемент OBJECT может также присутствовать внутри элемента . Поскольку агенты пользователей обычно не генерируют элементы в , авторам следует убедиться, что во всех элементах в нет содержимого, которое можно генерировать. Пример включения элемента в элемент см. в разделе о совместном использовании данных кадра.
Информацию об элементе в формах см. в разделе об управлении формами.
Отношения документов: элемент LINK
Начальный тэг: обязателен , Конечный тэг: запрещен
Атрибуты, определяемые в другом месте
, ()
(), ()
()
()
, , , , , , , , , (внутренние события)
, , , , ()
()
(информация о стиле заголовка)
()
Этот элемент определяет связь. В отличие от элемента , он может присутствовать только в разделе документа, хотя может присутствовать неограниченное число раз. Хотя элемент не имеет содержимого, он содержит информацию об отношениях, которая может представляться агентами пользователей различными способами (например, в виде панели с выпадающим списком ссылок).
В данном примере показано, как несколько определений элемента могут быть представлены в разделе документа. Текущим документом является "Chapter2.html". Атрибут указывает отношение связанного документа с текущим документом. Значения "Index", "Next" и "Prev" описаны в разделе, посвященном .
Глава 2 ...продолжение документа...
Отображение информации в кавычках
Визуальные агенты пользователей обычно генерируют элемент как блок с отступом.
Визуальные агенты пользователей должны обеспечивать отображение содержимого элемента с кавычками в начале и в конце. Авторы не должны помещать кавычки в начало и в конец текста в элементе .
Агенты пользователей должны генерировать кавычки с учетом принятого в данном языке стиля (см. атрибуты ). Во многих языках используются различные стили для внешних и внутренних (вложенных) кавычек, которые должны соответственно отображаться агентами пользователей.
В примере ниже показаны вложенные кавычки в элементе .
John said, I saw Lucy at lunch, she says Mary wants you to get some ice cream on your way home. I think I will get some at Ben and Jerry's, on Gloucester Road.
Поскольку в обеих цитатах используется английский язык, агенты пользователей должны генерировать их соответственно - одиночные кавычки во внутренних кавычках и двойные - во внешних:
John said, "I saw Lucy at lunch, she told me 'Mary wants you to get some ice cream on your way home.' I think I will get some at Ben and Jerry's, on Gloucester Road."
Примечание. В реализации таблиц стилей рекомендуется обеспечение механизма вставки кавычек перед цитатой, определяемой элементом , и после нее в соответствии с текущим языком и степенью вложенности кавычек.
Однако, поскольку некоторые авторы использовали элемент в основном для отступа текста, чтобы не нарушать намерения авторов, агенты пользователей не должны вставлять кавычки в стиль по умолчанию.
В связи с этим использование элемента для смещения текста .
Переход к ресурсу, на который указывает ссылка
По умолчанию со ссылкой связана загрузка другого ресурса Web. Это поведение достигается обычно путем выбора ссылки (например, с помощью щелчка мыши, ввода с клавиатуры и т.д.).
В следующем HTML-фрагменте содержится две ссылки, у одной целевым anchor является документ HTML с именем "chapter2.html", а у второй целевой anchor - изображение в формате GIF, расположенное в файле "forest.gif":
...какой-то текст...
Подробнее см. в главе два . См. также карту леса.
Путем активизации этих ссылок (с помощью щелчка мыши, ввода с клавиатуры, голосовых команд и т.д.) пользователи могут перейти к этим ресурсам. Обратите внимание, что атрибут в каждом исходном anchor указывает адрес целевого anchor с использованием URI.
Целевой anchor ссылки может быть элементом в документе HTML. Целевому anchor должно даваться имя и адрес URI, адресующий этот anchor, Должен содержать это имя в качестве идентификатора фрагмента.
Целевые anchors в документах HTML могут указываться с помощью элемента (именующего его с помощью атрибута ) или с помощью любого другого элемента (именующего с помощью атрибута ).
Таким образом, например, автор может создавать оглавление, элементы Которого являются ссылками на элементы заголовков , и т.д. в том же документе. Используя элемент для создания целевых anchors, можно записать:
Содержание;/H1> Введение Предыстория Более конкретные заметки ...продолжение содержания...
...тело документа...
...раздел 1...
...раздел 2...
...раздел 2.1...
Этого же эффекта можно достигнуть, сделав якорями сами элементы заголовка:
Содержание Введение Предыстория Более конкретные заметки ...продолжение содержания...
...тело документа...
Введение ... раздел 1...
Предыстория ... раздел 2...
Более конкретные заметки ...раздел 2.1...
Переносы
В HTML имеется два типа переносов: простой и мягкий перенос. Простой перенос должен интерпретироваться агентами пользователя просто как любой другой символ. Мягкий перенос показывает агенту пользователя, где можно сделать переход на новую строку.
Браузеры, которые интерпретируют мягкие переносы, должны обеспечивать следующую семантику: если строка прекращается в месте мягкого переноса, в конце первой строки должен отображаться символ переноса. Если строка не прерывается в месте мягкого переноса, символ переноса отображаться не должен. При выполнении таких операций как поиск и сортировка мягкие переносы всегда должны игнорироваться.
В языке HTML простой перенос представляется символом "-" (- или -). Мягкий перенос представляется комбинацией символов ( или )
Подсчет числа столбцов в таблице
Имеется два способа определения числа столбцов в таблице (в порядке старшинства):
Если элемент включает элементы или , агенты пользователей должны подсчитывать число столбцов, суммируя следующие цифры:
Для каждого элемента - значение его атрибута (по умолчанию 1).
Для каждого элемента , содержащего по крайней мере один элемент - игнорировать атрибут для элемента . Для каждого элемента выполнить вычисление из шага 1.
Для каждого пустого элемента - значение его атрибута (по умолчанию 1).
В противном случае, если элемент не содержит элементов или , агенты пользователей определять число столбцов из того, что необходимо для строк. Число столбцов равно число столбцов, необходимых строке с наибольшим числом столбцов, включая ячейки, span несколько столбцов. Для любой строки, число столбцов в которой меньше, конец этой строки будет дополняться пустыми ячейками. "Конец" строки зависит от .
Если таблица содержит элементы или , и эти два способа подсчет дают разные результаты, это является ошибкой.
Когда агент пользователя подсчитал число столбцов в таблице, он может сгруппировать их в
Например, для каждой из следующих таблиц, оба способа подсчета числа столбцов должны дать три столбца. Первые три таблицы могут генерироваться последовательно.
Подсчет ширины столбцов
Авторы могут указывать ширину столбцов тремя способами:
Фиксированная
Указание фиксированной ширины дается в пикселах (например, width="30"). Использование фиксированной ширины позволяет использовать последовательную генерацию.
В процентах
Указание ширины в процентах (например, width="20%") означает процент горизонтального пространства, доступного для таблицы (между текущим левым и правым полями, включая floats). Помните, что это пространство не зависит от самой таблицы, поэтому указание ширины в процентах позволяет использовать последовательную генерацию.
Пропорциональная
Указание пропорциональной ширины (например, width="3*") означает число частей горизонтального пространства, необходимого для таблицы. Если ширина таблицы определяется как фиксированное значение (с помощью атрибута width элемента ), агенты пользователей могут генерировать таблицу последовательно и с указанием пропорциональной ширины.
Однако если ширина таблицы не фиксирована, агенты пользователей должны получить все данные таблицы перед тем, как они смогут определить горизонтальное пространство, необходимое для таблицы. Только тогда это пространство может быть распределено между столбцами, для которых указана пропорциональная ширина.
Если автор не указывает для столбца информацию о ширине, агент пользователя не сможет форматировать таблицу последовательно, поскольку он вынужден будет ждать получения всех данных столбца для определения его ширины.
Если указанная для столбца ширина недостаточна для размещения содержимого какой-либо ячейки, агенты пользователей могут переформатировать таблицу.
Таблица в этом примере содержит шесть столбцов. Первый не принадлежит к явной группе столбцов. Следующие три образуют первую явную группу столбцов, а последние два - вторую явную группу столбцов. Эту таблицу нельзя отформатировать последовательно, поскольку она содержит столбцы пропорциональной ширины, а значение атрибута для элемента не указано.
Когда агент пользователя (визуальный) получит данные таблицы, доступное горизонтальное пространство будет распределяться агентом пользователя следующим образом: сначала агент пользователя распределит 30 пикселов на первый и второй столбец. Затем будет зарезервировано минимальное пространство, необходимое для третьего столбца. Оставшееся горизонтальное пространство будет разделено на шесть равных частей (поскольку 2* + 1* + 3* = 6 частей). Четвертый столбец (2*) получит две таких части, пятый (1*) - одну, а шестой - (3*) три.
Для атрибута во второй группе столбцов мы установили значение "center". Все ячейки в каждом столбце этой группы будут наследовать это значение, но могут переопределять его. В действительности последний элемент делает именно это, потому что в нем указано, что каждая ячейка столбца, которым он управляет, будет выровнена с использованием символа ":".
В следующей таблице спецификации ширины столбца позволяют агентам пользователя форматировать таблицу последовательно:
Первые десять столбцов имеют ширину 15 пикселов каждый. Последние два столбца получают по половине из оставшихся 50 пикселов. Помните, что элемент расположен так, что значение можно указать только для последних двух столбцов.
Примечание. Хотя атрибут элемента не является нежелательным, авторам рекомендуется использовать для указания ширины таблицы стилей.
Поля ячейки
Определения атрибутов
cellspacing =
Этот атрибут определяет пространство, которое агент пользователя должен оставить между левой стороной таблицы и левым краем крайнего левого столбца, верхней границей таблицы и верхним краем самой верхней строки и так далее для правой и нижней границ таблицы. Этот атрибут также определяет пространство между ячейками.
cellpadding =
Этот атрибут определяет пространство между границей ячейки и ее содержимым. Если значение этого атрибута указано в пикселах, все четыре поля должны иметь этот размер. Если значение атрибута указано в процентах, верхнее и нижнее поля должны быть отделены от содержимого на одинаковый процент доступного вертикального пространства, а левое и правое поля должны быть отделены от содержимого на одинаковый процент доступного горизонтального пространства.
Эти два атрибута управляют расстоянием между ячейками и внутри них. Они объясняются на следующей иллюстрации:
В следующем примере атрибут задает расстояние в двадцать пикселов между ячейками и от края таблицы. Атрибут определяет, что верхнее и нижнее поля ячейки отделяются от содержимого ячейки на 10% доступного вертикального пространства (всего 20%). Точно так же, левое и правое поле ячейки будут отделены от содержимого на 10% доступного горизонтального пространства (всего 20%).
Если таблица или данный столбец имеет фиксированную ширину, и могут занимать больше пространства, чем назначено. Агенты пользователей могут давать этим атрибутам приоритет над атрибутом в случае конфликта, но они не обязательно должны это делать.
Правила генерации объектов
Агент пользователя должен интерпретировать элемент в соответствии со следующими правилами старшинства:
Сначала агент пользователя должен попытаться сгенерировать объект. Он не должен генерировать содержимое элемента, но должен проверить его на случай, если элемент содержит дополнительные дочерние элементы (см. ) или элементы (см. ).
Если агент пользователя по какой-либо причине не может сгенерировать объект (не сконфигурирован для этого, недостаточно ресурсов, ошибочная архитектура и т.д.), он должен попытаться сгенерировать его содержимое.
Авторам не следует включать содержимое в элементы , расположенные в элементе .
В следующем примере мы вставляем в документ апплет, представляющий часы, с помощью элемента . Апплету, написанный на языке Python, не нужны дополнительные и рабочие значения. Атрибут определяет местоположение апплета:
Обратите внимание на то, что часы будут генерироваться, как только агент пользователя интерпретирует это объявление . Можно отложить генерацию объекта, начав с объявления объекта (описывается ниже).
Авторы должны выполнять объявление, включая альтернативный текст в качестве содержимого элемента в случае, если агент пользователя не может сгенерировать часы.
Часы с анимацией.
Одним важным последствием создания элемента является то, что он предлагает механизм задания альтернативной генерации объектов; в каждом внедренном объявлении могут задаваться альтернативные типы содержимого. Если агент пользователя не может сгенерировать outermost , он пытается сгенерировать содержимое, которое может юыть другим элементом и т.д.
В следующем примере мы внедряем несколько объявлений для того, чтобы показать работу альтернативной генерации. Агент пользователя попытается сгенерировать первый элемент , который он может, в следующем порядке: (1) апплет Earth, написанный на языке Python, (2) клип Земли в формате MPEG, (3) изображение Земли в формате GIF, (4) альтернативный текст.
Вид Земли из космоса.
Внешнее объявление определяет апплет, которому не нужны данные или начальные значения. Второе объявление определяет клип в формате MPEG и, поскольку местоположение обработчика формата MPEG не указано, предполагается, что клип будет обрабатываться агентом пользователя. Мы также установили атрибут type, так что агент пользователя, который знает, что он не может сгенерировать клип в формате MPEG, не будет загружать файл "TheEarth.mpeg" из сети. В третьем объявлении задается местоположение файла в формате GIF и определяется альтернативный текст на случай, если все прочие механизмы не сработают.
Встроенные и внешние данные. Данные, которые должны генерироваться, могут указываться двумя способами: в виде встроенного или внешнего ресурса. Последний метод обычно обеспечивает более быструю генерацию, но неудобен при генерации большого объема данных.
Ниже приводится пример, показывающий, как встроенные данные могут be fed to an :
Часы.
Информацию о размере, выравнивании и границах объекта см. в разделе .
Пример таблицы
В этом примере показаны сгруппированные строки и столбцы. Пример взят из книги "Разработка интернационального программного обеспечения" Надин Кэно.
В "формате ascii" следующая таблица:
ПОДДЕРЖКА КОДОВЫХ СТРАНИЦ В MICROSOFT WINDOWS ИД кодовой страницы Название ACP OEMCP Windows NT 3.1 Windows NT 3.51 Windows 95 1200 Unicode (BMP of ISO/IEC-10646) X X * 1250 Windows 3.1 Восточноевропейская X X X X 1251 Windows 3.1 Кириллица X X X X 1252 Windows 3.1 США (ANSI) X X X X 1253 Windows 3.1 Греческая X X X X 1254 Windows 3.1 Турецкая X X X X 1255 Иврит X X 1256 Арабская X X 1257 Балтийская X X 1361 Корейская (Johab) X ** X 437 США MS-DOS X X X X 708 Арабская (ASMO 708) X X 709 Арабская (ASMO 449+, BCON V4) X X 710 Арабская (Прозрачная арабская) X X 720 Арабская (Прозрачная ASMO) X X
может быть сгенерирована следующим образом:
ПОДДЕРЖКА КОДОВЫХ СТРАНИЦ В MICROSOFT WINDOWS ================================================================================= ИД кодовой| Название | ACP OEMCP | Windows Windows Windows Страницы | | | NT 3.1 NT 3.51 95 --------------------------------------------------------------------------------- 1200 | Unicode (BMP of ISO 10646) | | X X * 1250 | Windows 3.1 Восточноевропейская| X | X X X 1251 | Windows 3.1 Кириллица | X | X X X 1252 | Windows 3.1 США (ANSI) | X | X X X 1253 | Windows 3.1 Греческая | X | X X X 1254 | Windows 3.1 Турецкая | X | X X X 1255 | Иврит | X | X 1256 | Арабская | X | X 1257 | Балтийская | X | X 1361 | Корейская (Johab) | X | ** X ------------------------------------------------------------------------------- 437 | США MS-DOS | X | X X X 708 | Арабская (ASMO 708) | X | X 709 | Арабская (ASMO 449+, BCON V4) | X | X 710 | Арабская (Прозрачная арабская) | X | X 720 | Арабская (Прозрачная ASMO) | X | X ===============================================================================
Графический агент пользователя может сгенерировать ее следующим образом:
В данном примере показано, как можно использовать для группировки столбцов и установки выравнивания столбцов по умолчанию. Точно так же используется для группировки строк. Атрибуты и сообщают агенту пользователя, какие границы и rules должны генерироваться.
Примеры клиентских навигационных карт
В следующем примере мы создаем клиентскую навигационную карту для элемента . Сы не хотим генерировать содержимое карты при генерации элемента , поэтому мы "скроем" элемент в содержимом элемента . Затем содержимое элемента будет генерироваться, только если нельзя сегенировать содержимое элемента .
Крутая страница! Перемещение по узлу: Руководство по доступу | Переход | Поиск | Первые десять <
Нам может понадобиться генерация содержимого карты, даже если агент пользователя может сгенерировать элемент . Например, мы хотим связать навигационную карту с элементом и включить текстовую навигационную панель внизу страницы. Чтобы это сделать, определим элемент вне элемента :
Крутая страница!
...продолжение страницы...
Перемещение по узлу: Руководство по доступу | Переход | Поиск | Первые десять
В следующем примере мы создаем сходную навигационную карту, на этот раз используя элемент . Обратите внимание на использование текста :
Это навигационная панель.
Вот версия с использованием элемента вместо элемента (с тем же самым объявлением ):
В следующем примере показано, как элементы могут совместно использовать навигационные карты.
Вложенные элементы полезны для обеспечения fallbacks в случае, если агент пользователя не поддерживает определенные форматы. Например:
текст с описанием изображения...
Если агент пользователя не поддерживает формат PNG, он пытается сгенерировать изображение в формате GIF. Если он не поддерживает GIF (например, это речевой агент пользователя), он воспроизводит текстовое описание, указанное в содержимсом внутреннего элемента . Если элементы вложены таким образом, авторы могут обеспечивать совместное использование этими элементами навигационных карт:
Перемещение по узлу: Руководство по доступу | Переход | Поиск | Первые десять В следующем примере показано, как можно указать anchors для создания неактивных зон в навигационной карте. Первый anchor определяет небольшую круглую область, с которой не связана ссылка. Второй anchor определяет круглую область большего размера с той же координатой центра. Обе они вместе образуют кольцо, центр которого неактивен, а внешняя часть активна. Порядок определения anchor важен, поскольку меньший круг должен иметь приоритет над большим.
Я неактивная. Я активная.
Точно так же атрибут элемента объявляет, что с геометрической областью не связана ссылка.
Принудительный переход на новую строку: элемент BR
Начальный тег: обязателен , Конечный тег: запрещен
Атрибуты, определяемые в любом другом месте
, ()
()
()
()
Элемент принудительно разбивает (заканчивает) текущую строку текста.
Для визуальных агентов пользователей можно использовать атрибут для определения того, обтекает ли следующая за элементом разметка изображения и другие объекты, плавающие относительно левого или правого поля или начинается ниже объекта. Дальнейшая информация приведена в разделе о . Авторам рекомендуется использовать таблицы стилей для управления обтеканием текстом изображений и других объектов.
С использованием двунаправленного форматирования, элемент должен действовать так же, как действует символ РАЗДЕЛИТЕЛЬ СТРОКИ [ISO10646] в двунаправленном алгоритме.
Приоритет над двунаправленным алгоритмом: элемент BDO
Начальный тег: обязателен , Конечный тег: обязателен
Определения атрибутов
dir = LTR | RTL
Этот обязательный атрибут указывает основное направление текстового содержимого элемента. Это направление имеет приоритет по отношению к наследуемому направлению символов, как определено в [UNICODE]. Возможные значения:
LTR: Направление слева направо. RTL: Направление справа налево.
Атрибуты, определяемые в любом другом месте
()
Двунаправленного алгоритма и атрибута обычно достаточно для управления изменением направления внедренного текста. Однако в некоторых ситуациях двунаправленный алгоритм может привести к некорректному представлению. Элемент позволяет авторам отключать двунаправленный алгоритм для выбранных фрагментов текста.
Рассмотрите документ с тем же текстовым фрагментом:
английский1 ИВРИТ2 английский3 ИВРИТ4 английский5 ИВРИТ6
но предположите, что этот текст уже представлен в нужном порядке. Одной причиной этого может быть то, что стандарт MIME ([RFC2045], [RFC1556]) благоприятствует визуальному порядку, то есть последовательности с направлением справа налево вставляются в байтовый поток с направлением справа налево. В электронной почте это может форматироваться, включая перевод строки, например:
английский1 2ТИРВИ английский3 4ТИРВИ английский5 6ТИРВИ
Это конфликтует с двунаправленным алгоритмом [UNICODE], поскольку этот алгоритм инвертирует 2ТИРВИ, 4ТИРВИи 6ТИРВИ во второй раз, так что слова на иврите отображаются слева направо, а не справа налево.
В этом случае решением будет переопределить действие двунаправленного алгоритма, поместив выдержку Email в элемент (для сохранения переводов строки) и каждую строку, для которой атрибут установлен в LTR, в элемент :
английский1 2ТИРВИ английский3 4ТИРВИ английский5 6ТИРВИ
Двунаправленному алгоритму выдается команда "Я должен быть слева направо!", что приведет к нужному представлению:
английский1 2ТИРВИ английский3 4ТИРВИ английский5 6ТИРВИ
Элемент следует использовать в сценариях, где необходим абсолютный контроль над последовательностью (например, многоязыковые номера частей). Атрибут для этого элемента является обязательным.
Авторы могут также использовать специальные символы Unicode для того, чтобы избежать использования двунаправленного алгоритма -- LEFT-TO-RIGHT OVERRIDE (202D) или RIGHT-TO-LEFT OVERRIDE (шестнадцатеричный код 202E). Символ POP DIRECTIONAL FORMATTING (шестнадцатеричный код 202C) заканчивает любую последовательность, используемую для обхода двунаправленного алгоритма.
Примечание.
Помните, что при использовании атрибута во встроенных элементах (включая ) одновременно с соответствующими символами форматирования [UNICODE], могут возникать конфликты.
Двунаправленность и кодировка символов В соответствии с [RFC1555] и [RFC1556] существуют специальные соглашения относительно использования значений параметра "charset" для указания обработки двунаправленности в почте MIME, в частности для отличия визуальной, явной и неявной направленности. Значение параметра "ISO-8859-8" (для иврита) обозначает визуальную кодировку, "ISO-8859-8-i" обозначает неявную двунаправленность, а "ISO-8859-8-e" обозначает явную направленность.
Поскольку HTML использует двунаправленный алгоритм Unicode, соответствующие документы, использующие кодировку ISO 8859-8, должны помечаться как "ISO-8859-8-i". Явное управление направлением в HTML также возможно, но его нельзя выразить в ISO 8859-8, поскольку не следует использовать "ISO-8859-8-e".
Значение "ISO-8859-8" подразумевает, что документ отформатирован визуально, и некоторая разметка будет использоваться неправильно (например, с выравниванием по правому краю без разбивки строк), чтобы гарантировать правильное отображение для более старых агентов пользователя, не поддерживающих двунаправленность. Такие документы не удовлетворяют настоящей спецификации. При необходимости их можно изменить (и одновременно они будут корректно отображаться в старых версиях агентов пользователей), добавив, где нужно, разметку . Вопреки сказанному в [RFC1555] и [RFC1556], кодировка ISO-8859-6 (арабская) не представляет визуального порядка.
Прямые и обратные ссылки
Атрибуты и играют дополнительные роли - атрибут задает прямую ссылку, а атрибут - обратную.
Рассмотрим два документа - A и B.
Документ A:
имеет точно то же значение, что и:
Документ B:
Оба атрибута могут определяться одновременно.
Профили метаданных
Атрибут элемента указывает местоположение профиля метаданных. Значением атрибута является URI. Агенты пользователей могут использовать этот URI двумя способами:
Как глобальное уникальное имя. Агенты пользователя могут распознавать имя (не загружая в действительности профиль) и выполнять некоторые действия на базе известных соглашений для этого профиля. Например, поисковые машины могут обеспечивать интерфейс для поиска в каталогах документов HTML, где все эти документы используют один и тот же профиль для представления записей каталога.
Как ссылку. Агенты пользователей могут разыменовывать URI и выполнять некоторые действия на базе определений из профиля (например, авторизовать использование профиля в текущем документе HTML). В этой спецификации не определяются форматы профилей.
В этом примере используется гипотетический профиль, определяющий полезные свойства для индексирования документов. Для свойств, определяемых этим профилем - включая "author", "copyright", "keywords" и "date" -- значения устанавливаются с помощью последовательных объявлений .
How to complete Memorandum cover sheets
Во время написания этой спецификации распространенной стала практика использования форматов дат, описанных в [RFC2068], раздел 3.3. Поскольку обработка этих форматов относительно сложна, мы рекомендуем авторам использовать формат даты [ISO8601]. Подробнее см. разделы об элементах и .
Атрибут позволяет авторам предоставлять агентам пользователей дополнительный контекст для корректной интерпретации метаданных. Иногда такая дополнительная информация может иметь важное значение, например, если метаданные указаны в другом формате. Например, автор может указать дату в формате "10-9-97" (неоднозначно); означает ли это 9 октября 1997 г. или 10 сентября 1997 г.? Значение атрибута "Month-Date-Year" устранит неоднозначность.
В других случаях атрибут может предоставлять агентам пользователей полезную, но не столь важную информацию.
Например, следующее объявление поможет агентам пользователей определить, что значение свойства "identifier" - номер кода ISBN:
Значения атрибута зависят от свойства name и связанного .
Примечание. Примером профиля является Dublin Core (см. [DCORE]). Этот профиль определяет набор рекомендуемых свойств для электронных библиографических описаний и предназначен для обеспечения интероперабельности в несопоставимых моделях описаний.
Пространство вокруг изображений и объектов
Атрибуты vspace и hspace определяют свободное пространство слева и справа (hspace) и над и под (vspace) , , . По умолчанию значение этого атрибута не определено, но обычно это небольшое ненулевое значение. Оба атрибута имеют значение типа .
Разметка изменений в документе: Элементы INS и DEL
Начальный тег: обязателен , Конечный тег: обязателен
Определения атрибутов
cite =
Значением этого атрибута является адрес URI, определяющий источник документа или сообщения. Этот атрибут указывает на информацию, объясняющую причины изменения документа.
datetime
=
Значение этого атрибута указывает дату и время выполнения изменения.
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , , (внутренние события)
Элементы и используются для разметки вставленных или удаленных разделов документа по отношению к другой версии документа (например, в черновике законопроекта, куда юристы должны вносить поправки).
Эти два элемента необычны для HTML, поскольку они могут служить элементами уровня блока или встроенными элементами (но не теми и другими). Они могут содержать одно или несколько слов в абзаце или один или несколько элементов уровня блока - абзацев, списков и таблиц.
Это пример законопроекта о количестве депутатов у окружного шерифа - 3 исправлено на 5.
У шерифа может быть 35 депутатов.
Элементы и не должны включать содержимое уровня блока, если они являются встроенными элементами.
ПРИМЕР НЕДОПУСТИМОГО ИСПОЛЬЗОВАНИЯ:
Ниже показан недопустимый код HTML.
...содержимое уровня блока...
Агенты пользователей должны генерировать вставленный и удаленный текст так, чтобы изменения были очевидны. Например, вставленный текст может отображаться специальным шрифтом, удаленный текст может вообще не отображаться, отображаться перечеркнутым или со специальными пометками и т.д.
Оба примера ниже соответствуют 5 ноября 1994 года, 20 ч. 15 мин. 30 с по стандартному восточному времени США.
1994-11-05T13:15:30Z 1994-11-05T08:15:30-05:00
С использованием элемента получаем:
Более того, последние цифры из отдела маркетинга говорят о том, что это полезная практика.
В документе "http://www.foo.org/mydoc/comments.html" должны содержаться комментарии о том, почему эта информация помещена в документ.
Авторы также могут оставлять комментарии о вставленном или удаленном тексте для элементов и с помощью атрибута . Агенты пользователей могут представлять эту информацию пользователю (например, в виде всплывающего сообщения). Например:
Более того, последние цифры из отдела маркетинга говорят о том, что это полезная практика.
Разрешение относительных URI
Агенты пользователей должны вычислять базовый URI для разрешения относительных URI в соответствии с [RFC1808], раздел 3. Далее описано, как [RFC1808]
применяется именно к HTML.
Агенты пользователей должны вычислять базовый URI в соответствии со следующим приоритетом (от высшего приоритет к низшему):
Базовый URI, устанавливаемый элементом .
Базовый URI, задаваемый метаданными, обнаруженными в процессе работы по протоколу, такими как заголовок HTTP (см. [RFC2068]).
По умолчанию базовым URI является URI текущего документа. Не все документы HTML имеют базовый URI (например, документ HTML может присутствовать в сообщении электронной почты и может не определяться никаким URI). Такие документы HTML считаются erroneous, если они содержат относительные URI и используют базовый URI по умолчанию.
Кроме того, элементы и определяют атрибуты, имеющие преимущество над значением, установленным для элемента . Подробнее об относящихся к ним определениям URI см. в определениях этих элементов.
Ссылки, указанные в заголовках HTTP, обрабатываются в точности так, как элементы , явно установленные в документе.
Серверные навигационные карты
Серверные навигационные карты представляют интерес в случаях, когда карта слишком сложна.
Определить серверную навигационную карту можно только для элементов и . В случае элемента этот элемент должен быть включен в элемент . В случае элемента он должен иметь тип "image". В обоих случаях для элемента должен быть установлен логический атрибут ismap .
Когда пользователь активизирует ссылку, щелкнув на изображении, экранные координаты отправляются непосредственно на сервер, на котором располагается документ. Экранные координаты выражаются в виде пикселов относительно изображения. Нормативную информацию об определении пикселов и об их масштабировании см. в [CSS1].
В следующем примере активная область определяет серверную ссылку. Таким образом щелчок в любой точке изображения вызовет передачу координат на сервер.
Координаты области, в которой произошел щелчок, передаются на сервер следующим образом. Агент пользователя получает новый адрес URI из адреса URI, указанного в атрибуте элемента , добавляя `?', за которым следуют координаты x и y, разделенные запятой. Затем происходит переход по ссылке с использованием нового адреса URI. Например, в данном примере, если пользователь щелкает в точке с координатами x=10, y=27, то новый адрес URI - "http://www.acme.com/cgi-bin/competition?10,27".
Агенты пользователей, не предлагающие пользователям средств выбора определенных координат (например, неграфические агенты пользователей, зависящие от ввода с клавиатуры, речевые агенты пользователей и т.д.) должны при активизации ссылки передавать на сервер координаты "0,0".
Ширина и высота
Определения атрибутов
width =
Переопределение ширины изображения и объекта.
height =
Переопределение для изображения и объекта.
Если указаны атрибуты и , они сообщают агентам пользователя о необходимости переопределения исходного размера изображения или объекта этими значениями.
Если объектом является изображение, оно масштабируется. Агенты пользователей должны наилучшим образом масштабировать объект или изображение, чтобы они соответствовали ширине и высоте, определенным автором. Обратите внимание, что длины, выраженные в процентах, зависят от доступного горизонтального или вертикального пространства, а не от исходного размера изображения, объекта или апплета.
Атрибуты и дают агентам пользователей представление о размере изображения или объекта, чтобы они могли зарезервировать соответствующее пространство и продолжать генерацию документа, ожидая данных об изображении.
Синтаксис имен якорей
Именем якоря является значение атрибута или атрибута , используемого в контексте якоря. К именам якорей применяются следующие правила:
Уникальность: Имена якорей должны быть уникальны в пределах документа. Имена якорей в одном документе не могут отличаться только регистром.
Соответствие строк: Сравнение между идентификаторами фрагментов и именами якорей должно проводиться на основе полного (с учетом регистра) совпадения.
Таким образом, следующий пример является корректным в смысле соответствия строк и должен рассматриваться агентами пользователей как совпадение:
... ...некоторый текст...
...
ПРИМЕР НЕДОПУСТИМОГО ИСПОЛЬЗОВАНИЯ:
Следующий пример не является корректным в смысле уникальности, поскольку два имени отличаются только регистром:
... ...
Хотя далее приводится допустимый код HTML, поведение агента пользователя в данном случае не определено; некоторые агенты пользователей могут (ошибочно) считать это совпадением, другие могут так не считать.
... ...некоторый текст...
...
Имена якорей должны содержать только символы набора ASCII. Подробнее см. в разделе .
Списки определений: элементы DL, DT и DD
Начальный тег: обязателен , Конечный тег: обязателен
Начальные тег: обязателен , Конечный тег: не обязателен
Атрибуты, определяемые в любом другом месте
, () (), () () () , , , , , , , , , (внутренние события)
Списки определений незначительно отличаются от других типов списков - тем, что элементы состоят из двух частей: термина и определения. Термин обозначается с помощью элемента и может иметь только встроенное содержимое. Описание указывается с помощью элемента , имеющим содержимое уровня блока.
Пример:
Dweeb young excitable person who may mature into a Nerd or Geek
Cracker hacker on the Internet
Nerd male so into the Net that he forgets his wife's birthday
Вот пример с несколькими терминами и определениями:
Center Centre A point equidistant from all points on the surface of a sphere. In some field sports, the player who holds the middle position on the field, court, or forward line.
Другим применением элемента , например, может быть разметка диалогов, где каждый элемент означает говорящего, а в каждом элементе содержатся его слова.
Ссылки и поисковые машины
Авторы могут использовать элемент для указания различной информации для поисковых машин, включая:
Ссылки на альтернативные версии документа, написанные на других языках.
Ссылки на альтернативные версии документа, разработанные для других устройств, например, на версии, предназначенные специально для печати.
Ссылки на начальные страницы набора документов.
В примерах ниже показано, как информация о языке, типах устройств и типах ссылок может использоваться для улучшения обработки документа поисковыми машинами.
В следующем примере мы используем атрибут , чтобы сообщить поисковым машинам, где находятся голландская, португальская и арабская версии документа. Обратите внимание на использование атрибутов и для руководства на арабском языке, а также на использование атрибута для указания того, что значением атрибута для элемента , указывающего руководство на французском языке, задано по-французски.
Руководство на английском языке
В следующем примере мы сообщаем поисковым машинам, где находится печатная версия руководства.
Руководство
В следующем примере мы сообщаем поисковым машинам, где находится первая страница набора документов.
Руководство - страница 5
Дальнейшая информация приведена в замечаниях в приложении о том, .
Ссылки и внешние таблицы стилей
Если элемент ссылается на внешнюю таблицу стилей для документа, атрибут указывает язык таблицы стилей, а атрибут - предполагаемое устройство или устройства для представления документа. Агенты пользователей могут сэкономить время, загружая из сети только те таблицы стилей, которые применяются к текущему устройству.
обсуждаются в разделе, посвященном таблицам стилей.
Ссылки на символы для управления направлением и объединением
Поскольку иногда возникает двусмысленность относительно некоторых символов (например, символов пунктуации), спецификация [UNICODE] включает символы для правильного определения назначения. Спецификация Unicode также включает некоторые символы для управления объединением при необходимости (например, в некоторых ситуациях с арабскими символами). HTML 4.0 включает для этих символов .
Следующее DTD определяет представление некоторых объектов направления:
Объект zwnj используется для блокировки объединения в тех контекстах, где объединение произойдет, но оно происходить не должно. Объект zwj имеет обратное действие; он производит объединение в случае, когда оно не предполагается, но должно произойти. Например, арабская буква "HEH" используется для сокращения "Hijri", названия исламской системы летоисчисления. Поскольку отдельный иероглиф "HEH" в арабской письменности выглядит как цифра пять, для того, чтобы не путать букву "HEH" с последней цифрой пять в годе, используется исходная форма буквы "HEH". Однако, нет последующего контекста (например, буквы для объединения), с которым можно объединить "HEH". Символ zwj предоставляет такой контекст.
Точно так же в персидских текстах буква может иногда объединяться с последующей буквой, в то время как в рукописном тексте этого быть не должно. Символ zwnj используется для блокировки объединения в таких случаях.
Символы порядка, lrm и rlm, используются для определения направления нейтральных по отношению к направлению символов. Например, если двойные кавычки ставятся между арабской (справа налево) и латинской (слева направо) буквами, направление кавычек неясно (относятся ли они к арабскому или к латинскому тексту?). Символы lrm и rlm имеют свойство направления, но не имеют свойств ширины и разделения слов/строк. Подробнее см. [UNICODE].
Отражение глифов символов.
Вообще двунаправленный алгоритм не отражает глифы символов и не влияет на них. Исключением являются такие символы как скобки (см. [UNICODE], таблица 4-7). Если отражение желательно, например, для египетских иероглифов, греческих знаков или специальных эффектов дизайна, можно сделать это с помощью стилей.
Строки и абзацы
Авторы традиционно разделяют свои тексты на последовательности абзацев. Организация информации в абзацы не влияет на представление абзаца: абзацы с двойным выравниванием содержат те же мысли, что и абзацы с выравниванием влево.
Разметка HTML для определения абзаца проста: элемент определяет новый абзац.
Визуальное представление абзаца не так просто. Имеется ряд проблем, стилистических и технических:
Обработка непечатных символов
Перенос строки и продолжение слов
Выравнивание
Перенос
Соглашения относительного письменного языка и направления текста
Форматирование абзацев относительно окружающего
Эти вопросы обсуждаются ниже. обсуждаются далее в этом документе.
Строки таблицы: элемент TR
Начальный тег: обязателен , Конечный тег: не обязателен
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , , ()
, , , ()
Элементы служат контейнерами для строки ячеек таблицы. Конечный тег можно опустить.
Эта простая таблица состоит из трех строк, каждая из которых начинается с элемента :
Сколько чашек кофе выпивает каждый сенатор ...Строка заголовка...
...Первая строка данных...
...Вторая строка данных...
...продолжение таблицы...
Связь информации заголовка с ячейками данных
Невизуальные агенты пользователей, такие как синтезаторы речи и устройства на базе азбуки Бройля, могут использовать следующие атрибуты элементов и для более intuitive генерации ячеек таблицы:
Для данной ячейки данных в атрибуте перечислено, в каких ячейках находится pertinent информация заголовка. С этой целью каждая ячейка заголовка должна получить имя с использованием атрибута . Помните, что не всегда возможно явно разделить ячейки на заголовки и данные. В таких ячейка следует использовать элемент вместе с атрибутами или .
Для данной ячейки заголовка атрибут сообщает агенту пользователя ячейки данных, информация для которых указывается этим заголовком. Авторы могут использовать этот атрибут вместо в зависимости от того, что более удобно; эти два атрибута имеют одну и ту же функцию. Атрибут обычно нужен, если заголовки помещаются в нестандартном положении по отношению к данным, к которым они применяются.
Атрибут abbr задает сокращенный заголовок для ячеек заголовков, так что агенты пользователя могут быстрее генерировать информацию заголовка.
В следующем примере мы назначаем информацию заголовка ячейкам, устанавливая атрибут . Каждая ячейка в одном и том же столбце относится к одной и той же ячейке заголовка (с помощью атрибута ).
Сколько чашек кофе выпивает каждый сенатор Имя Сколько Тип кофе Сахар? Т. Секстон 10 Эспрессо Нет Дж. Диннен 5 Без кофеина Да
Синтезатор речи может генерировать эту таблицу следующим образом:
Заголовок: Сколько чашек кофе выпивает каждый сенатор Summary: В этой таблице приводится информация о том, сколько чашек кофе выпивает каждый сенатор, о типа кофе (без кофеина или обычный) и о сахаре. Имя: Т. Секстон, Сколько: 10, Тип: Эспрессо, Сахар: Нет Имя: Дж. Диннен, Сколько: 5, Тип: Без кофеина, Сахар: Да
Заметьте, что заголовок "Тип кофе" сокращается до "Тип" с помощью атрибута .
Вот тот же пример, использующий атрибут вместо атрибута . Обратите внимание на значение "col" для атрибута , означающее "все ячейки в текущем столбце":
Сколько чашек кофе выпивает каждый сенатор Имя Сколько Тип кофе Сахар? Т. Секстон 10 Эспрессо Нет Дж. Диннен 5 Без кофеина Да
Ниже приводится несколько более сложный пример, в котором показаны другие значения атрибута :
Курсы - Бат, осень 1997 г. Название курса Преподаватель курса Описание Код Стоимость После Гражданской войны Доктор Джон Раутон В этом курсе изучаются turbulent годы в Англии после 1646 года. 6 еженедельных занятий, начиная с понедельника, 13 октября. H27 £32 Англо-саксонская Англия - введение Марк Коттл Однодневный курс - введение в раннесредневековый период Реконструкции англо-саксонского общества. Суббота, 18 октября. H28 £18 Греция Валери Лоренц Колыбель демократии, философии, сердце театра, родина аргумента. Это могли сделать римляне, если бы греки не опередили их. Субботняя школа 25 октября 1997 года H30 £18
Графический агент пользователя может сгенерировать это следующим образом:
Обратите внимание на использование атрибута со значением "row". Хотя первая ячейка в каждой строке содержит данные, а не заголовок, благодаря атрибуту ячейки данных выглядят как ячейки заголовка строки. Это позволяет синтезаторам речи указывать соответствующее название курса по запросу или произносить его непосредственно перед содержимым ячейки.
Таблицы стилей и двунаправленность
Вообще использование таблиц стилей для изменения визуального представления элемента с уровня блока до встроенного и наоборот используется в прямом направлении. Однако, поскольку двунаправленный алгоритм использует , во время преобразования нужно быть внимательным.
Если встроенный элемент, не имеющий атрибута преобразуется в стиль элемента уровня блока с помощью таблицы стилей, для определения основного направления блока он наследует атрибут от ближайшего родительского элемента блока.
Если элемент блока, не имеющий атрибута a преобразуется к стилю встроенного элемента с помощью таблицы стилей, результирующее представление должно быть эквивалентным, в терминах двунаправленного форматирования, форматированию, получаемому путем явного добавления атрибута (которому назначено унаследованное значение) преобразованному элементу.
Текст
В следующих разделах обсуждаются вопросы структурирования текста. Элементы (элементы выравнивания, шрифта, таблицы стилей и т.д.) обсуждаются в других частях этой спецификации. Информацию о символах см. в разделе о наборе символов документа.
Указание метаданных
В общем случае задание метаданных состоит из двух шагов:
Объявление свойства и его значения. Это можно сделать двумя способами:
Из документа с помощью элемента .
Не из документа с помощью ссылки на метаданные через элемент (см. раздел о ).
Сославшись на в котором определяются свойства и их допустимые значения. Для назначения профиля используйте атрибут элемента .
Помните, что поскольку профиль определяется для элемента , этот профиль применяется ко всем элементам и в заголовке документа.
Агенты пользователей не обязательно должны поддерживать механизмы метаданных. В этой спецификации не определяется интерпретация метаданных.
Указание направления текста и таблиц: атрибут dir
Определения атрибутов
dir = LTR | RTL
Этот атрибут задает основное направление нейтрального в смысле направления текста (например, текста, который не наследует направленность, как определено в [UNICODE]) и . Возможные значения:
LTR: Слева направо. RTL: Справа налево.
Кроме задания языка документа с помощью атрибута , авторы могут указать основное направление (слева направо или справа налево) частей текста, таблицы и т.д. Это делается с помощью атрибута .
Спецификация [UNICODE] назначает направление символам и определяет (сложный) алгоритм для определения соответствующего направления текста. Если документ не содержит отображаемых справа налево символов, агент пользователя не должен использовать двунаправленный алгоритм [UNICODE]. Если документ содержит такие символы, и если агент пользователя и отображает, он должен использовать двунаправленный алгоритм.
Хотя в Unicode определены специальные символы, отвечающие за направление текста, HTML предлагает конструкции разметки высшего уровня, выполняющие те же функции: атрибут (не спутайте с элементом ) и элемент . Таким образом, чтобы привести цитату на иврите, проще написать
...цитата на иврите...
чем с эквивалентными ссылками Unicode:
״...цитата на иврите...״
Агенты пользователей не должны использовать атрибут lang для определения направления текста.
Атрибут наследуется, и его можно переопределить. Подробнее см. в разделе о .
Управление переходом на следующую строку
Переходом на следующую строку считается возврат каретки (
), перевод строки (OA;) или пара возврат каретки/перевод строки. Все переходы на другую строку являются
Подробнее о переходе на другую строку в спецификации SGML см. в разделе в приложении.
Установка направления внедренного текста
Двунаправленный алгоритм [UNICODE] автоматически обращает последовательности внедренных символов в соответствии с наследуемым направлением (как показано в предыдущих примерах). Однако в общем в расчет принимается только один уровень внедрения. Для того, чтобы изменения направления достигали дополнительных уровней, используйте атрибут во встроенном элементе.
Рассмотрите текст предыдущего примера:
английский1 ИВРИТ2 английский3 ИВРИТ4 английский5 ИВРИТ6
Предположим, основным языком для документа, содержащего этот абзац, является английский. В этом английском предложении содержится фрагмент на иврите, продолжающийся от ИВРИТ2 до ИВРИТ4, и в нем содержится англоязычный фрагмент (английский3). Таким образом, желаемое представление текста:
английский1 4ТИРВИ английский3 2ТИРВИ английский5 6ТИРВИ -------> А <----------------------- И ----------------------------------------------------> А
Для изменения направления текста двух внедренных фрагментов необходимо задать дополнительную информацию, что мы и делаем, явно разделяя второе внедрение. В этом примере мы используем для разметки текста элемент и атрибут :
английский1 ИВРИТ2 английский3 ИВРИТ4 английский5 ИВРИТ6
Авторы также могут использовать для изменения направления нескольких внедренных фрагментов символы Unicode. Для указания направления слева направо во внедряемом фрагменте окружите текст символами LEFT-TO-RIGHT EMBEDDING ("LRE", шестнадцатеричный код 202A) и POP DIRECTIONAL FORMATTING ("PDF", шестнадцатеричный код 202C). Для указания направления справа налево во внедряемом фрагменте окружите текст символами RIGHT-TO-LEFT EMBEDDING ("RTE", шестнадцатеричный код 202B) и PDF.
Использование разметки направленности HTML с символами Unicode. Авторы и разработчики средств создания HTML-документов должны знать о возможных конфликтах, возникающих при использовании атрибута со встроенными элементами (включая ) одновременно с соответствующими символами форматирования [UNICODE]. Предпочтительнее использовать только один метод. Метод с использованием разметки гарантирует структурную целостность документа и устраняет некоторые проблемы с редактированием двунаправленного текста HTML в простых текстовых редакторах, но некоторое программное обеспечение может лучше использовать символы [UNICODE]. Если используются оба метода, следует хорошо позаботиться о правильном вложении разметки и символов, иначе результаты могут быть непредсказуемыми.
Верхние и нижние индексы: элементы SUBи SUP
Начальный тег: обязателен , Конечный тег: обязателен
Атрибуты, определяемые в любом другом месте
, ()
(), ()
()
()
, , , , , , , , , (внутренние события)
Часто для правильной генерации необходимы верхние и нижние индексы (например, во французском языке). В этих случаях для разметки текста должны использоваться элементы и .
H2 O E = mc2 Mlle Dupont
Визуальное отображение абзацев
Примечание. В следующем разделе содержится информативное описание обработки некоторыми из визуальных агентов пользователя форматированного текста. Таблицы стилей предоставляют лучшие возможности управления форматированием текста.
Визуальное генерирование абзацев зависит от агента пользователя. Обычно абзацы генерируются с выравниванием влево и неровным правым полем. Для направления текста справа налево используются другие значения по умолчанию.
Агенты пользователей HTML традиционно генерируют абзацы с непечатным символом перед абзацем и после него, например,
Одновременно начали формироваться система нумерации, календарь, иероглифическое письмо и технически развитое искусство, все, что позже повлияло на других людей.
В рамках этого развития или культурного прогресса Предклассическая эпоха подразделяется на Ранний, Средний и Поздний периоды, к которым можно добавить переходный или протоклассический период, некоторые черты которого будут потом присущи цивилизациям Америки.
Это отличается от стиля, используемого в романах, где первая строка каждого абзаца смещена, а интервал между последней строкой текущего абзаца и первой строкой следующего не отличается от межстрочных интервалов внутри абзаца, например,
Одновременно начали формироваться система нумерации, календарь, иероглифическое письмо и технически развитое искусство, все, что позже повлияло на других людей. В рамках этого развития или культурного прогресса Предклассическая эпоха подразделяется на Ранний, Средний и Поздний периоды, к которым можно добавить переходный или протоклассический период, некоторые черты которого будут потом присущи цивилизациям Америки.
Следуя установкам браузера NCSA Mosaic, созданного в 1993 году, агенты пользователей обычно не выравнивают оба поля, частично из-за сложности этого процесса при отсутствии специальных процедур расстановки переносов. Использование таблиц стилей и шрифтов без псевдонимов с субпиксельным позиционированием обещает авторам текстов на языке HTML более широкие возможности.
Таблицы стилей предоставляют широкие возможности управления размером и стилем шрифтов, полями, расстояниями перед и после абзацев, отступом первой строки, выравниванием и многими другими аспектами. Таблица стилей агента пользователя, используемая по умолчанию, генерирует элементы как показано выше. В принципе, можно переопределить такую генерацию абзацев, без использования символов перехода на следующую строку, которые существенно изменяют абзац. Вообще же, поскольку это может запутать читателей, так делать не рекомендуется.
По соглашению визуальные агенты HTML разбивают текстовые строки так, чтобы они входили в пределы используемых полей. Алгоритмы разбиения зависят от сценария форматирования.
В западных сценариях, например, текст должен разбиваться только в позиции, где стоит неотображаемый символ. Ранние версии агентов пользователей некорректно разбивали строки сразу же после начального тега или перед конечным тегом элемента, что приводило к нарушению пунктуации. Например, рассмотрите предложение:
Статуя Свободы , которая является ...
Разбиение строки сразу перед конечным тегом элемента приведет к тому, что запятая будет помещена в начало следующей строки:
Статуя Свободы , которая является ...
Это ошибка, поскольку в разметке в этой позиции нет неотображаемого символа.
Визуальное отображение списков
Примечание. Ниже приводится информативное описание поведения некоторых имеющихся на настоящий момент визуальных агентов пользователей при форматировании списков. Таблицы стилей предоставляют большие возможности управления форматированием списков (например, в отношении нумерации, соглашений, используемых в разных языках, отступов и т.д.).
Визуальные агенты пользователей обычно сдвигают вложенные списки соответственно уровню вложенности.
Для элементов и атрибут определяет параметры генерации для визуальных агентов пользователей.
Для элемента возможными значениями атрибута являются disc, square и circle. Значение, используемое по умолчанию, зависит от уровня вложенности текущего списка. Эти значения не учитывают регистр.
Представление каждого значения зависит от агента пользователя. Агенты пользователей должны пытаться представлять "disc" в виде небольшого заполненного кружка, "circle" - в виде окружности, а "square" в виде небольшого квадрата.
Графические агенты пользователь могут генерировать их как:
для значения "disc"
для значения "circle"
для значения "square"
Для элемента возможные значения атрибута приведены в следующей таблице (они учитывают регистр):
TypeСтиль нумерации
1 арабские цифры 1, 2, 3, ...
a буквы нижнего регистра a, b, c, ...
A буквы верхнего регистра A, B, C, ...
i римские цифры в нижнем регистре i, ii, iii, ...
I римские цифры в верхнем регистре I, II, III, ...
Помните, что использование атрибута , и стили списков должны определяться с помощью таблиц стилей.
Например, с помощью CSS можно указать, что стиль нумерации для элементов списка в нумерованном списке - римские цифры нижнего регистра. В приведенном ниже примере каждый элемент , принадлежащий классу "withroman", обозначается римской цифрой.
Шаг один ... Шаг два ...
Генерация списка определений также зависит от агента пользователя. Например, список:
Dweeb young excitable person who may mature into a Nerd or Geek
Cracker hacker on the Internet
Nerd male so into the Net that he forgets his wife's birthday
может генерироваться следующим образом:
Dweeb young excitable person who may mature into a Nerd or Geek
Cracker hacker on the Internet Nerd male so into the Net that he forgets his wife's birthday
Визуальное представление изображений, объектов и апплетов
Все атрибуты элементов и , относящиеся к визуальному выравниванию и представлению, являются , вместо них следует использовать таблицы стилей.
Включение апплета: элемент APPLET
Элемент APPLET является , вместо него следует использовать элемент .
Формальное определение см. в .
Определения атрибутов
codebase =
Этот атрибут определяет базовый адрес URI апплета. Если этот атрибут не указан, по умолчанию используется базовый адрес URI, используемый для всего документа. Значениями этого атрибута могут быть только подкаталоги каталога, в котором расположен текущий документ.
code =
Этот атрибут определяет имя файла класса, содержащего скомпилированный подкласс апплета или путь, по которому можно получить класс, включая сам файл класса. Он интерпретируется с учетом кода апплета. Для этого должен быть указан один из атрибутов или .
name =
Этот атрибут определяет имя экземпляра апплета, что дает возможность апплетам на одной странице находить друг друга и взаимодействовать друг с другом.
archive =
Этот атрибут определяет разделенный запятыми список адресов URI архивов, содержащих классы и другие ресурсы, которые будут "предварительно загружаться". Классы загружаются с помощью экземпляра AppletClassLoader с заданным . Относительные адреса URI архивов интерпретируются относительно codebase апплета. Предварительная загрузка ресурсов может существенно увеличить производительность апплетов.
object =
Этот атрибут определяет имя ресурса, содержащего serialized представление состояния апплета. Он интерпретируется относительно codebase апплета. serialized данные содержат имя класса апплета, но не обработчика. Имя класса используется для загрузки обработчика из файла класса или архива.
Если апплет "deserialized", метод start() вызывается вместо метода init(). Атрибуты, допустимые при serialized исходного объекта, не восстанавливаются. Атрибуты, переданные в этот экземпляр , будут доступны апплету. Авторам следует очень осторожно использовать это свойство. Перед serialized вапплет должен быть остановлен.
Должен присутствовать один из атрибутов или . Если даны оба атрибута и , и в них указаны разные имена классов, это является ошибкой. width =
Этот атрибут определяет начальную ширину области отображения апплета (не включая окна и диалоги, создаваемые апплетом).
height =
Этот атрибут определяет начальную высоту области отображения апплета (не включая окна и диалоги, создаваемые апплетом).
Атрибуты, определенные в другом месте
, () () () () , , ()
Этот элемент, поддерживаемый всеми программами просмотра с поддержкой Java, позволяет дизайнерам внедрять апплеты Java в документы HTML. Он является нежелательным, и вместо него следует использовать элемент .
Содержимое элемента служит альтернативной информацией для агентов пользователей, не поддерживающих этот элемент или не сконфигурированных для поддержки апплетов. В противном случае агенты пользователей должны игнорировать содержимое.
ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
В следующем примере элемент включает в документ апплет на языке Java. Поскольку атрибут не установлен, предполагается, что апплет находится в том же каталоге, что и сам документ.
Java-апплет, рисующий движущиеся пузыри.
Этот пример можно переписать с использованием элемента следующим образом:
Java-апплет, рисующий движущиеся пузыри.
Задать для апплета исходные значения можно с помощью элемента .
ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
Следующий апплет на языке Java:
Java-апплет, воспроизводящий звуковой файл приветствия.
можно определить с использованием элемента следующим образом:
Java-апплет, воспроизводящий звуковой файл приветствия.
Включение изображения: элемент IMG
Начальный тег: обязателен , Конечный тег: запрещен
Определения атрибутов
src = uri
Этот атрибут задает местоположение изображения. Примерами широко распознаваемых форматов являются GIF, JPEG и PNG.
longdesc = uri
Этот атрибут определяет ссылку на длинное описание изображения. Это описание должно дополнять краткое описание, задаваемое атрибутом . Если с изображением связана , в этом атрибуте должна приводиться информация о ее содержимом. Это особенно важно для серверных навигационных карт.
Атрибуты, определенные в другом месте
, () () (), () () () , , , , , , , , , () , ()
, , , , , ()
Элемент внедряет изображение в текущий документ по адресу из определения элемента. Элемент не имеет содержимого; обычно он замещается изображением, назначаемым атрибутом , исключение при этом составляют выровненные влево или вправо изображения, которые out of line.
В приведенном ранее примере мы определили ссылку на семейную фотографию. Здесь мы вставим фотографию непосредственно в текущий документ:
Я только что вернулся из отпуска! Вот фотография моей семьи на озере:
Этого же эффекта можно достичь с помощью элемента следующим образом:
Я только что вернулся из отпуска! Вот фотография моей семьи на озере: Фотография моей семьи на озере.
Атрибут задает альтернативный текст, который генерируется, если изображение невозможно отобразить (информацию о том, , см. ниже ). Агенты пользователей должны генерировать альтернативный текст, если они не поддерживают изображение, если они не поддерживают определенный тип изображений или если они сконфигурированы так, чтобы не выводить изображений.
В следующем примере показано, как можно использовать атрибут longdesc для ссылки на более подробное описание:
Атрибут задает краткое описание изображения. Его должно быть достаточно для того, чтобы пользователи могли решить, хотят ли они следовать по ссылке, определяемой атрибутом longdesc для более получения подробного описания, здесь это ссылка "sitemap.html".
Информацию о размере изображения, выравнивании и границах см. в разделе о .
Вложенные ссылки недопустимы
Ссылки и якоря, определяемые элементом , не могут быть вложенными; элемент не должен содержать других элементов .
Поскольку DTD определяет элемент как пустой, элементы также не могут быть вложенными.
Введение в двунаправленный алгоритм
В следующем примере проиллюстрировано ожидаемое поведение двунаправленного алгоритма. В нем показаны английский текст слева направо и текст на иврите справа налево.
Рассмотрите следующий текст:
английский1 ИВРИТ2 английский3 ИВРИТ4 английский5 ИВРИТ6
Символы в этом примере (и во всех реплицированных примерах) хранятся в компьютере в том же виде, в каком они отображаются здесь: первый символ - "а", второй - "н", последний "6".
Предположим, для содержащего этот абзац документа определен английский язык. Это означает, что основным направлением является направление слева направо. Корректное представление этой строки:
английский1 2ТИРВИ английский3 4ТИРВИ английский5 6ТИРВИ <----- <----- <----- H H H ----------------------------------------------------> E
Строки точек указывают структуру предложения: основным языком является английский, но встроены некоторые элементы на иврите. Для получения корректного представления не нужно никакой дополнительной разметки, поскольку фрагменты на иврите корректно обращаются агентами пользователя, применяющими двунаправленный алгоритм.
С другой стороны, если для документа определен язык иврит, основным будет направление справа налево. Корректное представление, таким образом, будет:
6ТИРВИ английский5 4ТИРВИ английский3 2ТИРВИ английский1 -------> -------> -------> E E E <------------------------------------------------- H
В это случае все предложение представляется справа налево, а фрагменты на английском языке обращаются двунаправленным алгоритмом.
Введение в объекты, изображения и апплеты
Функции мультимедиа языка HTML позволяют авторам включать в свои страницы изображения, апплеты (программы, которые автоматически загружаются и выполняются на машине пользователя), видеоклипы и другие документы в формате HTML.
Например, чтобы включить в документ изображение в формате PNG, авторы могут использовать следующий код:
Около Большого Каньона: Около Большого Каньона.
В предыдущих версиях HTML авторы могли включать изображения (с помощью ) и апплеты (с помощью ). Эти элементы имеют несколько ограничений:
Они не могут решить более общей проблемы - включение новых и возможных в будущем типов устройств.
Элемент работает только с апплетами языка Java. Этот элемент теперь , вместо него используется элемент .
Они вызывают проблемы доступности.
Для решения всех этих вопросов в HTML 4.0 вводится элемент , обеспечивающий всестороннее решение для включения объектов. Элемент позволяет авторам документов в формате HTML указывать всю информацию, необходимую для представления объекта агентом пользователя: исходный код, начальные значения и рабочие данные. В данной спецификации термин "объект" используется для описания всех объектов, которые Вы захотите включить в HTML-документы; другие термины: апплеты, подключаемые модули (plug-ins), дескрипторы устройств и т.д.
Новый элемент , таким образом, subsumes некоторые задачи, выполняемые существующими элементами. Рассмотрим следующую классификацию функций:
Тип включения
Конкретный элемент
Общий элемент
Изображение
Апплет (.)
Другой документ HTML
Из таблицы видно, что каждый тип включения имеет конкретное и общее решение. Общий элемент служит решением для использования возможных в будущем типов устройств.
Для включения изображений авторы могут использовать элемент или элемент .
Для включения апплетов авторам следует использовать элемент , поскольку использование элемента .
Для включения одного документа HTML в другой авторы могут использовать новый элемент или элемент . В обоих случаях внедренный документ не зависит от основного документа. Визуальные агенты пользователей могут представлять внедренный документ в виде отдельного окна в основном документе. Для сравнения элементов и обратитесь к .
С изображениями и другими включаемыми объектами могут быть связаны ссылки, с помощью стандартных , а также и с помощью . На навигационной карте задаются геометрические области включаемого объекта, и каждой из них назначается ссылка. При активизации эти ссылки могут вызывать загрузку документа, запускать программу на сервере и т.д.
В следующих разделах мы обсудим различные механизмы, которые авторы могут использовать для включения мультимедиа и создания навигационных карт для этих объектов.
Введение в списки
Язык HTML предлагает авторам несколько механизмов создания списков информации. В каждом списке должен быть один или несколько элементов списков. Списки могут содержать:
Неупорядоченную информацию. Упорядоченную информацию. Определения.
Предыдущий список, например, не упорядочен, он создан с помощью элемента :
Неупорядоченную информацию. Упорядоченную информацию. Определения.
Упорядоченный список, создаваемый с помощью элемента , может содержать информацию, в которой важен порядок, например, рецепт:
Тщательно смешать сухие ингредиенты. Влить жидкость. Смешивать 10 минут. Выпекать в течение часа при температуре 300 градусов.
Списки определений, создаваемые с помощью элемента , могут содержать ряд пар термин/определение (хотя списки определений могут иметь и иные применения). Например, список определений можно использовать в рекламе изделия:
Низкая цена
Новая модель этого изделия существенно дешевле предыдущей! Проще работа
Мы изменили изделие, так что с ним теперь легко работать! Безопасно для детей
Вы можете оставить своих детей в комнате, и изделие не причинит им вреда (не гарантируется).
На языке HTML он определяется следующим образом:
Низкая цена Новая модель этого изделия существенно дешевле предыдущей! Проще работа Мы изменили изделие, так что с ним теперь легко работать! Безопасно для детей Вы можете оставить своих детей в комнате, и изделие не причинит им вреда (не гарантируется).
Списки могут быть вложенными, разные типы списков можно использовать вместе, как в следующем примере, где список определений содержит неупорядоченный список (ингредиенты) и упорядоченный список (процедуру):
Ингредиенты:
100 г муки 10 г сахара 1 стакан воды 2 яйца соль, перец
Процедура:
Тщательно смешайте сухие ингредиенты. Влейте жидкие ингредиенты. Смешивайте 10 минут. Выпекайте в течение часа при температуре 300 градусов.
Примечания:
Можно добавить изюм.
Точное представление трех типов списков зависит от агента пользователя. Не стоит использовать списки для создания отступов в тексте. Это делается с помощью таблиц стилей.
Введение в ссылки и якоря
HTML предлагает множество условных оборотов для текстовых и структурированных документов, но что отличает его от большинства других языков разметки - его возможности разметки гипертекста и интерактивных документов. В этом разделе вводится понятие ссылки (или гиперссылки или ссылки Web), основной гипертекстовой конструкции. Ссылки связывают один ресурс Web с другим. Несмотря на простоту, ссылки стали основным залогом успеха Web.
Ссылка имеет два конца - называемых anchors -- и направление. Ссылка начинается в "исходном" anchor (источнике) и указывает на "целевой" anchor, который может быть любым ресурсом Web (например, изображением, видеоклипом, звуковым файлом, программой, документом HTML, элементом в документе HTML и т.д.).
Введение в структуру документа HTML
Документ в формате HTML 4.0 состоит из трех частей:
строки, содержащей ,
раздела заголовков (определяемого элементом ),
тела, которое включает собственно содержимое документа. Тело может вводиться элементом или элементом .
Перед каждым элементом или после каждого элемента может находиться пустое пространство (пробелы, переход на новую строку, табуляции и комментарии). Разделы 2 и 3 должны отделяться элементом .
Вот пример простого документа HTML:
Мой первый документ HTML Всем привет!
Введение в таблицы
Модель таблиц HTML позволяет авторам упорядочивать данные -- текст, форматированный текст, изображения, ссылки, формы, поля форм, другие таблицы и т.д. - в строки и столбцы ячеек.
С каждой таблицей может быть связан заголовок (см. элемент ), предоставляющий краткое описание таблицы. Можно также указать и более длинное описание (с помощью атрибута ) для удобства людей, использующих агенты на базе азбуки Бройля или речи.
могут группироваться в разделы заголовков, нижних заголовков и тела, (с помощью элементов , и соответственно). Группы строк convey дополнительную структурную информацию и могут генерироваться агентами пользователей различными способами, отображающими эту структуру. Агенты пользователей могут использовать подразделение на заголовки/тело/нижние заголовки для поддержки прокрутки тела независимо от заголовков. При печати длинных таблиц информация из заголовков может повторяться на каждой странице таблицы.
Авторы также могут для предоставления дополнительной структурной информации, которая может использоваться агентами пользователей. Более того, авторы могут объявлять свойства столбцов в начале определения таблицы (с помощью элементов и ) таким образом, который позволяет агентам пользователей генерировать таблицу последовательно, а не ждать считывания всех данных таблицы перед тем, как начать генерацию.
могут содержать "заголовок" (см. элемента ) или "данные" (см. элемент ). Ячейки могут распространяться на несколько строк или столбцов. Модель таблиц языка HTML 4.0 позволяет авторам помечать каждую ячейку, так что будет проще работать с информацией о ячейках. Эти механизмы не только существенно облегчают доступ пользователям с физическими недостатками, но и делают его обработку таблиц возможной для мультирежимных беспроводных браузеров с ограниченными возможностями отображения (например, Web-совместимых пейджеров и телефонов).
Не следует использовать таблицы только как средство компоновки содержимого документа, поскольку это может вызвать проблемы при генерации для невизуальных средств. Кроме того, если метки использовать с графикой, это может привести к тому, что пользователям придется выполнять горизонтальную прокрутку, чтобы просмотреть таблицу, созданную в системе с большим экраном. Для уменьшения возможности этих проблем авторам следует использовать для компоновки документа , а не таблицы.
Примечание.
В этой спецификации более подробная информация о таблицах приводится в разделах о .
Ниже показана простая таблица, на примере которой иллюстрируются некоторые возможности модели таблиц языка HTML. Следующее определение:
Тестовая таблица с объединенными ячейками Средний Красные глаза высота вес мужской пол 1.9 0.003 40% женский пол 1.7 0.002 43%
должно генерироваться на терминале примерно следующим образом:
Тестовая таблица с объединенными ячейками /----------------------------------------------------------\ | | Средний | Красные | | |-------------------| глаза | | | высота | вес | | |----------------------------------------------------------| | Мужской пол | 1.9 | 0.003 | 40% | | |----------------------------------------------------------| | Женский пол | 1.7 | 0.002 | 43% | | \----------------------------------------------------------/
или следующим образом - графическими агентами пользователей:
Выравнивание
Атрибут align определяет положение , или относительно его содержимого.
Следующие значения атрибута относятся к положению объекта относительно окружающего текста:
bottom: означает, что окно объекта должно быть вертикально выровнено относительно текущей базовой линии. Это значение используется по умолчанию. middle: означает, что центр объекта должен быть выровнен вертикально относительно текущей базовой линии. top: означает, что верх объекта должен быть вертикально выровнен относительно верха текущей текстовой строки.
Два других значения, left и right, приводят к перемещению изображения к текущему левому или правому полю. Они обсуждаются в разделе о плавающих объектах.
Различие интерпретаций атрибута align.
Агенты пользователей по-разному интерпретируют атрибут . Некоторые принимают в расчет только текстовую строку, находящуюся перед элементом, некоторые учитывают текст по обеим сторонам элемента.
Задание якорей и ссылок
Хотя некоторые элементы и атрибуты языка HTML создают ссылки на другие ресурсы (например, элемент , элемент и т.д.), в этой главе обсуждаются ссылки и якоря, создаваемые элементами и . Элемент может присутствовать только в заголовке документа. Элемент может присутствовать только в теле документа.
Если для элемента установлен атрибут , этот элемент определяет исходный якорь для ссылки, которая может активизироваться пользователем для загрузки ресурса Web. Исходный якорь - это местоположение экземпляра элемента и целевой якорь ресурса Web.
Загруженный ресурс может обрабатываться агентом пользователя различными способами: открытием нового документа HTML в том же окне агента, открытием нового документа HTML в другом окне, запуском новой программы для обработки ресурса и т.д. Поскольку элемент имеет содержание (текст, изображения и т.д.), агенты пользователей могут генерировать это содержимое так, чтобы показать наличие ссылки (например, подчеркивая содержимое).
Если установлены атрибуты или элемента , этот элемент определяет якорь, который может служить целью других ссылок.
Авторы могут устанавливать атрибуты и одновременно в одном экземпляре элемента .
Элемент определяет отношение между текущим документом и другим ресурсом. Хотя элемент не имеет содержимого, определяемые им отношения могут отображаться некоторыми агентами пользователей.
Задание языка содержимого: атрибут lang
Определения атрибутов
lang
=
Этот атрибут указывает основной язык значений атрибутов элементов и секстового содержимого. По умолчанию значение этого атрибута не установлено.
Информация о языке, указанная с помощью атрибута , может использоваться агентом пользователя для управления генерацией изображения различными способами. Некоторые ситуации, в которых указываемая автором информация а языке, может быть полезна:
Помощь поисковым машинам Помощь синтезаторам речи Помощь агентам пользователей в выборе вариантов глифов для высококачественной типографии Помощь агенту пользователя в выборе набора кавычек Помощь агенту пользователя в вопросах , лигатур и интервалов Помощь программа проверки грамматики и орфографии
Атрибут указывает код содержимого элемента и значений атрибутов; относится ли он к данному атрибуту, зависит от синтаксиса и семантики атрибута и от операции.
Атрибут предназначен для того, чтобы позволить агентам пользователей более осмысленно генерировать изображение на основе принятой культурной практики для данного языка. Это не подразумевает, что агенты пользователей должны генерировать символы, не являющиеся типичными для конкретного языка, менее осмысленным способом; агенты пользователей должны пытаться сгенерировать се символы, независимо от значения, указанного в атрибуте .
Например, если в русском тексте должен появиться символ греческого алфавита:
"Эта супермощность была результатом γ-радиации, объяснил он.
агент пользователя (1) должен попытаться сгенерировать русский текст соответствующим образом (например, в соответствующих кавычках) и (2) попытаться сгенерировать символ γ, даже если это не русский символ.
Дополнительную информацию см. в разделе о неотображаемых символах.
Заголовок кратко описывает содержание раздела,
Начальный тег: обязателен , Конечный тег: обязателен
Атрибуты, определяемые в любом другом месте
, () (), () () () () , , , , , , , , , (внутренние события)
Заголовок кратко описывает содержание раздела, которому он предшествует. Информация из заголовка может использоваться агентами пользователей, например, для автоматического построения оглавления документа.
В языке HTML существует шесть уровней заголовков: - наиболее важный - и - наименее важный. Визуальные браузеры обычно отображают более важные заголовки более крупным шрифтом.
В следующем примере показано, как использовать элемент для того, чтобы связать заголовок с последующим разделом документа. Это позволит Вам определить стиль для раздела (цвет фона, шрифт и т.д.) с использованием таблиц стилей.
Лесные слоны В этом разделе мы обсуждаем менее известных лесных слонов. ...продолжение раздела...
Ариал Лесные слоны не живут в деревьях, а среди них. ...продолжение раздела...
Эту структуру можно представить с использованием информации о стиле, например:
... название документа ...
Пронумерованные разделы и ссылки Язык HTML не генерирует номера разделов из заголовков. Это может выполняться агентами пользователей. Вскоре языки описания таблиц стилей, такие как CSS, предоставят авторам возможность управления генерацией номеров разделов (для удобства в ссылках в печатной документации, например "См. раздел 7.2").
Некоторые люди считают пропуск уровней заголовков дурным тоном. Они принимают порядок заголовков H1 H2 H1, но не принимают порядок H1 H3 H1, поскольку пропущен уровень H2.
Заголовки ссылок
Атрибут может устанавливаться как для элемента , так и для элемента ; в нем указывается информация о природе ссылки. Эта информация может проговариваться агентом пользователя, отображаться в виде подсказки, изменять вид курсора и т.д.
Таким образом можно augment , указав для каждой ссылки заголовок:
...некоторый текст...
Подробнее Вы можете узнать об этом в главе 2 . глава 2 . См. также карту леса.
Замечания о внедренных документах
Иногда вместо на документ автору нужно внедрить его непосредственно в первичный документ HTML. Авторы могут использовать для этого элемент или , но эти элементы несколько различны. Эти два элемента не только имеют различные модели содержимого, но также элемент может быть целевым кадром (подробнее см. раздел об ) и может быть "выделен" агентом пользователя для печати, просмотра кода HTML и т.д. Агенты пользователя могут генерировать выделенные кадры способом, отличным от генерации невыделенных кадров (например, отображать границу вокруг выделенного кадра).
Внедренный документ полностью независим от документа, в который он внедрен. Например, относительные адреса URI во внедренном документе в соответствии с базовым адресом URI, указанным во внедренном документе, а не в основном документе. Внедренный документ только генерируется в другом документе (например, во вложенном окне); it во всех остальных отношениях он остается независимым.
Например, следующая строка внедряет содержимое файла embed_me.html в то место документа, в котором встречено определение .
...предшествующий текст...
Внимание: невозможно внедрить файл embed_me.html. ...последующий текст...
Вспомните, что содержимое элемента должно генерироваться, только если файл, задаваемый атрибутом , невозможно загрузить.
Поведение агента пользователя в случаях, когда файл включает сам себя, не определено.
Запрет перехода на новую строку
Иногда авторам нужно избежать перехода на новую строку между двумя определенными словами. Комбинация символов ( или ) действует как неразрывный пробел.
О спецификации HTML 4.0
Целевые имена кадров
За исключением приведенных ниже зарезервированных имен, целевые имена кадров (%FrameTarget; в DTD) должны начинаться с алфавитных символов (a-zA-Z). Агенты пользователей должны игнорировать все остальные имена.
Следующие target names зарезервированы и имеют специальные значения.
_blank
Агенты пользователей должны загружать документ в новое окно без имени.
_self
Агенты пользователей должны загружать документ в тот же кадр, в котором находится ссылающийся на него документ.
_parent
Агенты пользователей должны загружать документ в непосредственный родительский кадр этого кадра во . Это значение эквивалентно _self, если текущий кадр не имеет родительского кадра.
_top
Агенты пользователей должны загружать документ в полное окно (закрывая все остальные кадры). Это значение эквивалентно _self, если у текущего кадра нет родительского кадра.
Числовые ссылки на символы
Числовые ссылки на символы указывают символа в наборе символов документа. Числовые ссылки на символы могут также принимать две формы:
Синтаксис "D;", где D - десятичное число, указывает символ Unicode с десятичным номером D.
Синтаксис "H;" или "H;", где H - шестнадцатеричное число, указывает на символ Unicode с шестнадцатеричным номером H. Шестнадцатеричные числовые ссылки учитывают регистр.
Вот некоторые примеры числовых ссылок на символы:
å (десятичное) представляет букву "a" с кружком сверху (используемую, например, в норвежском языке). å (шестнадцатеричное) представляет тот же символ. å (шестнадцатеричное) представляет тот же символ. И (десятичное) представляет кириллическую заглавную букву "I". 水 (шестнадцатеричное) представляет китайский иероглиф "вода".
Примечание.
Хотя шестнадцатеричное представление не определено в [ISO8879], оно ожидается в новой версии, как описано в [WEBSGML]. Это соглашение особенно полезно, поскольку стандарты символов обычно используют шестнадцатеричные представления.
Цвета
Значение атрибута типа "color" (%Color;) относится к определениям цветов, как указано в [SRGB]. Значение цвета может быть шестнадцатеричным числом (которому предшествует знак диеза) или одним из следующих шестнадцати названий цветов. Названия цветов учитывают регистр.
Названия цветов и значения RGBBlack = "#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; в ) могут быть содержимым элемента и значением . Агенты пользователей не должны оценивать данные сценариев в разметке HTML, а должны передавать эти данные ядру сценариев.
Учет регистра в данных сценариев зависит от языка сценариев.
Помните, что данные сценариев, являющиеся содержимым элемента, не могут содержать , но данные сценария, являющиеся значением атрибута, могут. В приложении приводится информация об .
Данные таблиц стилей
Данные таблиц стилей ( в ) могут быть содержимым элемента и значением атрибута . Агенты пользователей не должны оценивать данные стилей в разметке HTML.
Учет регистра данных стиля зависит от языка таблиц стилей.
Помните, что данные таблиц стилей, являющиеся содержимым элемента, не могут включать , но данные таблиц стилей, являющиеся значением атрибута, могут включать их. В приложении приводится дальнейшая информация об .
Дата и время
[ISO8601] позволяет много вариантов представления даты и времени. Текущая спецификация использует один из форматов, описанных в профиле [DATETIME] для определения допустимых строк дата/время ( %Datetime в DTD).
Это следующий формат:
ГГГГ-ММ-ДДTчч:мм:ссУЧП
где:
ГГГГ = год из четырех цифр ММ = месяц из двух цифр (01=январь и т.д.) ДД = день из двух цифр (01 - 31) чч = две цифры часов (00 - 23) (до/пп НЕ допускается) мм = две цифры минут (00 - 59) сс = две цифры секунд (00 - 59) УЧП = указатель часового пояса
Указатели часового пояса:
Z
означает UTC (Общее скоординированное время). "Z" должно быть в верхнем регистре.
+чч:мм
указывает, что местное время отстоит на чч часов и мм минут от UTC вперед.
-чч:мм
указывает, что местное время отстает на чч часов и мм минут от UTC.
Указанные компоненты должны присутствовать в точности, с точно такой же пунктуацией. Помните, что буква "T" отображается в строке литерально (она должна быть в верхнем регистре), для указания начала времени, как описано в [ISO8601]
Если генерирующее приложение не знает времени с точностью до секунды, для секунд может использоваться значение "00" (при необходимости также для минут и для часов).
Примечание. [DATETIME]
не касается добавочных секунд.
Дескрипторы носителей
Ниже приведен список распознаваемых дескрипторов носителей ( %MediaDesc в DTD).
screen
Предназначен для экранов компьютеров, не разделенных на страницы.
tty
Предназначен для носителя с фиксированной сеткой для символов, таких как телетайпы, терминалы или переносные устройства с ограниченными возможностями отображения.
tv
Предназначен для устройств типа телевизора (низкое разрешение, цвета, ограниченные возможности прокрутки).
projection
Предназначен для проекторов.
handheld
Предназначен для карманных устройств (небольшой экран, монохромный, растровая графика, ограниченный диапазон).
print
Предназначен для страничных, непрозрачных материалов и документов, просматриваемых на экране в режиме предварительного просмотра печати.
braille
Предназначен для тактильных устройств с алфавитом Бройля.
aural
Предназначен для синтезаторов речи.
all
Для всех устройств.
В будущих версиях HTML могут быть введены новые значения и разрешены параметризованные значения. Для упрощения введения этих расширений соответствующие спецификации агенты пользователя должны иметь возможность анализировать значение атрибута следующим образом:
Значение - это разделенный запятыми список элементов. Например,
media="screen, 3d-glasses, print and resolution > 90dpi"
отображается в :
"screen" "3d-glasses" "print and resolution > 90dpi"
Каждый элемент усекается перед первым символом, не являющимся буквой кодировки US ASCII [a-zA-Z] (десятичные коды Unicode 65-90, 97-122), цифрой [0-9] (шестнадцатеричные коды Unicode 30-39) или знаком переноса (45). В данном примере получается:
"screen" "3d-glasses" "print"
Затем с учетом регистра проводится сверка с набором определенных выше типов дескрипторов. Агенты пользователей могут игнорировать несовпадающие элементы. В данном примере останутся только элементы screen и print.
Примечание. Таблицы стилей могут включать вариации в зависимости от носителя (например, конструкция CSS @media). В таких случаях имеет смысл использовать "=all".
Длины
HTML определяет три типа значений длины для атрибутов:
Пикселы : Значение ( %Pixels; в DTD) - это целое, представляющее число пикселов (на экране, на бумаге). Таким образом, значение "50" означает пятьдесят пикселов. Нормативную информацию об определении пиксела см. в [CSS1].
Длина : Значение ( %Length; в DTD) может быть %Pixel; или доля вертикального или горизонтального расстояния в процентах. Таким образом, значение "50%" означает половину доступного пространства.
МультиДлина : Значение ( %MultiLength; в DTD) может быть %Length; или относительной длиной. Относительная длина имеет форму "i*", где "i" - целое число. При распределении пространства между элементами, конкурирующими за это пространства, агенты пользователя сначала отводят место для длин, определенных в пикселах и процентах, а затем делят оставшееся место между относительными длинами. Каждая относительная длина получает часть доступного пространства, пропорциональную целому числу, предшествующему "*". Значение "*" эквивалентно "1*". Таким образом, если имеется 60 пикселов пространства после того, как агент пользователя распределит пространство для длин, определенных в пикселах и процентах, а конкурирующими относительными длинами являются 1*, 2* и 3*, 1* получит 10 пикселов, 2* - 20 пикселов, а 3* - 30 пикселов.
Значения длин не учитывают регистр.
Доступные форматы
Рекомендацию W3C HTML 4.0 можно также получить в следующих форматах:
Текстовый файл:
(723 Кб), Файл gzip tar, содержащий документы в формате HTML:
(339 Кб), Файл zip, содержащий документы в формате HTML (это файл '.zip', а не '.exe'):
(372 Кб), Файл в формате Postscript:
(4.4 Мб, 363 страницы), Файл в формате PDF:
(2.1 Мб).
В случае расхождений электронной и печатной форм спецификации следует использовать электронную версию.
Информация о регистре
Каждое определение атрибута включает информацию об учете регистра его значениями. Информация о регистре представляется следующими ключами:
CS
Значение учитывает регистр (то есть агенты пользователя по-разному интерпретируют "a" и "A").
CI
Значение не учитывает регистр (то есть агенты пользователя одинаково интерпретируют "a" и "A").
CN
Значение не зависит от регистра, например, потому что это число или символ из набора символов документа.
CA
Само определение элемента или атрибута дает информацию о регитсре.
CT
Подробнее об учете регистра см. в определении типа.
Если значением атрибута является список, ключи применяются к каждому значению в списке, если не указано обратное.
Информация об авторском праве
Copyright © 1997 , (, , Университет Keio). Все права защищены.
Документы, находящиеся на сервере , предоставляются обладателями авторских прав в соответствии со следующей лицензией. Получая, используя и/или копируя этот документ или документ W3C, из которого имеется ссылка на это заявление, Вы признаете, что прочли и поняли следующие условия и обязуетесь их выполнять:
Разрешение на использование, копирование и распространение содержимого этого документа или документа W3C, из которого имеется ссылка на это заявление, с помощью любых средств, с любыми целями и без отчисления авторского гонорара дается при условии, что Вы включите во ВСЕ копии этого документа или его частей следующую информацию:
Ссылку на исходный документ W3C или его URI.
Имеющуюся информацию об авторском праве исходного автора, а если она отсутствует, информацию в форме: "Copyright © World Wide Web Consortium, (Массачусеттский технологический институт, , Университет Keio). Все права защищены."
СТАТУС документа W3C, если он существует.
Если позволяет пространство, следует включить полный текст следующего ЗАМЕЧАНИЯ . Кроме того, в любое программное обеспечение, документы и пр., созданные вследствие применения содержимого этого документа или любой его части, должна быть добавлена благодарность владельцам авторского права.
Данная лицензия не дает никаких прав изменения данного документа или создания документов, производных от него.
ДАННЫЙ ДОКУМЕНТ ПРЕДОСТАВЛЯЕТСЯ "КАК ЕСТЬ"; ОБЛАДАТЕЛИ АВТОРСКОГО ПРАВА НЕ ДАЮТ НИКАКИХ ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ, ВКЛЮЧАЯ ГАРАНТИИ КОММЕРЧЕСКОЙ ВЫГОДЫ, СООТВЕТСТВИЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ, НЕНАРУШЕНИЯ АВТОРСКОГО ПРАВА ИЛИ ОБЛАДАНИЯ ИМ, НО НЕ ОГРАНИЧИВАЯСЬ ТАКОВЫМИ; ТО ЕСТЬ ОБЛАДАТЕЛИ АВТОРСКОГО ПРАВА НЕ ДАЮТ ГАРАНТИЙ ТОГО, ЧТО СОДЕРЖИМОЕ ЭТОГО ДОКУМЕНТА СООТВЕТСТВУЕТ КАКИМ-ЛИБО ЦЕЛЯМ И ТОГО, ЧТО ПРИМЕНЕНИЕ СОДЕРЖИМОГО ЭТОГО ДОКУМЕНТА НЕ НАРУШИТ АВТОРСКИХ ПРАВ, ТОРГОВОЙ МАРКИ, ПАТЕНТА ИЛИ ДРУГИХ ПРАВ ТРЕТЬЕГО ЛИЦА ИЛИ ОРГАНИЗАЦИИ.
ОБЛАДАТЕЛИ АВТОРСКОГО ПРАВА НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБОЙ ПРЯМОЙ, КОСВЕННЫЙ, СПЕЦИАЛЬНЫЙ ИЛИ ЗАКОНОМЕРНЫЙ УЩЕРБ, ПОНЕСЕННЫЙ В РЕЗУЛЬТАТЕ ИСПОЛЬЗОВАНИЯ ЭТОГО ДОКУМЕНТА ИЛИ ПРИМЕНЕНИЯ ЕГО СОДЕРЖИМОГО.
Имя и торговые марки обладателей авторского права НЕ могут использоваться в рекламе, имеющей отношение к данному документу или его содержимому без особого письменного разрешения. Авторское право на этот документ навсегда остается за его обладателями.
Информативные ссылки
[BRYAN88]
"SGML: Руководство автора по стандартному обобщенному языку разметки", М. Брайан, Addison-Wesley Publishing Co., 1988 г.
[CALS]
Continuous Acquisition and Life-Cycle Support (CALS). CALS - это стратегия достижения эффективного создания, обмена и использования цифровых данных для систем вооружения и оборудования Министерства обороны. Более подробную информацию можно найти на странице CALS по адресу .
[CHARSETS]
Зарегистрированные значения наборов символов. Загрузите список зарегистрированны значений по адресу .
[CSS2]
"Каскадные таблицы стилей, уровень 2", Б. Бос, Х. В. Ли, К. Лилли и Я. Джейкобс, ноябрь 1997 г.
Находится по адресу
[DCORE]
The Dublin Core: подробнее см. по адресу
[ETHNO]
"Этнология, языки мира", 12-е издание, Барбара Ф. Граймс, редактор, Летний институт лингвистики, октябрь 1992 г.
[GOLD90]
"Справочник по SGML", К. Ф. Голдфарб, Clarendon Press, 1991.
[HTML30]
"Спецификация языка разметки гипертекстов, версия 3.0", Дейв Рэгетт, сентябрь 1995 г.
Находится по адресу .
[HTML32]
"Спецификация HTML 3.2", Дейв Рэгетт, 14 января 1997 г.
Находится по адресу
[HTML3STYLE]
"HTML и таблицы стилей", Б. Бос, Д. Рэгетт и Х. Ли, 24 марта 1997 г.
Находится по адресу
[LEXHTML]
"Лексический анализатор для HTML и основного SGML", Д. Коннолли, 15 июня 1996 г. Находится по адресу
[PICS]
Platform for Internet Content (PICS). Подробнее см.
[RDF]
Язык описания ресурсов: подробнее см.
[RFC822]
"Стандарт формата текстовых сообщений Интернет ARPA", пересмотрен Дэвидом Х. Крокером, август 1982 г.
Находится по адресу .
[RFC850]
"Стандарт обмена сообщениями USENET", М. Хортон, июнь 1983.
Находится по адресу .
[RFC1468]
"Японская кодировка символов для сообщений Интернет", Дж. Мюрай, М. Криспин и Э. Ван дер Поль, июнь 1993 г.
Находится по адресу .
[RFC1630]
"Универсальные идентификаторы ресурсов в WWW: унифицированный синтаксис для выражения имен и адресов объектов в сети, используемый в World-Wide Web", Т. Бернерс-Ли, июнь 1994 г.
Находится по адресу .
[RFC1866]
"Язык разметки гипертекстов 2.0", Т. Бернерс-Ли и Д. Коннолли, ноябрь 1995 г.
Находится по адресу .
[RFC1867]
"Выгрузка файлов на базе форм в HTML", Э. Небель и Л. Масинтер, ноябрь 1995 г.
Находится по адресу . RFC1867 должен быть обновлен по адресу , в данный момент работа продолжается.
[RFC1942]
"Таблицы HTML", Дейв Рэгетт, май 1996 г.
Находится по адресу .
[RFC2048]
"Многоцелевые расширения почты Интернет (MIME) Часть четвертая: Процедуры регистрации", Н. Фрид, Дж. Кленсин и Дж. Постел, ноябрь, 1996 г.
Находится по адресу . Обратите внимание, что этот RFC новее RFC1521, RFC1522 и RFC1590.
[RFC2070]
"Интернационализация языка разметки гипертекстов", Ф. Ерго, Ж. Николь, Г. Адамс и М. Дюрст, январь, 1997 г.
Находится по адресу .
[SGMLOPEN]
Консорциум SGML. Обратитесь к странице Консорциума SGML по адресу
[SP]
SP - общедоступный синтаксический анализатор SGML.
Находится по адресу . Более подробную информацию можно найти по адресу .
[SQ91]
"The SGML Primer", 3-е издание, SoftQuad Inc., 1991.
[TAKADA]
"Обмен многоязыковой информацией через World-Wide Web", Тошихиро Такада, Компьютерные сети и системы ISDN, том 27, № 2, стр. 235-241, ноябрь 1994 г.
[WAIGUIDE]
Принципы разработки доступных документов HTML можно найти на Web-сайте Web Accessibility Initiative (WAI): .
[VANH90]
"Практическое руководство по SGML", Э. ван Хервайнен, Kluwer Academic Publishers Group, Norwell and Dordrecht, 1990.
Языки
Единственной нормативной версией является английская версия данного документа. Однако переводы этого документа можно найти по адресу http://www.w3.org/MarkUp/html40-updates/translations.html.
Элементы и атрибуты
Названия элементов представляются символами в верхнем регистре (например, BODY). Названия атрибутов представляются символами в нижнем регистре (например, lang, onsubmit). Помните, что в HTML имена элементов и атрибутов не учитывают регистр; это используется для более легкого чтения.
В названиях элементов и атрибутов в этом документе используется разметка, поэтому агентами пользователей они могут генерироваться особым образом.
В каждом определении атрибута устанавливается тип его значения. Если имеется несколько возможных значений, приводится список значений, разделенных вертикальной чертой (|).
После информации о типе в каждом определении атрибута в квадратных скобках ("[]") указывается, учитывается ли в значениях регистр. Подробнее см. раздел .
Кодировки символов
Кодировки символов в этой спецификации имеют другие названия в других спецификациях (что может вызвать некоторую путаницу). Однако это понятие в Интернет означает примерно одно и то же. Одно и то же имя -- "charset - набор символов" - используется в заголовках протоколов, атрибутах и параметрах, ссылающихся на символы и использующих одни и те же значения из реестра (полный список см. в разделе [CHARSETS]).
Параметр "charset" идентифицирует кодировку символов, которая является способом преобразования последовательности байт в последовательность символов. Это преобразование естественно вписывается в схему деятельности Web: серверы отправляют документы HTML агентам пользователей в виде потока байт; агенты пользователей интерпретируют их как последовательность символов. Способы преобразования могут меняться от простого соответствия один к одному до сложных схем или алгоритмов переключения.
Простой техники кодировки "один байт - один символ" недостаточно для текстовых строк с таким широким репертуаром символов, как [ISO10646]. Кроме кодировок всего набора символов (например, UCS-4), имеются некоторые другие кодировки частей [ISO10646].
Атрибуты "charset" (%Charset в DTD) относятся к кодировкам символов, как описано в разделе . Значениями должны быть строки (например, "euc-jp") из реестра IANA (полный список см. в [CHARSETS]).
Имена кодировок символов учитывают регистр.
Агенты пользователей для определения кодировки символов внешнего ресурса должны выполнять шаги, описанные в разделе .
Коды языков
Значения атрибутов, типом которых является код языка ( %LanguageCode в DTD), относится к коду языка, как указано в [RFC1766], раздел 2. Информацию об указании кодов языков в HTML см. в разделе коды языков. В кодах языков пробелы недопустимы.
Коды языков учитывают регистр.
Комбинации ссылок на символы
Чтобы дать авторам более инициативный способ использования символов, HTML предлагает набор character entity references. Комбинации ссылок на символы используют символические имена, так что авторам не придется запоминать коды. Например, комбинация å обозначает символ "a" нижнего регистра с кружком сверху; "å" легче запомнить, чем å.
HTML 4.0 не определяет character entity reference для каждого символа. Например, для кириллической буквы "I" нет character entity reference. См. определенные в HTML 4.0.
Комбинации ссылок на символы учитывают регистр. Так, Å указывает на другой символ (A с кружком верхнего регистра), а не на å (a с кружком нижнего регистра).
Четыре ссылки нужно упомянуть специально, поскольку они часто используются для указания специальных символов:
"<" представляет знак <. ">" представляет знак >. "&" представляет символ &. "" представляет знак ".
Авторы, которые хотят поместить в текст символ "<", должны использовать ссылку "<" (десятичный код ASCII 60) во избежание возможной путаницы с началом тэга (открывающий разделитель начального тэга). Точно так же следует использовать ">" (десятичный код ASCII 62) вместо ">", чтобы избежать проблем со старыми версиями агентов пользователей, некорректно принимающих их за окончание тэга (закрывающий разделитель тэга).
Авторам следует использовать "&" (десятичный код ASCII 38) вместо "&" во избежание путаницы со ссылками на символы (открывающий разделитель entity reference). Авторам также следует использовать "&" в значениях атрибутов, поскольку ссылки на символы внутри значений атрибута разрешены.
Некоторые авторы используют character entity reference """ для кодирования экземпляров двойных кавычек ("), поскольку этот символ может использоваться для разделения значений атрибутов.
Набор символов документа
Для обеспечения возможность взаимодействия сетей SGML требует от каждого приложения (включая HTML) указания набора символов документа. Документ включает:
Репертуар: Набор абстрактных символов,, таких как латинская буква "A", кириллическая буква "I", китайский иероглиф "вода" и т.д.
Коды: Набор целочисленных ссылок на символы репертуара.
Каждый документ SGML (включая каждый документ HTML) - это последовательность символов из репертуара. Компьютерные системы идентифицируют каждый символ по его коду; например, в наборе символов ASCII коды 65, 66 и 67 означают символы 'A', 'B' и 'C' соответственно.
Набора символов ASCII недостаточно для такой глобальной информационной системы, как Web, поэтому HTML использует более полный набор символов, называемый Универсальным набором символов (Universal Character Set - UCS), и определенный в [ISO10646]. Этот стандарт определяет репертуар тысяч символов, используемых во всем мире.
Набор символов, определенный в [ISO10646] - это посимвольный эквивалент Unicode 2.0 ([UNICODE]). Оба эти стандарта время от времени обновляются, пополняются новыми символами, об изменениях следует узнавать на соответствующих серверах Web. В этой спецификации ISO/IEC-10646 или Unicode означают этот самый набор символов. Однако в спецификации HTML Unicode также упоминается при обсуждении других вопросов, таких как
Набора символов документа, однако, недостаточно, чтобы агенты пользователей могли корректно интерпретировать документы HTML при типичном обмене - закодированные как последовательность байт в файле или во время передачи по сети. Агенты пользователя должны также знать кодировки символов, которые использовались для преобразования потока символов документа в поток байт.
Неотображаемые символы
Возможно, агент пользователя не сможет отобразить все символы в документе, например, из-за отсутствия соответствующего шрифта или если символ имеет значение, которое не может быть выражено во внутренней кодировке агента пользователя и т.д.
Поскольку в этом случае есть несколько вариантов, этот документ не предписывает определенной тактики. В зависимости от применения непечатные символы могут также обрабатываться дополнительной системой отображения, а не самим приложением. В случае более сложного поведения, например, настроенного для определенного сценария или языка, рекомендуем следующее поведение для агентов пользователей:
Примите явно видимый, но незаметный механизм для предупреждения пользователя об отсутствующих ресурсах. Если отсутствующие символы представляются в другом числовом представлении, используйте шестнадцатеричную (не десятичную) форму, поскольку эта форма используется в стандартах наборов символов.
Нормативные ссылки
[CSS1]
"Каскадные таблицы стилей, уровень 1", Х. В. Ли и Б. Бос, 17 декабря 1996 г.
Находится по адресу
[DATETIME]
"Форматы дат и времени", Замечание W3C, М. Вольф и К. Уикстед, 15 сентября 1997 г.
Находится по адресу
[IANA]
"Назначенные номера", STD 2, RFC 1700, USC/ISI, Дж. Рейнольдс и Дж. Постел, октябрь 1994 г.. Находится по адресу
[ISO639]
"Коды для представления названий языков", ISO 639:1988.
Подробнее см. .
См. также .
[ISO3166]
"Коды представления названий стран", ISO 3166:1993.
[ISO8601]
"Элементы данных и форматы обмена -- Обмен информацией -- Представление дат и времени", ISO 8601:1988.
[ISO8879]
"Обработка информации -- Текстовые и офисные системы -- Стандартный обобщенный язык разметки (SGML)", ISO 8879:1986.
Информацию о стандарте см. по адресу .
[ISO10646]
"Информационные технологии -- Универсальный набор символов с кодированием несколькими октетами (UCS) -- Часть 1: Архитектура и основная многоязыковая плоскость", ISO/IEC 10646-1:1993. Текущей спецификации также учтены первые пять изменений в ISO/IEC 10646-1:1993.
[ISO88591]
"Обработка информации -- графические наборы символов с 8-разрядным однобайтовым кодированием -- Часть 1: Латинский алфавит № 1", ISO 8859-1:1987.
[MIMETYPES]
Список зарегистрированных типов содержимого (типы MIME). Список зарегистрированных типов можно загрузить по адресу
ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/ .
[RFC1555]
"Ивритская кодировка символов для сообщений Интернет", Х. Нуссбахер и И. Бурвинь, декабрь 1993 г.
Находится по адресу .
[RFC1556]
"Обработка двунаправленных текстов в MIME", Х. Нуссбахер, декабрь 1993 г.
Находится по адресу .
[RFC1738]
"Универсальный адрес ресурса", Т. Бернерс-Ли, Л. Масинтер и М. МакКахилл, декабрь 1994 г.
Находится по адресу .
[RFC1766]
"Теги и идентификация языков", Х. Алвестранд, март 1995 г.
Находится по адресу .
[RFC1808]
"Относительные универсальные адреса ресурсов", Р. Филдинг, июнь 1995 г.
Находится по адресу .
[RFC2044]
"UTF-8, формат преобразования Unicode и ISO 10646", Ф. Ерго, октябрь 1996 г.
Находится по адресу .
[RFC2045]
"Многоцелевые расширения почты Интернет (MIME) Часть первая: формат тел сообщений Интернет", Н. Фрид и Н. Боренштейн, ноябрь 1996 г.
Находится по адресу . Обратите внимание, что этот RFC новее RFC1521, RFC1522 и RFC1590.
[RFC2046]
"Многоцелевые расширения почты Интернет (MIME) Часть вторая: Типы устройств", Н. Фрид и Н. Боренштейн, ноябрь 1996 г.
Находится по адресу . Обратите внимание, что этот RFC новее RFC1521, RFC1522 и RFC1590.
[RFC2068]
"HTTP версия 1.1 ", Р. Филдинг, Дж. Геттис, Дж. Могул, Х. Фрюстюк Нильсен и Т. Бернерс-Ли, январь 1997 г.
Находится по адресу .
[RFC2119]
"Ключевые слова для использования в RFC для указания уровня требований", С. Брэднер, март 1997 г.
Находится по адресу .
[RFC2141]
"Синтаксис URN", Р. Моутс, май 1997 г.
Находится по адресу .
[SRGB]
"стандартное простарнство цветов в Интернет по умолчанию", версия 1.10, М. Стоукс, М. Андерсон, С. Чандрасекар и Р. Мотта, 5 ноября 1996 г.
Находится по адресу
[UNICODE]
"Стандарт Unicode: версия 2.0", Консорциум Unicode, Addison-Wesley Developers Press, 1996 г. В этой спецификации также учтены ошибки в .
Подробнее см. на странице консорциума Unicode по адресу
[URI]
"Универсальные идентификаторы ресурсов (URI): Общий синтаксис и семантика", Т. Бернерс-Ли, Р. Филдинг, Л. Масинтер, 18 ноября 1997 г.
Находится по адресу . Работа над этим документом все еще идет, и обновления находятся по адресам и .
[WEBSGML]
"предложение TC для адаптации WebSGML для SGML", К. А. Голдфарб, ed., 14 июня 1997 г.
Находится по адресу
Определения
Документ HTML
Документ HTML - это документ SGML, отвечающий ограничениям, налагаемым данной спецификацией.
Автор
Автор - это человек или программа, пишущая или генерирующая документы в формате HTML. Средство разработки - это отдельный случай автора, а именно программа, генерирующая код HTML.
Мы рекомендуем авторам создавать документы, соответствующие строгому DTD, а не другим DTD, определяемым этой спецификацией. Подробнее о DTD, определенных в HTML 4.0, см. в разделе информация о версии.
Пользователь Пользователь - это человек, взаимодействующий с агентом пользователя для просмотра, прослушивания или другого использования сгенерированного документа в формате HTML.
Агент пользователя
Агент пользователя - это любое устройство, интерпретирующее документы в формате HTML. Агенты пользователя включают визуальные браузеры (текстовые и графические), невизуальные браузеры (аудио, Бройля), поисковые машины, прокси и т.д.
Соответствующий агент пользователя для HTML 4.0 - это агент, отвечающий обязательным условиям ("должно") этой спецификации, включая следующие:
Агент пользователя должен избегать наложения произвольных ограничений длины на литералы значений атрибутов (см. подраздел о возможностях в разделе ). Вводную информацию по атрибутам SGML можно получить в разделе определения атрибутов.
Агент пользователя должен гарантировать, что генерация изображения не изменяется в связи с наличием или отсутствием начальных и конечных тэгов, если в HTML DTD указывается, что они не обязательны. Вводную информацию об элементах SGML см. в разделе .
Для совместимости с предыдущими версиями мы рекомендуем, чтобы средства интерпретации HTML 4.0 поддерживали HTML 3.2 (см. [HTML32]) и HTML 2.0 (см. [RFC1866]).
Ошибочные состояния
В этой спецификации не определяется, как соответствующие ей агенты пользователя обрабатывают общие ошибочные состояния, включая действия в случае, если они встречают элементы, атрибуты, значения атрибутов или комбинаций, не указанные в этом документе.
Однако для получения информации о рекомендуемой обработке ошибок обратитесь к .
Нежелательные
Нежелательный элемент или атрибут - это элемент, устаревший вследствие применения новых конструкций. Нежелательные элементы определены справочного руководства и явно помечены как нежелательные. Нежелательные элементы могут устареть в будущих версиях HTML.
Агентам пользователя следует по-прежнему поддерживать нежелательные элементы для обеспечения совместимости с предыдущими версиями.
В определениях элементов и атрибутов явно указано, если они нежелательны.
В этой спецификации содержатся примеры, показывающие, как можно избежать использования нежелательных элементов. В большинстве случаев это зависит от поддержки агентом пользователя таблиц стилей. В общем случае, авторам следует использовать таблицы стилей для получения стилистических эффектов и эффектов форматирования вместо атрибутов представления HTML. Атрибуты представления HTML нежелательны, когда существует альтернатива таблиц стилей (см., например, [CSS1]).
Устаревшие
Устаревший элемент или атрибут - это элемент или атрибут, поддержка которых агентами пользователя не гарантируется. Устаревшие элементы не определяются в этой спецификации, но перечислены в справочного руководства.
Организация спецификации
Спецификация состоит из следующих разделов:
Разделы 2 и 3: Введение в HTML 4.0
Во введении описывается место языка HTML в схеме World Wide Web, приводится краткая история развития языка HTML, описывается, что можно сделать с использованием HTML 4.0 и содержатся некоторые подсказки относительно создания документов в формате HTML.
Краткое руководство по SGML дает читателям понимание отношения языка HTML к языку SGML и предоставляет информацию о чтении Определений типов документов HTML (Document Type Definition - DTD).
Разделы 4 - 24: Справочное руководство по HTML 4.0
Главным содержанием руководства является справочник по языку HTML, в котором определены все элементы и атрибуты языка.
Этот документ упорядочен по разделам, а не по грамматике языка HTML. Разделы сгруппированы в три категории: структура, представление и интерактивность. Хотя конструкции языка HTML трудно разделить на эти три категории, такая модель отражает опыт Рабочей группы HTML, говорящий о том, что разделение структуры документа и его представления обеспечивает большую эффективность документов и лучшие возможности поддержки.
Информация о языке включает следующую:
Какие могут отображаться в документе HTML.
Основные документа HTML.
Элементы, управляющие структурой документа HTML, включая , списки, , и .
Элементы, управляющие представлением документа в формате HTML, включая , шрифты, цвета, горизонтальные разделители и другое визуальное представление, а также .
Элементы, управляющие интерактивностью документа HTML, включая и .
Формальное SGML-определение HTML:
. Три DTD: , и . .
Приложения
В первом приложении содержится информация об изменениях по отношению к HTML 3.2 с целью помочь авторам при переносе файлов в формат HTML 4.0. Во втором приложении содержатся , целью которых является помощь разработчикам в создании средств для использования HTML 4.0.
Ссылки
Список нормативных и информативных документов.
Указатели
Три указателя предоставляют читателям быстрый доступ к определению: , элементы и атрибуты.
Ошибки
Список обнаруженных в спецификации ошибок находится по адресу
Об ошибках, найденных в этом документе, сообщайте по адресу www-html-editor@w3.org.
Основные типы данных HTML
В этом разделе спецификации описываются основные типы данных, которые могут быть содержимым элементов или значением атрибутов.
Вводную информацию о чтении HTML DTD см. раздел .
Основные типы SGML
В определяется синтаксис содержимого элемента HTML и значений атрибутов с использованием меток SGML (например, PCDATA, CDATA, NAME, ID и т.д.). Полные определения см. в [ISO8879]. Вот обобщенная информация о ключах:
CDATA - это последовательность символов из набора символов документа, она может включать character entities. Агенты пользователей должны интерпретировать значения атрибутов следующим образом:
Заменять character entities на символы, Игнорировать перевод строки, Заменять каждый возврат каретки или табуляцию на один пробел.
Агенты пользователей могут игнорировать пробелы в начале и в конце значений атрибута CDATA (например, "myval " интерпретируется как "myval"). Авторы не должны объявлять значения атрибутов с пробелами в начала или в конце.
На некоторые атрибутов HTML 4.0 со значениями атрибутов CDATA спецификация налагает дополнительные ограничения на множество допустимых значений атрибутов, не выраженные в DTD.
Хотя элементы и используют CDATA для своей модели данных, для этих элементов агенты пользователей должны обрабатывать CDATA по-другому. Разметка и entities должны считаться текстом и передаваться в приложение как есть. Первое вхождение последовательности символов "" (открывающий разделитель конечного тэга) считается концом содержимого элемента. В допустимых документах это будет конечный тэг элемента.
Метки ID и NAME должны начинаться с буквы ([A-Za-z]), за которой может следовать любое число букв, цифр ([0-9]), символов переноса ("-"), символов подчеркивания ("_"), двоеточий (":") и точек (".").
IDREF и IDREFS - это ссылки на метки ID, определенные другими атрибутами. IDREF - одиночная метка, а IDREFS -разделенный пробелами список меток.
Метки NUMBER должны содержать по крайней мере одну цифру ([0-9]).
Отдельные символы
Определенные атрибуты вызывают отдельный символ из набора символов документа. Эти атрибуты имеют тип %Character в DTD.
Отдельные символы можно указать с помощью ссылок на символы (например, "&").
Представление документа в формате HTML
В этой главе обсуждается, как документы в формате HTML представляются на компьютере и в Интернет.
Раздел относится к вопросу об абстрактных символах, которые могут входить в состав документа в формате HTML. В число этих символов входят латинская буква "A", кириллическая буква "I", китайский иероглиф "вода" и т.д.
Раздел относится к вопросу о том, как эти символы могут быть представлены в файле или во время передачи по Интернет. Поскольку некоторые кодировки могут прямо не представлять все символы, которые автор захочет включить в документ, HTML предлагает другие механизмы, называемые , для ссылки на любой символ.
Поскольку в человеческих языках имеется огромное количество символов и множество способов их представления, следует позаботиться о том, чтобы эти документы могли понимать агенты пользователей во всем мире.
SGML
HTML 4.0 - это применение SGML, соответствующее международному стандарту ISO 8879 -- Standard Generalized Markup Language SGML (определенному в [ISO8879]).
Примеры в тексте соответствуют , если пример не относится к элементам или атрибутам, определенным или . Для краткости большая часть примеров в данной спецификации не начинается с , обязательного для начала любого документа в формате HTML.
Фрагменты DTD в определениях элементов приводятся из , кроме элементов, относящихся к кадрам.
Подробную информацию об использовании строгих, переходных DTD или DTD с кадрами см. в разделе .
Комментарии в не имеют нормативного значения; они используются только для информации.
Агенты пользователя не должны генерировать инструкции обработки SGML (например, ) или комментарии. Подробнее об этой и других возможностях SGML, которые допустимы в HTML, но не поддерживаются широко агентами пользователя, обратитесь к разделу возможности SGML с ограниченной поддержкой.
Соглашения
Этот документ написан читателями с двумя типами мышления: авторами и разработчиками. Мы надеемся, что спецификация предоставит авторам средства, необходимые им для создания эффективных, привлекательных и доступных документов и не обременяющие их подробностями применения HTML. Разработчики, однако, должны найти здесь всю необходимую для разработки соответствующих средств информацию.
Эту спецификацию можно использовать несколькими способами:
Прочесть от начала до конца. Эта спецификация начинается с общего представления языка HTML, а количество технических подробностей постепенно повышается.
Обращаться к необходимой информации. Для обеспечения максимальной скорости получения информации о синтаксисе и семантике в оперативную версию спецификации включены следующие возможности:
Каждая ссылка на элемент или атрибут связана с его определением в спецификации. Каждый элемент или атрибут определяется только в одном месте.
На каждой странице имеются ссылки на указатели, поэтому Вы всегда сможете найти определение элемента или атрибута, использовав не больше двух ссылок.
На первых страницах трех разделов руководства к исходному оглавлению добавляется более подробная информация о каждом разделе.
Соответствие: требования и рекомендации
В этом разделе мы начинаем спецификацию HTML 4.0, начиная с договора между авторами, документами, пользователями и агентами пользователей.
Ключевые слова "НУЖНО", "НЕ НУЖНО", "НЕОБХОДИМО", "СЛЕДУЕТ", "НЕ СЛЕДУЕТ", "РЕКОМЕНДУЕТСЯ", "ВОЗМОЖНО" и "НЕОБЯЗАТЕЛЬНО" в этом документе следует интерпретировать, как описано в [RFC2119]. Однако для простоты чтения эти слова в данной спецификации напечатаны не в верхнем регистре.
Иногда авторы этой спецификации дают рекомендации для пользователей и их агентов. Эти рекомендации не являются нормативными и соответствие этой спецификации не зависит от их реализации. Эти рекомендации содержатся в выражениях "Мы рекомендуем...", "Эта спецификация рекомендует..." и подобных им.
Рекомендация W3C 18 декабря
Рекомендация W3C 18 декабря 1997
Автор перевода:
Оригинал данного перевода находится
Эта версия:
Последняя версия:
Предыдущая версия:
Редакторы: <> <> <>
Ссылки на символы
Данная кодировка символов может не содержать все символы из набора символов документа. Для таких кодировок или для таких конфигураций оборудования и программного обеспечения, не позволяющих пользователям вводить определенные символы, авторы могут использовать ссылки на символы SGML. Ссылки на символы - это независимый от кодировки механизм ввода любых символов.
Ссылки на символы в HTML могут принимать две формы:
Числовые ссылки на символы (десятичные или шестнадцатеричные). Ссылки на комбинации символов.
Ссылки на символы в комментариях не имеют значения; они являются только данными комментариев.
Примечание.
HTML обеспечивает другие способы представления символов, в частности, .
Примечание. В SGML можно в некоторых случаях не использовать заключительный символ ";" после ссылки на символы (например, в символе переноса строки или непосредственно перед тэгом). В других обстоятельствах их нельзя удалять (например, в середине слова). Мы предлагаем использовать ";" всегда во избежание проблем с агентами пользователей, для которых этот символ обязателен.
Статус данного документа
Данный документ просматривался членами W3C и другими заинтересованными лицами и организациями, и одобрен Директором в качестве Рекомендации W3C. Это постоянный документ; он может использоваться в качестве справочника или приводиться в других документах в качестве нормативного. Ролью W3C в этой рекомендации является привлечение внимания к этой спецификации и расширение сферы ее применения. Это расширяет функциональность и возможность взаимодействия в Web.
W3C рекомендует пользователям и авторам (в особенности средствам создания документов) использовать версию HTML 4.0 вместо HTML 3.2 (см. [HTML32]). Для обеспечения совместимости с предыдущими версиями W3C также рекомендует для средств интерпретации HTML 4.0 поддержку HTML 3.2 и HTML 2.0.
Список текущих Рекомендаций W3C и других технических документов можно найти по адресу .
Дискуссия относительно функций HTML происходит по адресу www-html@w3.org.
Текстовые строки
Ряд атрибутов ( %Text; в DTD) принимают текст, который предназначается для чтения людьми. Вводную информацию об атрибутах Вы можете посмотреть в .
Тип содержимого text/html
Документы HTML отправляются через Интернет в виде последовательности байтов, сопровождаемой информацией о кодировке (описанной в разделе кодировки символов). Структура передачи, называемая message entity, определяется [RFC2045]) и [RFC2068]. message entity с "text/html" представляет документ в формате HTML.
Тип содержимого для документов HTML определяется следующим образом:
Имя типа содержимого: text Имя подтипа содержимого: html Обязательные параметры: нет Необязательные параметры: charset Кодировка: разрешены все кодировки Безопасность: См.
Необязательный параметр "charset" обозначает кодировку символов, используемую для представления документа HTML в качестве последовательности байт. Допустимые значения этого параметра определены в разделе кодировки символов. Хотя этот параметр необязателен, рекомендуется всегда указывать его.
Типы содержимого (типы MIME)
Примечание. "Тип носителя" (определенный в [RFC2045] и [RFC2046]) указывает природу связанного ресурса. Эта спецификация использует термин "тип содержимого" вместо "типа носителя" в соответствии с его использованием. Более того, в этой спецификации "тип носителя" может означать на котором агент пользователя генерирует документ.
Этот тип представлен в DTD с помощью %ContentType;.
Типы содержимого учитывают регистр.
Примеры типов содержимого включают "text/html", "image/png", "image/gif", "video/mpeg", "audio/basic", "text/tcl", "text/javascript" и "text/vbscript". Текущий список зарегистрированных типов MIME см. в [MIMETYPES].
Примечание. Тип содержимого "text/css",, хотя он и не зарегистрирован в IANA, должен использоваться, если связываемым элементом является таблица стилей [CSS1].
Типы ссылок
Авторы могут использовать следующие распознаваемые типы ссылок, перечисленные здесь вместе с условными интерпретациями. В DTD означает список типов ссылок, разделенных пробелами. Символы пробелов в типах ссылок не допускаются.
Эти типы ссылок не учитывают регистр, т.е. "Alternate" означает то же, что и "alternate".
Агенты пользователей, поисковые машины и т.д. могут интерпретировать эти типы ссылок несколькими способами. Например, агенты пользователя могут предоставлять доступ к связанным документам с помощью навигационной панели.
Alternate
Обозначает альтернативные версии документа, в котором находится ссылка. Вместе с атрибутом означает переведенную версию документа. Вместе с атрибутом означает версию, созданную для другого носителя.
Stylesheet
Обозначает внешнюю таблицу стилей. Подробнее см. раздел о . Используется вместе с типом ссылки "Alternate" для таблиц стилей, выбираемых пользователем.
Start
Обозначает первый документ в наборе. Этот тип ссылки сообщает поисковым машинам о том, какой документ автор считает началом набора.
Next
Обозначает следующий документ в линейной последовательности документов. Агенты пользователей могут предварительно загружать документ "next" для сокращения времени загрузки.
Prev
Обозначает предыдущий документ в упорядоченной серии документов. Некоторые агенты пользователей также поддерживают синоним "Previous".
Contents
Обозначает документ, служащий содержанием. Некоторые агенты пользователей также поддерживают синоним ToC (из "Table of Contents").
Index
Обозначает документ, являющийся указателем текущего документа.
Glossary
Обозначает документ - глоссарий терминов, относящихся к текущему документу.
Copyright
Обозначает замечание об авторском праве для текущего документа.
Chapter
Обозначает документ, являющийся главой в наборе документов.
Section
Обозначает документ, являющийся разделом в наборе документов.
Subsection
Обозначает документ, являющийся подразделом в наборе документов.
Appendix
Обозначает документ, являющийся приложением в наборе документов.
Help
Обозначает документ, содержащий справку (более подробная информация, ссылки на другие информационные ресурсы и т.д.)
Bookmark
Обозначает закладку. Закладка - это ссылка на ключевую точку в расширенном документе. Атрибут может использоваться, например, для пометки закладки. Помните, что в каждом документе можно определить несколько закладок.
Авторы могут определить дополнительные типы ссылок, не описанные в этой спецификации. При этом они должны использовать для указания соглашений, используемых для определения типов ссылок. Подробнее см. атрибут элемента .
Дальнейшее обсуждение типов ссылок см. в разделе .
Указание кодировки символов
Как сервер определяет, какая кодировка символов применяется в документе? Некоторые серверы проверяют первые несколько байт документа или сверяются с базой данных известных файлов и кодировок. Многие современные серверы Web предоставляют администраторам больше возможностей управления конфигурацией набора символов, чем старые серверы. Администраторы серверов Web должны при возможности использовать следующие механизмы для отправки параметра "charset", но должны позаботиться о том, чтобы не установить для документов ошибочное значение параметра "charset".
Как агент пользователя узнает, какая использовалась кодировка символов? Эту информацию предоставляет сервер. Лучшим способом проинформировать агента пользователя о кодировке символов документа - использовать параметр "charset" в поле заголовка "Content-Type" протокола HTTP ([RFC2068], разделы 3.4 и 14.18) Например, следующий заголовок HTTP объявляет, что используется кодировка EUC-JP:
Content-Type: text/html; charset=EUC-JP
Определение text/html см. в разделе .
Протокол HTTP ([RFC2068], раздел 3.7.1) считает ISO-8859-1 кодировкой символов по умолчанию, если параметр "charset" в поле заголовка "Content-Type" отсутствует. На практике эта рекомендация бесполезна, поскольку некоторые серверы не позволяют отправлять параметр "charset", а некоторые могут не быть сконфигурированы для отправки этого параметр. Поэтому агенты пользователей не должны предполагать никакого значения параметра "charset".
Для указания ограничений сервера или конфигурации документы HTML могут включать явную информацию о кодировке символов документа; для предоставления такой информации агентам пользователя может использоваться элемент .
Например, чтобы указать, что кодировкой символов в текущем документе является "EUC-JP", включите следующее объявление :
Объявление должно использоваться, только если кодировка символов упорядочена так, что символы ASCII стоят на своем месте (по крайней мере, при разборе элемента ). Объявления должны быть в тексте как можно раньше в элементе .
В случаях, когда ни протокол HTTP, ни элемент не предоставляют информации о кодировке документа, HTML предоставляет атрибут для некоторых элементов. Объединив все эти механизмы, автор может существенно повысить шансы на то, что, когда пользователь загружает ресурс, агент пользователя распознает кодировку символов.
Подводя итоги, соответствующие агенты пользователей при определении кодировки символов документа (от высшего приоритета к низшему) должны руководствоваться следующими источниками в соответствии с приоритетом:
Параметр "charset" протокола HTTP в поле "Content-Type".
Объявление , в котором для "http-equiv" установлено "Content-Type" и установлено значение для "charset".
Атрибут устанавливается на элемент, обозначающий внешний ресурс.
Кроме этого списка приоритетов, агент пользователя может использовать эвристические установки и установки пользователя. Например, многие агенты пользователей используют эвристику для распознавания различных кодировок, используемых для японского языка. Агенты пользователей обычно имеют определяемую пользователем локальную кодировку по умолчанию, которую они используют, если нет указаний кодировки.
Агенты пользователей могут обеспечивать механизм, позволяющий пользователям изменять некорректную информацию о наборе символов. Однако если агент пользователя предлагает такой механизм, он должен предлагать его только для просмотра, а не для изменения, во избежание создания Web-страниц с некорректным параметром "charset".
Примечание.
Если в каком-то приложении нужно использовать символы, не входящие в кодировку [ISO10646], этим символам должна быть назначена персональная зона во избежание конфликтов с настоящей или будущими версиями стандарта. Однако это не рекомендуется из соображений переносимости.
URI
В этой спецификации термин URI используется, как определено в [URI] (см. также [RFC1630]).
Помните, что URI включают URL (как определено в [RFC1738] и [RFC1808]).
Относительные URI разрешаются до полных URI с использованием основного URI. [RFC1808], раздел 3, где определен нормативный алгоритм этого процесса. Подробнее об основных URI см. в разделе в главе о ссылках.
URI представляются в DTD комбинацией символов %URI;.
URI вообще учитывают регистр. Могут быть URI, или части URI, в которых регистр не имеет значения (например, имена машин), но идентификация их может быть непроста. Пользователи должны всегда считать, что URI учитывают регистр (чтобы не ошибиться).
Информацию о см. в приложении.
Данная спецификация определяет HyperText Markup
Данная спецификация определяет HyperText Markup Language (Язык разметки гипертекстов - HTML) версии 4.0 - язык, который используется для публикаций в World Wide Web. Кроме текстовых, мультимедийных возможностей и гиперссылок, присутствующих в предыдущих версиях языка HTML, HTML 4.0 поддерживает новые мультимедийные возможности, скрипты, таблицы стилей, улучшенную печать и более доступные людям с физическими недостатками документы. В версии HTML 4.0 также успешно реализована интернационализация документов, целью которой является сделать Паутину действительно всемирной.
HTML 4.0 - это приложение SGML, соответствующее Международному стандарту ISO 8879 -- Standard Generalized Markup Language [ISO8879].
Выбор кодировки
Средства разработки (например, текстовые редакторы) могут кодировать документы HTML в кодировках по своему выбору, и этот выбор существенно зависит от соглашений, используемых системным программным обеспечением. Эти средства могут использовать любую удобную кодировку, включающую большинство символов в документе, при условии, что кодировка Некоторые символы, не включенные в эту кодировку, можно представить с помощью . Это всегда относится к набору символов документа, а не к кодировке символов.
Серверы и прокси могут изменять кодировку символов (что называется транскодированием) на лету для выполнения запросов агентов пользователей (см. раздел 14.2 [RFC2068], заголовок запроса HTTP "Accept-Charset"). Серверы и прокси не должны обслуживать документ в кодировке, включающей весь набор символов документа.
Широко используемые в Web кодировки - ISO-8859-1 (также называется "Latin-1"; используется для большинства западноевропейских языков), ISO-8859-5 (с поддержкой кириллицы), SHIFT_JIS (японская кодировка), EUC-JP (еще одна японская кодировка) и UTF-8 (вариант кодировки ISO 10646, использующий разное число байт для разных символов). Названия кодировок символов не учитывают регистр, так что, например, "SHIFT_JIS", "Shift_JIS" и "shift_jis" эквивалентны.
Эта спецификация не определяет, какие кодировки символов должен поддерживать агент пользователя.
должны корректно отображать в Unicode все символы в любых кодировках, которые они могут распознавать.
Замечания и примеры
Информативные замечания выделены, чтобы отличаться от остального текста и могут генерироваться агентами пользователей особым образом.
Все примеры, иллюстрирующие нежелательное использование, помечены как "ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ". В примеры нежелательного использования входят также рекомендуемые альтернативные решения. Все примеры, иллюстрирующие недопустимое использование, помечены как "ПРИМЕР НЕДОПУСТИМОГО ИСПОЛЬЗОВАНИЯ".
В примерах и замечаниях используется разметка, поэтому некоторыми агентами пользователей они могут генерироваться особым образом.
Замечания об использовании цветов
Хотя цвета могут существенно добавлять информации в документ и повышать удобство чтения, при использовании цветов имейте в виду следующие основные принципы:
Использование элементов и атрибутов HTML для указания цвета нежелательно. Вместо этого следует использовать .
Не используйте комбинации цветов, вызывающие проблемы у пользователей.
Если Вы используете изображение в качестве фона или устанавливаете цвет фона, не забудьте становить и цвета текста.
Цвета, указанные в элементах и и в в таблицах выгладят по-разному на разных платформах (на рабочих станциях, Mac, Windows и на панелях LCD и CRT), поэтому не рассчитывайте на определенный эффект. В будущем поддержка цветовой модели [SRGB] вместе с цветовыми профилями ICC должна устранить эти проблемы.
При возможности принимайте общие соглашения.
Замечания об определенных кодировках
Когда текст HTML передается в UTF-16 (charset=UTF-16), текстовые данные должны передаваться в сетевом порядке байт ("big-endian", байт высшего порядка - первый) в соответствии с [ISO10646], раздел 6.3 и [UNICODE], положение C3, страница 3-1.
Более того, чтобы повысить вероятность правильной интерпретации, рекомендуется передавать документы UTF-16, всегда начиная с символа НЕРАЗДЕЛЯЮЩИЙ ПРОБЕЛ НУЛЕВОЙ ШИРИНЫ (шестнадцатеричный код FEFF, также называется Меткой порядка байтов (Byte Order Mark - BOM)), который при обращении байт становится шестнадцатеричным FFFE, никогда не назначаемым символом. Таким образом, агент пользователя, получивший шестнадцатеричный код FFFE в качестве первых байтов текста будет знать, что в остальном тексте байты нужно обратить.
Не следует использовать формат трансформации UTF-1[ISO10646] (зарегистрированный IANA как ISO-10646-UTF-1). Информацию об ISO 8859-8 и двунаправленном алгоритме см. в разделе .
Бизнес в интернете: Сайты - Софт - Языки - Дизайн