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

         

Определения



4.1 Определения

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

Мы рекомендуем создавать документы в соответствии со строгим ОТД, нежели с другими ОТД, определёнными в спецификации.
Просмотрите, пожалуйста, раздел информация о версиях для детального рассмотрения ОТД, определённых в HTML 4.

Пользователь Пользователь это лицо, взаимодействующее с пользовательским агентом с целью просмотра или другого использования документа HTML.
Пользовательский агент HTMLПользовательский агент (ПА) HTML - любое устройство, интерпретирующее документ HTML. Пользовательские агенты: визуальные браузеры(программы просмотра: Netscape Navigator, Internet Explorer), текстовые и графические, невизуальные браузеры (audio, по Брайлю), поисковые машины, proxies, и т.п.

Соответствующий пользовательский агент (СПА) для HTML
- тот, который соответствует обязательным требованиям ("must/обязан"), установленным ранее в этой спецификации, включая следующие пункты:

ПА должен избегать навязывания ограничений длины символьных значений атрибутов (смотри раздел о возможностях SGML деклараций).
По вводной информации о атрибутах SGML см. раздел объявление атрибутов. ПА обязан гарантировать, что воспроизведение будет неизменным, независимо от наличия или отсутствия начальных и конечных тегов, если HTML DTD указывает, что они не обязательны.
По вводной информации о элементах SGML см. раздел объявление элементов.Из соображений обратной совместимости, интерпретирующие HTML 4, продолжали поддерживать HTML 3.2 (см. [HTML32]) и HTML 2.0 (см. [RFC1866]). Ошибочные условия Эта спецификация не определяет, как СПА обрабатывает общие ошибки, в том числе, как поведение ПА в случае обнаружения элементов, атрибутов, значений атрибутов или образований, не специфицированных в этом документе.

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

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

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

Не рекомендуемые атрибуты и элементы явно отмечены в Определении.

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

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

SGML



4.2 SGML

HTML 4 это SGML приложение, соответствующее Международному Стандарту ISO 8879 -- Standard Generalized Markup Language (Стандартный Обобщённый Язык Разметки) SGML (определённому в [ISO8879]).

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

Фрагменты DTD (ОТД - определение типа документа) в определении элементов исходят из определения документов строгого типа, за исключением элементов, относящихся к кадрам.

Просмотрите, пожалуйста, раздел информация о версии HTML  для выяснения того, когда нужно использовать ОТД "строгое", "переходное" или "кадры".

Комментарии, появляющиеся в ОТД HTML 4 , не имеют нормативного значения, они только информативные.

ПА не должны воспроизводить инструкции процессов SGML (например, <?full volume>) или комментарии.
Для получения информации об этой и других возможностях SGML, которые могут быть использованы в HTML, но не поддерживаются широко HTML ПА, см. раздел ограниченно поддерживаемые возможности SGML.



Тип содержимого text/html



4.3 Тип содержимого text/html

Документы HTML пересылаются по Internet как последовательность байтов и сопутствующей информации о кодировке (описанной в разделе кодировка символов ).
Структура передачи, называемой тело сообщения, определена в [RFC2045] и [RFC2616].
Тело сообщения с типом содержимого "text/html" представляет собой документ HTML.

 Тип содержимого документа HTML определяется так:

Имя типа содержимого/Content type name: textИмя подтипа содержимого/Content subtype name:html Обязательные параметры/Required parameters:none/отсутствуют Необязательные параметры/Optional parameters:charset/кодовый набор Кодировка/Encoding considerations:допустима любая кодировка  Безопасность/Security considerations:См. замечания по безопасности/security.

Необязательный параметр "charset" имеет отношение к кодировке символов, используемой для представления документа HTML как последовательности байтов. Верные значения этого параметра определены в разделе Кодировка символов.
Хотя это и необязательный параметр, мы рекомендуем его всегда указывать.



Соответствие: требования и рекомендации



4. Соответствие: требования и рекомендации

Содержание

ОпределенияSGML Тип содержимого text/html

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

Ключевые слова "MUST/ДОЛЖЕН", "MUST NOT/НЕ ДОЛЖЕН", "REQUIRED/НЕОБХОДИМ", "SHALL/БУДЕТ", "SHALL NOT/НЕ БУДЕТ", "SHOULD/ДОЛЖЕН", "SHOULD NOT/НЕ ДОЛЖЕН", "RECOMMENDED/РЕКОМЕНДУЕТСЯ", "MAY/МОЖЕТ" и "OPTIONAL/ПО ВЫБОРУ" в этом документе интерпретируются так, как описано в [RFC2119].
Однако, для удобства чтения эти слова не употребляются в этой спецификации со всеми буквами в верхнем регистре.

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



Кодовая страница документа



5.1 Кодовая страница документа

С целью улучшения взаимодействия, SGML требует, чтобы каждое приложение (приложение HTML - в том числе) специфицировало свой набор символов. Набор символов (кодовая страница) состоит из:

"Репертуара": набора абстрактных символов, таких как латинская буква "A", русская буква "И", китайские "водяные знаки" и т.д.Позиции символа: набора цифровых ссылок на символы в "репертуаре".

Каждый документ SGML (включая каждый документ HTML) - это последовательность символов из "репертуара". Операционная система компьютера идентифицирует каждый символ по его кодовой позиции. Например, в наборе символов ASCII кодовые позиции 65, 66 и 67 ссылаются на символы 'A', 'B' и 'C' соответственно.

Набор символов ASCII недостаточен для глобальных информационных систем, таких как Web, поэтому HTML использует более полный набор символов, называемый Universal Character Set (UCS)/Универсальный Набор символов, определённый в документе [ISO10646]. Этот стандарт определяет репертуары тысяч наборов символов, используемых во всём мире.

Набор символов, определённый в [ISO10646], это символ-символ эквивалент Юникода ([UNICODE]). Оба этих стандарта время от времени дополняются новыми символами, и по этим поправкам нужно постоянно консультироваться на соответствующих Web-сайтах. В текущей спецификации ISO10646 использован для определения набора символов, в то время как UNICODEзарезервирован для ссылок на двунаправленный текстовый алгоритм.

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



Выбор кодировки



5.2.1 Выбор кодировки

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

Серверы и proxy-серверы могут изменять кодировку символов (это называется transcoding) "на ходу", чтобы принять запрос пользовательского браузера (смотри раздел 14.2 в [RFC2616], заголовок запроса "Accept-Charset" HTTP). Серверы и прокси-серверы не должны обязательно обслуживать документ в той кодировке, которая покрывает весь набор символов этого документа.

Обычно в Web используются кодировки: ISO-8859-1 (также известная как "Latin-1", используется для большинства западноевропейских языков), ISO-8859-5 (поддерживающая кириллицу), SHIFT_JIS (японская кодировка), EUC-JP (другая японская кодировка) и UTF-8 (кодировка ISO 10646, использующая различное число байтов для различных символов). Названия кодировок нечувствительны к регистру. Таким образом, "SHIFT_JIS", "Shift_JIS" и "shift_jis" эквивалентны.

Эта спецификация не предписывает, какие кодировки браузер должен поддерживать.

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



Определение кодировки



5.2.2 Определение кодировки

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

Как браузер пользователя распознаёт кодировку документа?
Эту информацию должен предоставлять сервер. Прямой путь для этого - использование параметра "charset" заголовочного поля "Content-Type" протокола HTTP ([RFC2616], разделы 3.4 и 14.17). Например, следующий заголовок HTTP объявляет кодировку EUC-JP:

Content-Type: text/html; charset=EUC-JP

Пожалуйста, просмотрите определение text/html  в разделе соответствие.

Протокол HTTP ([RFC2616], раздел 3.7.1) упоминает ISO-8859-1 как кодировку по умолчанию в случае отсутствия параметра "charset" в поле заголовка "Content-Type". На практике эта рекомендация оказывается бесполезной, поскольку некоторые серверы не пересылают параметр "charset", а другие могут быть не сконфигурированы для пересылки параметра. Таким образом, браузер может не получить значение параметра "charset" по умолчанию.

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

Например, для указания кодировки документа в "EUC-JP" документ должен содержать следующее объявление META:

<META http-equiv="Content-Type" content="text/html" charset="EUC-JP">

Объявление META должно использоваться, только если кодировка организована как ASCII-значащие байтовые позиции для символов ASCII (хотя бы до того, как элемент META уже разобран). Объявление META должно появиться в элементе HEAD как можно раньше.

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

Суммируя вышесказанное: браузеры соответствующие требованиям, должны соблюдать следующие приоритеты при определении кодировки документа (от высшего приоритета к низшему):

HTTP параметр "charset" в поле "Content-Type". Объявление META с "http-equiv", установленным в "Content-Type", и значением, установленным в "charset".Атрибут charset, установленный в элементе, обозначающем внешний ресурс.

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

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

Примечание. Если в определённом приложении нужно обратиться к набору символов вне [ISO10646], символы должны быть выделены в отдельное пространство (private zone), чтобы исключить конфликты с будущими версиями стандарта. Однако, это крайне не рекомендуется из соображений переносимости.



Кодовые страницы



5.2 Кодовые страницы

То, что в этой спецификации называется кодировкой символов, известно под различными названиями в других спецификациях (что может иногда смущать). Однако общее понимание - одно во всей сети Internet.
Заголовки протоколов (protocol headers), атрибуты и параметры, относящиеся к кодировке символов, используют один термин - "charset" и одни и те же значения из регистрации [IANA] (смотри полный список в [CHARSETS]).

Параметр "charset" идентифицирует кодировку символов, которая представляет собой метод конвертации последовательности байтов в последовательность символов. Эта конвертация соответствует, по своей природе, схеме деятельности Web: серверы посылают документы HTML браузерам пользователей как поток байтов, браузеры пользователей интерпретируют его в последовательность символов.
Методы конвертации варьируются от простых один-за-другим до сложных схем переключения и алгоритмов.

Простая техника кодирования, один-байт-один-символ, недостаточна для использования символов, не входящих в "репертуар" [ISO10646]. Есть несколько различных кодировок, начиная с частичных кодировок с использованием [ISO10646], и до кодировок полного набора символов (как UCS-4). 



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



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

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

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

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

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

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



Символьные ссылки-мнемоники (по псевдониму)



5.3.2 Символьные ссылки-мнемоники (по псевдониму)

Чтобы предоставить авторам более интуитивный способ ссылки на символы в символьном наборе документа, HTML предлагает символьные ссылки-мнемоники. Символьные мнемоники используют псевдонимы, так что авторы могут не запоминать кодовую позицию. Например, символьную мнемонику &aring; ссылающуюся на "a" с кружком сверху , "&aring;" запомнить легче, чем &#229;.

HTML 4 не определяет символьные мнемоники для всех символов кодового набора. В частности, нет символьной мнемоники для русской заглавной "И". Пожалуйста, просмотрите полный список символьных мнемоник, определённых в HTML 4.

Символьные мнемоники чувствительны к регистру. Так, &Aring; ссылается на другую букву (A с кружком в верхнем регистре), а не на &aring; (а с кружком в нижнем регистре).

Четыре символьные мнемоники должны быть упомянуты отдельно, так как они часто используются в определённых escape-последовательностях:

"&lt;"         - знак < "&gt;"       - знак >"&amp;"    - знак &"&quot;    - знак "

Автор, желающий использовать символ "<" в тексте, должен записать "&lt;" (ASCII десятичная 60), чтобы избежать возможных конфликтов с началом тега (стартовый ограничитель тега). Так же автор должен использовать и "&gt;" (ASCII десятеричная 62) вместо ">", чтобы избежать конфликтов со старыми браузерами, которые некорректно распознают это как конец тега (закрывающий ограничитель тега), если он появляется в значении атрибута в кавычках.

Автор должен использовать "&amp;" (ASCII десятичное 38) вместо "&" во избежание конфликтов с обозначением начала ссылки. Автор также должен употреблять "&amp;" в значениях атрибутов, пока символьные мнемоники допускаются внутри значений атрибутов CDATA

Некоторые авторы используют символьную мнемонику "&quot;" для кодирования появление двойных кавычек ("), поскольку этот символ используется как ограничитель в значениях атрибутов.



Мнемоники (символы по ссылке, по псевдониму)



5.3 Мнемоники (символы по ссылке, по псевдониму)

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

Ссылки на символ (мнемоники) могут быть двух видов:

Цифровые мнемоники (десятеричные или шестнадцатеричные).Мнемоники из символьных элементов.

Мнемоники внутри комментариев не имеют специального значения: это только лишь данные комментариев.

Примечание. HTML предоставляет другие возможности для представления символьных данных, в особенности - встроенные изображения\inline images.

Примечание. В SGML возможно отсутствие конечного символа ";" после ссылки-мнемоники в некоторых случаях (например, перед line break или непосредственно перед тегом). В других условиях это символ не может быть опущен (например,  в середине слова). Мы настоятельно советуем использовать ";" во всех случаях, чтобы исключить проблемы с браузерами пользователей.



Неотображаемые символы



 5.4 Неотображаемые символы

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

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

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

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



5. Представление документа HTML

Содержание

Набор символов документаКодировка Выбор кодировки Замечания по специальной кодировке Определение кодировки Ввод символов по ссылкам-мнемоникамЦифровые мнемоники Символьные мнемоникиНеотображаемые символы

В этой главе мы обсудим, как документы HTML отображаются на компьютере и в Internet.

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

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

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



Регистр



6.1 Регистр

Каждое определение атрибута включает информацию о чувствительности его значения к регистру. Информация о регистре представлена следующими ключами:

CS Значение чувствительно к регистру (т.е., пользовательский агент (ПА) интерпретирует "a" и "A" по-разному). CIЗначение нечувствительно к регистру (т.е., (ПА) интерпретирует "a" и "A" одинаково).CN Значение не является объектом, учитывающим регистр (нейтрально), напр., это набор символов из символьного набора документа.CA Определение элемента или атрибута само предоставляет информацию о регистре. CTПросмотрите определение типа для уточнения чувствительности к регистру.

Если значением атрибута является список, ключи применяются к каждому значению списка, если не указано иное.



Базовые типы SGML



6.2 Базовые типы SGML

Определение типа документа (ОТД) специфицирует синтаксис содержимого элемента и значения атрибута HTML, используя лексемы SGML (напр., PCDATA, CDATA, NAME, ID и т.д.). См. их полные определения в [ISO8879].
Здесь суммирована ключевая информация:

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

ПА могут игнорировать ведущие и конечные символы пробела в значениях атрибута CDATA(напр., "myval   " может интерпретироваться как "myval"). Авторам не следует объявлять атрибуты с ведущими и конечными пробелами.

Для некоторых атрибутов HTML 4 со значениями атрибутов CDATA спецификация устанавливает дальнейшие ограничения допустимых значений этого атрибута, которые могу быть не определены ОТД.

Хотя элементы STYLE и SCRIPT используют CDATA в своих моделях данных, CDATA для этих элементов обрабатывается ПА по-другому. Метки и мнемоники должны рассматриваться как необработанный текст и передаваться в приложение "как есть/as is".
Первое появления последовательности символов "</" (первые символы закрывающего тега) рассматривается как конец содержимого элемента. В правильно составленных документах, это закрывающий тег элемента.

Лексемы ID и NAME должны начинаться с буквы ([A-Za-z]), и за ними может следовать любое количество букв, цифр ([0-9]), дефисов ("-"), символов подчёркивания ("_"), двоеточий (":") и точек (".").IDREF и IDREFS  - это ссылки на лексемы ID, определённые другими атрибутами. IDREF это единичная лексема, а IDREFS это разделённый пробелами список лексем.Лексема NUMBER должна содержать не менее одной цифры ([0-9]).

Текстовые строки



6.3 Текстовые строки

Атрибуты текста ( %Text в ОТД) делают его пригодным для чтения.
Введение об атрибутах см. в учебной дискуссии об атрибутах.



URI



6.4 URI

Данная спецификация использует термин URI, как определено в [URI] (см. также [RFC1630]).

Заметьте, что URI включают URL (как определено в [RFC1738] и [RFC1808]).

Относительные URI дополняются до полных URI, используя базовые URI.
[RFC1808]
, раздел 3, определяет нормативный алгоритм этого процесса. Дополнительную информацию о базовых URI см. в разделе базовые URI в главе о ссылках.

URI представляются в ОТД мнемоникой %URI;.

URI в общем случае нечувствительны к регистру. Могут быть URI, или части URI, где регистр не имеет значения (напр., имя машины/хост), но их идентификация может быть затруднительна. Пользователь должен всегда предполагать, что URI чувствительны к регистру (чтобы быть уверенными в последствиях своих действий).

Пожалуйста, прочтите дополнение к информации о не-ASCII символах в значениях атрибутов URI.



Использование цветов



6.5.1 Использование цветов

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

Использование элементов и атрибутов HTML для установки цвета не рекомендуется. Вместо этого лучше использовать таблицы стилей.Не используйте такие комбинации цветов, которые могут создать проблемы людям, страдающим дальтонизмом и др. подобными расстройствами.Если Вы используете фоновый рисунок или устанавливаете цвет фона, установите также подходящий цвет текста.Цвета, определяемые элементами BODY и FONT и bgcolor в таблицах выглядят по-разному на различных платформах (напр., PC, Macs, Windows и экраны LCD отличаются от CRT), так что Вы не должны всецело полагаться на то, что эффект будет таким, как Вы ожидаете. В будущем поддержка цветовой модели [SRGB] вместе с профилями ICC должна смягчить эту проблему.На практике старайтесь применять различные соглашения, чтобы уменьшить вероятность возможных неудобств для пользователя.

Глава 6.5 Цвета



6.5 Цвета

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

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

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



Размер значений атрибутов



6.6 Размер значений атрибутов

HTML специфицирует три типа значений размера для атрибутов:

Pixels: Значение (%Pixels; в ОТД) является целочисленным/integer, представляя количество пикселов "канвы" (экрана, бумаги). таким образом, "50" означает 50 пикселов. Нормативную информацию об определении пиксела см. в [CSS1]. Length: Значение (%Length; в ОТД) может быть %Pixel; или процент от доступного вертикального или горизонтального пространства. Таким образом, "50%" означает половину доступного пространства.MultiLength: Значение ( %MultiLength; в ОТД) может быть %Length; относительный размер. Относительный размер имеет форму "i*", где "i" - это целое число.
Распределяя пространство между "конкурирующими" элементами, ПА сначала распределяет размер в пикселах или процентах, затем разделяет остающееся свободным пространство между "относительными размерами". Каждый "относительный размер" получает часть доступного пространства пропорционально целому числу с префиксом "*". Значение "*" эквивалентно "1*". Таким образом, если 60 пикселов пространства доступны после того, как ПА распределяет пространство в пикселах и процентах, и "конкурирующие" относительные размеры - 1*, 2* и 3*, 1* будет выделено 10 пикселов, 2* - 20 пикселов и 3* - 30 пикселов.

Значения размера нейтральны к регистру.



Типы содержимого/носителя (типы MIME)



6.7 Типы содержимого/носителя (типы MIME)

Примечание: "Тип носителя" (определённый в [RFC2045] и [RFC2046]) специфицирует природу связанного ресурса. Эта спецификация использует термин "content type\тип содержимого", а не "media type\тип носителя", в соответствии с текущей практикой.
В то же время, в этой спецификации, "media type" может относиться к дескрипторам там, где ПА воспроизводит документ.

Этот тип представлен в ОТД: %ContentType;.

Тиры содержимого нечувствительны к регистру.

Примеры типа содержимого: "text/html", "image/png", "image/gif", "video/mpeg", "text/css" и "audio/basic".
Текущий список зарегистрированных MIME-типов см. в [MIMETYPES].



Коды языка



6.8 Коды языка

Значение атрибута, чей тип - код языка ( %LanguageCode в ОТД), ссылается на код языка, специфицированный в [RFC1766], раздел 2.
О том, как специфицировать код языка в HTML, см. в разделе коды языка. Пробелы внутри кода языка недопустимы.

Коды языка нечувствительны к регистру.



Кодировка



6.9 Кодировка

Атрибуты "charset" (%Charset в ОТД) ссылаются на кодировку символов, как описано в разделе кодировка символов. Значения должны быть строками (напр., "euc-jp") из регистра IANA (см. полный список в [CHARSETS]).

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

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



Отдельные символы



6.10 Отдельные символы

Определённые атрибуты вызывают отдельные символы из кодового набора документа. Эти атрибуты имеют тип %Character в ОТД.

Отдельные символы могут быть определены также мнемониками (напр., "&amp;").



Дата и время



6.11 Дата и время

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

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

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

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

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

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

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

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



Типы ссылок



6.12 Типы ссылок

Авторы могут использовать следующие распознаваемые типы ссылок, перечисленные здесь с их интерпретацией в соответствии с соглашениями. В ОТД %LinkTypes ссылается на разделённый пробелами список типов ссылок. Пробелы внутри типов ссылок недопустимы.

Типы ссылок нечувствительны к регистру, т.е., "Alternate" значит то же, что и "alternate".

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

Alternative/Альтернативный Замещающая версия для документа, на который указывает ссылка. Используемый вместе с атрибутом lang, он подразумевает переведённую версию документа. Если используется вместе с атрибутом media, подразумевает версию, созданную для другого носителя.
Stylesheet/Таблица стилей Ссылается на внешнюю таблицу стилей. См. детали в разделе внешние таблицы стилей. используется вместе со ссылкой типа "Alternate" внешних таблиц, выбираемых пользователем.Старт/Start Ссылается на первый документ в серии документов. Эта ссылка сообщает поисковой машине, какой документ установлен автором в качестве исходного пункта серии документов.
Next/СледующийСсылается на следующий документ в линеарной последовательности документов. ПА могут заранее подгрузить документ "next", чтобы уменьшить в последующем затраты времени.
Prev/Предыд. Ссылается на предыдущий документ в упорядоченной серии документов. Некоторые ПА также поддерживают синоним "Previous".
Contents/Содержание Ссылается на документ с оглавлением. Некоторые ПА также поддерживают синоним ToC(от "Table of Contents").
Index/ИндексСсылается на документ по индексу.
Glossary/Словарь-справочникСсылается на документ из словаря терминов, имеющий отношение к текущему документу.
Copyright/Авторские праваСсылается на оператор авторских прав для текущего документа.
Chapter/ГлаваСсылается на документ, являющийся главой в серии документов.
Section/РазделСсылается на документ, являющийся разделом в серии документов.
Subsection/Подраздел Ссылается на документ, являющийся подразделом в серии документов.
Appendix/Дополнение Ссылается на документ, являющийся дополнением в серии документов. Help/Помощь Ссылается на документ помощи (больше информации, ссылки на др. ресурсы и т.д.)
Bookmark/Закладка Ссылается на закладку. Закладка это ссылка на точку внутри документа. Атрибут title, например, может быть использован для маркировки закладкой. Заметьте, что в каждом документе может быть установлено несколько закладок.

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

Для продолжения обсуждения типов ссылок см. ссылки в документах HTML.



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



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

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

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

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

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

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

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

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



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



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

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

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

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



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



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

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

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

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



Имя целевого фрэйма



6.16 Имя целевого фрэйма

За исключением зарезервированных имён, перечисленных ниже, имя целевого фрэйма (%FrameTarget; в ОТД) должно начинаться алфавитным символом (a-z, A-Z). ПА должны игнорировать все другие имена.

Следующие имена целевого фрэйма зарезервированы и имеют специальное применение:

_blankПА должен загрузить документ в новое безымянное окно._selfПА должен загрузить документ в том же фрэйме, что и элемент, вызвавший его._parentПА должен загрузить документ в родительский, по отношению к нему, фрэйм набора FRAMESET. Это значение эквивалентно _self если текущий фрэйм не имеет предка._top ПА должен загрузить документ в полное оригинальное окно (отменяя, таким образом все другие фрэймы). Это значение эквивалентно _self, если текущий фрэйм не имеет предка.

Базовые типы данных HTML



6. Базовые типы данных HTML

Содержание

Регистр Базовые типы SGML Текстовые строкиURI ЦветаИспользование цветов Размер значений атрибутовТипы содержимого (MIME-типы) Коды языкаКодировка символов Отдельные символыДата и время Типы ссылокМедиа-дескрипторы (дескрипторы типа носителя) Данные сценариевДанные таблиц стилей Имя целевого фрэйма

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

Вводную информацию о том, как читать ОТД (DTD) HTML, см. в справочнике SGML.



Введение



7.1 Введение

Документ HTML 4 состоит из трёх частей:

строка, содержащая информацию о версии HTML, объявляющий раздел header/"шапка" (ограниченный элементом HEAD), тело, содержащее собственно сам документ. Тело может выполняться в элементах BODY или FRAMESET.

Пробельные символы (пробелы, символы новой строки, символы табуляции и комментарии) могут появляться до или после этого раздела. Разделы 2 и 3 должны быть в границах элемента HTML.

Вот пример простого документа HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>My first HTML document</TITLE> </HEAD> <BODY> <P>Hello world! </BODY> </HTML>

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



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

Корректный документ HTML объявляет, какую версию HTML использует данный документ. Объявление типа документа именует определение типа документа (ОТД) для использования в этом документе (см. [ISO8879]).

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

HTML 4.01 Strict/Строгое ОТД включает все элементы и атрибуты, которые не являются не рекомендуемыми или не входят в документ типа "набор фрэймов". Для документов, использующих это ОТД, дайте такое объявление типа : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> HTML 4.01 Transitional/Переходное ОТД включает всё из строгого ОТД плюс не рекомендуемые элементы и атрибуты (большинство из которых касается визуального представления). Для документов, использующих это ОТД, дайте такое объявление типа: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> HTML 4.01 Frameset/Набор Фрэймов ОТД включает всё из переходного ОТД плюс сами фрэймы. Для документов, использующих это ОТД, дайте такое объявление типа: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

URI в каждом из этих объявлений типа документа позволяет пользовательским агентам (ПА) загрузить необходимые ОТД наборы мнемоник. Следующие (относительные) URI ссылаются на ОТД и наборы мнемоник для HTML 4:

"strict.dtd" -- строгое ОТД ,по умолчанию "loose.dtd" -- свободное ОТД "frameset.dtd" -- ОТД для набора фрэймов "HTMLlat1.ent" -- Latin-1 мнемоники "HTMLsymbol.ent" -- мнемоники символов "HTMLspecial.ent" -- специальные мнемоники

Связь между публичными идентификаторами и файлами может быть установлена с использованием файла каталога образцов в соответствии с форматом, рекомендованным Oasis Open Consortium (см. [OASISOPEN]). Файл каталога образцов HTML 4.01 включён в начало раздела справочной информации SGML для HTML. Последние две буквы в объявлении обозначают язык ОТД. Для HTML это всегда английский ("EN").

Примечание. Начиная с версии HTML 4.01 от 24 декабря, the HTML Working Group придерживается следующей политики:

любые будущие изменения в ОТД HTML 4 не изменят корректности документов. соответствующих ОТД настоящей спецификации. The HTML Working Group оставляет за собой право корректировать обнаруженные "жучки"; программные средства, соответствующие ОТД настоящей спецификации, могут игнорировать возможности будущих ОТД HTML 4, которые ими не распознаются.

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



Элемент HTML



7.3 Элемент HTML

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

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

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

version = cdata [CN] Не рекомендуется. Значением этого атрибута является версия ОТД HTML, под управлением которого создан текущий документ. Этот атрибут не рекомендуется использовать, поскольку он является излишним при наличии информации о версии, предоставляемой объявлением типа документа.

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

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> ...элементы head, body и т.п. идут здесь... </HTML>

Элемент HEAD



7.4.1 Элемент HEAD

<!-- %head.misc; определённый ранее как "SCRIPT|STYLE|META|LINK|OBJECT" --> <!ENTITY % head.content "TITLE & BASE?"> <!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- "шапка" документа --> <!ATTLIST HEAD %i18n; -- lang, dir -- profile %URI; #ПРЕДПОЛАГАЕТСЯ -- именованный словарь метаинформации -- >

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

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

profile = uri [CT] Определяет размещение одного или более профилей метаданных, разделённых пробелами. С учётом будущих расширений, ПА должны рассматривать значение как список, даже если в данной спецификации значащим является только первый URI. Профили обсуждаются ниже в разделе метаданные.

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

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

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



Элемент TITLE



7.4.2 Элемент TITLE

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

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

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

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

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

Авторы должны использовать элемент TITLE для идентификации содержимого документа. Поскольку пользователи часто обращаются к документам вне контекста, авторы должны предоставлять осмысленные заголовки. Таким образом, вместо такого заголовка, как "Introduction", который не даёт достаточно информации о документе, авторы должны записать, например, так: "Introduction to Medieval Bee-Keeping".

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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>A study of population dynamics</TITLE> ...другие элементы "шапки"... </HEAD> <BODY> ...тело документа... </BODY> </HTML>

Атрибут title



7.4.3 Атрибут title

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

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

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

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

...какой-нибудь текст... Here's a photo of <A href="http://someplace.com/neatstufFor.gif" title="Me scuba diving"> me scuba diving last summer </A> ...ещё какой-нибудь текст...

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

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



Метаданные



7.4.4 Метаданные

Примечание. The W3C Resource Description Framework (Структура Описания Ресурса) (см. [RDF10]) стал W3C Recommendation в феврале 1999 года. RDF даёт авторам возможность специфицировать читаемые машиной метаданные о документах HTML и других ресурсах, доступных в сети.

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

Например, чтобы специфицировать автора документа, можно использовать элемент META:

<META name="Author" content="Dave Raggett">

Элемент META определил свойство (здесь - "Author") и установил ему значение (здесь - "Dave Raggett").

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



Шапка" документа



7.4 "Шапка" документа









Элемент BODY



7.5.1 Элемент BODY

<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- тело документа --> <!ATTLIST BODY %attrs; -- %coreattrs, %i18n, %events -- onload %Script; #ПРЕДПОЛАГАЕТСЯ -- документ был загружен -- onunload %Script; #ПРЕДПОЛАГАЕТСЯ -- документ был удалён -- >

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

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

background = uri [CT] Не рекомендуется. Значением атрибута является URI, обозначающий источник изображения. Изображение обычно используется для размножения и заполнения фона (для визуальных браузеров). text = color [CI] Не рекомендуется. Устанавливает цвет текста (для визуальных браузеров). link = color [CI] Не рекомендуется. Цвет непосещённых гиперссылок (для визуальных браузеров). vlink = color [CI] Не рекомендуется. Цвет посещённых гиперссылок (для визуальных браузеров). alink = color [CI] Не рекомендуется. Цвет гиперссылок при выборе пользователем (для визуальных браузеров).

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

id, class (идентификаторы документа) lang (язык), dir (направление текста) title (заголовок элемента) style (инлайн-стиль) bgcolor (цвет фона) onload, onunload (внутренние события) onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup (внутренние события)

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

НЕ РЕКОМЕНДУЕТСЯ:
Этот фрагмент HTML иллюстрирует использование не рекомендуемых атрибутов.
Здесь установлен белый цвет фона канвы, чёрный цвет текста, красный первоначальный цвет гиперссылок, фуксиновый при активации и коричневый после посещения.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <TITLE>A study of population dynamics</TITLE> </HEAD> <BODY bgcolor="white" text="black" link="red" alink="fuchsia" vlink="maroon"> ... тело документа... </BODY> </HTML>

Использование таблиц стилей приведёт к тому же результату:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>A study of population dynamics</TITLE> <STYLE type="text/css"> BODY { background: white; color: black} A:link { color: red } A:visited { color: maroon } A:active { color: fuchsia } </STYLE> </HEAD> <BODY> ... тело документа... </BODY> </HTML>

Использование внешних (связанных) таблиц стилей позволяет более гибко управлять представлением, не пересматривая документ-источник HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>A study of population dynamics</TITLE> <LINK rel="stylesheet" type="text/css" href="smartstyle.css"> </HEAD> <BODY> ... тело документа... </BODY> </HTML>

Наборы фрэймов и тело документа HTML. Документы, содержащие набор фрэймов, замещают элемент BODY элементом FRAMESET. См. раздел фрэймы.



Идентификаторы элемента: атрибуты id и class



7.5.2 Идентификаторы элемента: атрибуты id  и class   

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

id = name [CS] Устанавливает имя элемента. Имя должно быть уникальным для данного документа. class = cdata-list [CS] Устанавливает имя класса или набор имён классов для элемента. Любому количеству элементов может быть назначено то же имя или имена класса. Множественные имена классов могут разделяться пробельными символами. Атрибут id назначает элементу уникальны идентификатор (который может проверяться разборщиком SGML). Например, следующие параграфы различаются значениями своих id: <P id="myparagraph"> Этот параграф имеет уникальное имя.</P> <P id="yourparagraph"> Этот параграф тоже имеет уникальное имя.</P>

Атрибут id имеет несколько ролей в HTML:

переключатель таблиц стилей; anchor/якорь назначения для гипертекстовых ссылок; как значение для ссылки на конкретный элемент из скрипта; как имя объявленного элемента OBJECT; для общих надобностей обработки в ПА (напр., для идентификации полей при извлечении данных из страниц HTML в базы данных, переводе документов HTML в другие форматы и т.п.).

Атрибут class одновременно назначает элементу одно или более имён классов; можно сказать, что элемент принадлежит данным классам. Имя класса может разделяться несколькими объектами элемента. Атрибут class имеет несколько ролей в HTML:

переключатель таблиц стилей (если автор захочет назначить информацию о стиле нескольким элементам); для общих надобностей обработки в ПА.

В следующем примере элемент SPAN используется вместе с атрибутами id и class для разметки сообщений документа. Сообщения появляются в английской и французской версиях.

<!-- Сообщения на английском --> <P><SPAN id="msg1" class="info" lang="en">Variable declared twice</SPAN> <P><SPAN id="msg2" class="warning" lang="en">Undeclared variable</SPAN> <P><SPAN id="msg3" class="error" lang="en">Bad syntax for variable name</SPAN> <!-- Сообщения на французском --> <P><SPAN id="msg1" class="info" lang="fr">Variable d&eacute;clar&eacute;e deux fois</SPAN> <P><SPAN id="msg2" class="warning" lang="fr">Variable ind&eacute;finie</SPAN> <P><SPAN id="msg3" class="error" lang="fr">Erreur de syntaxe pour variable</SPAN>

Следующие правила CSS (Каскадной Таблицы Стилей) могут сообщить визуальным ПА, что необходимо отобразить информационные сообщения зелёным цветом, предупреждения - жёлтым, а ошибки - красным:

SPAN.info { color: green } SPAN.warning { color: yellow } SPAN.error { color: red }

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

Почти любому элементу HTML может быть назначен идентификатор и информация класса.

Предположим, например, что мы создаём документ о языке программирования. Документ содержит несколько отформатированных примеров. Мы используем элемент PRE для форматирования примеров. Мы назначаем также цвет фона (зелёный) всем объектам элемента PRE, принадлежащих классу "example".

<HEAD> <TITLE>... заголовок документа ...</TITLE> <STYLE type="text/css"> PRE.example { background : green } </STYLE> </HEAD> <BODY> <PRE class="example" id="example-1"> ...здесь - код примера... </PRE> </BODY>

Установив в этом примере атрибут id, мы можем
(1) делать ссылки на класс и
(2) переопределять информацию стиля класса с помощью объекта информации стиля.

Примечание. Атрибут id разделяет то же пространство имён, что и атрибут name, когда используется для именования якоря. См. дополнительно раздел якоря с id.



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



7.5.3 Элементы инлайн и уровня блока

Некоторые элементы HTML, которые могут появляться в BODY, называются "элементы уровня блока", а другие - "inline/инлайн" (известные также как "text level/уровня текста"). Значение может быть выведено из нескольких понятий:

Модель содержимого Вообще, элементы уровня блока могут содержать инлайн-элементы и другие элементы уровня блока. Вообще, инлайн-элементы могут содержать только данные и другие инлайн-элементы. Сущностью этого структурного отличия является идея, что элементы блока создают более "широкие" структуры, чем инлайн-элементы. Форматирование По умолчанию элементы уровня блока форматируются иначе, нежели инлайн-элементы.
Как правило элементы уровня блока начинаются с новой строки, а инлайн-элементы - нет. Информацию о пробелах, разрывах строки и форматировании блоков см. в разделе о тексте. Направление (текста) По техническим причинам - включение двунаправленного текстового алгоритма [UNICODE], элементы уровня блока и инлайн различаются тем, как они наследуют информацию о направлении. См. детали в разделе наследование направления текста.

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

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



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



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

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

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

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

id, class (идентификаторы документа) lang (язык), dir (направление текста) title (заголовок элемента) style (инлайн-стиль) align (выравнивание) onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup (внутренние события)

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

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

<!-- Пример данных из базы данных клиента: --> <!-- Имя: Stephane Boyera, Tel: (212) 555-1212, Email: sb@foo.org --> <DIV id="client-boyera" class="client"> <P><SPAN class="client-title">Client information:</SPAN> <TABLE class="client-data"> <TR><TH>Last name:<TD>Boyera</TR> <TR><TH>First name:<TD>Stephane</TR> <TR><TH>Tel:<TD>(212) 555-1212</TR> <TR><TH>Email:<TD>sb@foo.org</TR> </TABLE> </DIV> <DIV id="client-lafon" class="client"> <P><SPAN class="client-title">Client information:</SPAN> <TABLE class="client-data"> <TR><TH>Last name:<TD>Lafon</TR> <TR><TH>First name:<TD>Yves</TR> <TR><TH>Tel:<TD>(617) 555-1212</TR> <TR><TH>Email:<TD>yves@coucou.com</TR> </TABLE> </DIV>

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

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

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

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

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

aaaaaaaaa bbbbbbbbb ccccc ccccc

Заголовки: элементы H1, H2,



7.5. 5 Заголовки: элементы H1, H2, H3, H4, H5, H6

<!ENTITY % heading "H1|H2|H3|H4|H5|H6"> <!-- имеется шесть уровней заголовков: от H1 (самый верхний) до H6 (самый нижний). --> <!ELEMENT (%heading;) - - (%inline;)* -- заголовок %attrs; -- %coreattrs, %i18n, %events -- > Начальный тег: необходим, Конечный тег: необходим

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

id, class (идентификаторы документа) lang (язык), dir (направление текста) title (заголовок элемента) style (инлайн-стиль) align (выравнивание) onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup (внутренние события) Элемент heading кратко описывает смысл раздела, которому он предшествует. Информация заголовка может использоваться ПА, например, для автоматического создания оглавления документа.

Имеется шесть уровней заголовков HTML: от H1 (самый крупный/верхний) до H6. Визуальные браузеры обычно отображают более значительный заголовок более крупным шрифтом.

В этом примере видно, как с помощью элемента DIV ассоциировать заголовок с разделом документа, который следует за ним. Это позволит Вам определить таблицу стилей для данного раздела (фон, шрифт и т.д.).

<DIV class="section" id="forest-elephants" > <H1>Forest elephants</H1> <P>In this section, we discuss the lesser known forest elephants. ...раздел продолжается... <DIV class="subsection" id="forest-habitat" > <H2>Habitat</H2> <P>Forest elephants do not live in trees but among them. ...этот раздел продолжается... </DIV> </DIV> Эта структура может быть украшена с помощью таблицы стилей:

<HEAD> <TITLE>... заголовок документа ...</TITLE> <STYLE type="text/css"> DIV.section { text-align: justify; font-size: 12pt} DIV.subsection { text-indent: 2em } H1 { font-style: italic; color: green } H2 { color: green } </STYLE> </HEAD> Нумерованные разделы и ссылки.
HTML сам по себе не генерирует номера разделов в соответствии с заголовками. Это может, однако, выполняться некоторыми ПА. В ближайшем будущем языки таблиц стилей, такие как CSS, позволят авторам управлять генерацией заголовков разделов (что может пригодиться для создания ссылок в печатных документах (см. раздел 7.2).

Некоторые считают скрывание уровней заголовков  плохой практикой. Они принимают H1 H2 H1 не принимают H1 H3 H1, поскольку во втором случае заголовок уровня H2 пропущен.


Элемент ADDRESS



7.5.6 Элемент ADDRESS

<!ELEMENT ADDRESS - - (%inline;)* -- информация об авторе --> <!ATTLIST ADDRESS %attrs; -- %coreattrs, %i18n, %events -- >

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

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

id, class (идентификаторы документа) lang (язык), dir (направление текста) title (заголовок элемента) style (инлайн-стиль) onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup (внутренние события)

Элемент ADDRESS может использоваться авторами для указания контактной информации в документе или в большой части документа, например, в форме. Этот элемент часто появляется в начале или в конце документа.

Например, страница на W3C Web-сайте, относящаяся к HTML, может содержать следующую контактную информацию:

<ADDRESS> <A href="../People/Raggett/">Dave Raggett</A>, <A href="../People/Arnaud/">Arnaud Le Hors</A>, contact persons for the <A href="Activity">W3C HTML Activity</A><BR> $Date: 1999/12/24 23:07:14 $ </ADDRESS>

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




7.5 Тело документа









Общая структура документа HTML



7. Общая структура документа HTML

Содержание

Введение Информация о версии HTML Элемент HTML "Шапка" документа Элемент HEAD Элемент TITLE Атрибут title Метаданные Спецификация метаданных Элемент META Профили метаданных Тело документа Элемент BODY Идентификаторы элемента: атрибуты id и class Элементы инлайн и уровня блока Группирование элементов: элементы DIV и SPAN Заголовки: элементы H1, H2, H3, H4, H5, H6 Элемент ADDRESS

Коды языка



8.1.1 Коды языка

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

[RFC1766] определяет и разъясняет коды языка, которые должны использоваться в документах HTML.

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

language-code = primary-code ( "-" subcode )*

Вот примеры кодов некоторых языков:

"en": английский, "en-US": американский английский, "en-cockney": Cockney-версия английского, "i-navajo": навахо, "x-klingon": тег "x" обозначает экспериментальный тег языка.

Двухсимвольные первичные коды зарезервированы для аббревиатур [ISO639].
Двухсимвольные коды включают fr (французский), de (немецкий), it (итальянский), nl (фламандский), el (греческий), es (испанский), pt (португальский), ar (арабский), he (еврейский), ru (русский), zh (китайский), ja (японский), hi (хинди), ur (урду) и sa (санскрит).

Любые двухбуквенный субкод понимается как код страны в [ISO3166].



Наследование кодов языка



8.1.2 Наследование кодов языка

Элемент наследует информацию кода языка в следующем порядке (приоритет от высшего к низшему):

установлен атрибут lang в самом элементе; установлен атрибут lang ближайшего элемента-предка (т.е. атрибут lang наследован); заголовок HTTP "Content-Language" (который может быть сконфигурирован на сервере). Например: Content-Language: en-cockney значения ПА по умолчанию и установки пользователя.

В этом примере основной язык документа - французский ("fr"). Один параграф объявлен как испанский ("es"), после которого возвращается основной язык (французский). Следующий параграф содержит фразу на внедрённом японском ("ja"), после чего возвращается основной язык (французский).

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML lang="fr"> <HEAD> <TITLE>Un document multilingue</TITLE> </HEAD> <BODY> ...интерпретируется как французский... <P lang="es">...интерпретируется как испанский... <P>...снова интерпретируется как французский... <P>...французский текст прерывается японским... <EM lang="ja">что-нибудь на японском</EM>здесь снова продолжается французский... </BODY> </HTML> Примечание. Если ячейка занимает область из нескольких ячеек (span), то она может наследовать значение lang не из своего предка, а из первой ячейки в span . См. детали в разделе наследование выравнивания.

Интерпретация кодов языка



8.1.3 Интерпретация кодов языка

В контексте HTML код языка должен интерпретироваться ПА как иерархия понятий, а не отдельное понятие. Когда ПА уточняет отображение, используя информацию о языке (путём сравнения кодов языка таблиц стилей и значений атрибута lang), он всегда должен находить точное совпадение, но должен также учитывать совпадение основных кодов. Таким образом, если значение атрибута lang "en-US" установлено для элемента HTML, ПА должен сначала отдать предпочтение информации, совпадающей с "en-US", а уже затем - с более общим значением "en".

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



Спецификация языка содержимого: атрибут lang



8.1 Спецификация языка содержимого: атрибут lang

Определение атрибута lang = language-code [CI] Этот атрибут определяет базовый язык значений атрибутов элементов и содержимого текста. По умолчанию значение этого атрибута неизвестно.

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

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

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

Цель атрибута lang - создать ПА условия для более понятного представления содержимого на базе принятой для данного языка культурной практики. Это не означает, что ПА должны отображать нетипичные для конкретного языка символы менее осмысленным способом. ПА обязаны действовать наилучшим образом для отображения всех символов независимо от значений атрибута lang.

Например, если символы греческого алфавита появляются в окружении английского текста:

<P><Q lang="en">Her super-powers were the result of &gamma;-radiation,</Q> he explained.</P>

ПА должен
(1) попытаться представить английское содержимое соответствующим образом (например, при обработке знаков кавычек) и
(2) обязан попытаться представить символ γ наилучшим образом, несмотря на то, что этот символ не является английской буквой.

См. дополнительную информацию в разделе неотображаемые символы.



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



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

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

english1 HEBREW2 english3 HEBREW4 english5 HEBREW6

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

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

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

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

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

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

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