В этом разделе спецификации рассматриваются элементы и атрибуты HTML, которые используются для визуального форматирования элементов. Многие из них не рекомендуется применять.
Фрэймы - Введение
16.1 Фрэймы - Введение
Фрэймы HTML позволяют авторам представить документ одновременно в нескольких окнах, которые могут быть независимыми окнами или подокнами. Такой вид позволяет сохранить видимой важную информацию, в то время как другие фрэймы могут прокручиваться и меняться. Например, в одном общем окне один фрэйм может содержать статичный баннер, второй - меню навигации, третий - главный документ, который может прокручиваться или заменяться при навигации по второму фрэйму.
Вот простой документ с фрэймами:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <HTML> <HEAD> <TITLE>Простой набор фрэймов</TITLE> </HEAD> <FRAMESET cols="20%, 80%"> <FRAMESET rows="100, 200"> <FRAME src="contents_of_frame1.html"> <FRAME src="contents_of_frame2.gif"> </FRAMESET> <FRAME src="contents_of_frame3.html"> <NOFRAMES> <P>Это набор фрэймов: <UL> <LI><A href="contents_of_frame1.html">Некоторое содержимое</A> <LI><IMG src="contents_of_frame2.gif" alt="Изображение"> <LI><A href="contents_of_frame3.html">Другое содержимое</A> </UL> </NOFRAMES> </FRAMESET> </HTML>
rows = multi-length-list[CN]
Определяет вывод горизонтальных фрэймов. Это разделённый запятыми список пикселов, процентов и относительных размеров. По умолчанию - 100%, один ряд.
cols = multi-length-list[CN]
Определяет вывод вертикальных фрэймов. Это разделённый запятыми список пикселов, процентов и относительных размеров. По умолчанию - 100%, один столбец.
Элемент FRAMESET определяет вывод главного пользовательского окна в виде набора прямоугольников (кадров).
Элемент FRAME
16.2.2 Элемент FRAME
<![ %HTML.Frameset; [ <!-- зарезервированные имена фрэймов начинаются с символа "_" остальные - с буквы --> <!ELEMENT FRAME - O EMPTY -- подокно --> <!ATTLIST FRAME %coreattrs; -- id, class, style, title -- longdesc%URI; #ПРЕДПОЛАГАЕТСЯ -- ссылка на полное описание (дополняет title) -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- имя целевого фрэйма -- src%URI; #ПРЕДПОЛАГАЕТСЯ -- источник содержимого фрэйма -- frameborder (1|0) 1 -- установка бордюра-рамки фрэйма -- marginwidth%Pixels; #ПРЕДПОЛАГАЕТСЯ -- ширина полей, в пикселах -- marginheight%Pixels; #ПРЕДПОЛАГАЕТСЯ -- высота полей, в пикселах -- noresize (noresize) #ПРЕДПОЛАГАЕТСЯ -- запрещает/разрешает пользователю изменение размеров фрэйма -- scrolling (yes|no|auto) auto -- прокрутка -- > ]]>
Определения атрибутов
name = cdata[CI]
Этот атрибут назначает имя текущему фрэйму. Это имя может использоваться как целевое в последующих ссылках.
longdesc = uri[CT]
Определяет ссылку к полному описанию фрэйма. Это описание должно дополнять краткое описание, данное атрибутом
title, и может использоваться для невизуальных ПА.
src = uri[CT]
Определяет размещение первоначального содержимого фрэйма.
noresize [CI]
При наличии, этот булев атрибут сообщает ПА, что окно фрэйма не может изменять свои размеры.
scrolling =
auto|yes|no [CI]
Прокрутка окна фрэйма. Возможные значения:
auto: это значение требует от ПА предоставлять возможность прокрутки при необходимости. Это значение по умолчанию.
yes: это значение требует от ПА всегда предоставлять возможность прокрутки.
no: это значение требует от ПА не предоставлять возможность прокрутки.
frameborder = 1|0 [CN]
Этот атрибут сообщает ПА информацию об обрамлении фрэйма. Возможные значения:
1: это значение требует от ПА рисовать разделитель между этим фрэймом и каждым смежным фрэймом. Это значение по умолчанию.
0: это значение требует от ПА не рисовать разделитель между этим фрэймом и каждым смежным фрэймом. Учтите, что разделители всё же будут прорисованы, если они установлены в других фрэймах.
marginwidth = pixels[CN]
Этот атрибут определяет левое и правое поля между границей фрэйма и его содержимым. Значение должно быть больше нуля (в пикселах). Значение по умолчанию зависит от ПА.
marginheight = pixels[CN]
Определяет верхнее и нижнее поля между границей фрэйма и его содержимым. Значение должно быть больше нуля (в пикселах). Значение по умолчанию зависит от ПА.
Элемент
FRAME определяет вид и содержимое одного фрэйма.
Вывод фрэймов
16.2 Вывод фрэймов
Документ HTML, описывающий вывод фрэймов (называемый документ с фрэймами), имеет несколько другой состав, нежели документ HTML без фрэймов. Стандартный документ содержит один раздел HEAD и один раздел BODY. Набор фрэймов содержит раздел
HEAD, и раздел FRAMESET вместо BODY.
Раздел FRAMESET определяет вывод нескольких кадров в главном окне. Дополнительно раздел FRAMESET может содержать элемент NOFRAMES для представления альтернативного содержимого в ПА, не поддерживающих фрэймы или сконфигурированных так. чтобы не отображать фрэймы.
Элементы, которые могут быть нормально размещены в элементе
BODY, не должны появляться перед первым элементом
FRAMESET , иначе FRAMESET будет проигнорирован.
Если многие ссылки в одном документе имеют один целевой фрэйм, можно установить его однократно в атрибуте target
каждого элемента. Это делается установкой атрибута target
элемента BASE.
Мы возвращаемся к предыдущему примеру, размножая на этот раз информацию о цели, определяя её в элементе BASE и удаляя её из элементов
A.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <TITLE>A document with BASE with a specific target</TITLE> <BASE href="http://www.mycom.com/Slides" target="dynamic"> </HEAD> <BODY> ...начало документа...
<P>Now you may advance to <A href="slide2.html">slide 2.</A> ...документ...
<P>You're doing great. Now on to <A href="slide3.html">slide 3.</A> </BODY> </HTML>
ПА должны определять целевой фрэйм, в который нужно загружать связанный ресурс, следующим образом (приоритет от высшего к низшему):
Если атрибут
target элемента установлен на известный фрэйм, при активации элемента (т.е. сделан переход по ссылке или форма обрабатывается), ресурс назначения для элемента должен быть загружен в целевой фрэйм.
Если атрибут
target элемента не установлен, но есть элемент
BASE, атрибут target
элемента BASE определяет целевой фрэйм.
Если ни элемент, ни элемент BASE не имеют ссылки на целевой фрэйм, ресурс должен быть загружен во фрэйм, содержащий элемент.
Если любой атрибут target ссылается на неизвестный фрэйм F, ПА должен новое окно и фрэйм, назначить фрэйму имя F и загрузить ресурс, назначенный элементом, в новый фрэйм.
ПА могут предоставлять пользователям механизм переопределения атрибута target.
Установка целевого фрэйма
16.3 Установка целевого фрэйма
Примечание. Информацию о текущей практике определения целевого фрэйма см. замечания о фрэймах
в приложении.
Определение атрибута
target = frame-target[CI]
Определяет имя фрэйма, в котором будет открыт документ.
Установив атрибут name, авторы могут ссылаться на него как на "target" (целевой) для ссылок, определённых в других элементах. Атрибут target
может быть установлен для элементов, создающих ссылки (A,
LINK), карты изображений (AREA) и формы (FORM).
Этот пример иллюстрирует, как целевые фрэймы позволяют динамически модифицировать содержимое фрэйма. Сначала мы определяем набор фрэймов в документе
frameset.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <HTML> <HEAD> <TITLE>A frameset document</TITLE> </HEAD> <FRAMESET rows="50%,50%"> <FRAME name="fixed" src="init_fixed.html"> <FRAME name="dynamic" src="init_dynamic.html"> </FRAMESET> </HTML>
затем в init_dynamic.html мы создаём ссылку на фрэйм с именем "dynamic":
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD> <TITLE>A document with anchors with specific targets</TITLE> </HEAD> <BODY> ...начало документа...
<P>Now you may advance to <A href="slide2.html" target="dynamic">slide 2.</A> ...документ...
<P>You're doing great. Now on to <A href="slide3.html" target="dynamic">slide 3.</A> </BODY> </HTML>
Активация любой ссылки открывает новый документ во фрэйме с именем "dynamic", в то время как другой фрэйм - "fixed", сохраняет первоначальное содержимое.
Примечание. Определение набора фрэймов никогда не меняется, но содержимое любого из них - может меняться. Как только содержимое фрэйма изменилось, определение набора фрэймов больше не отражает текущее состояние своих фрэймов.
В настоящее время отсутствует возможность кодировать всё состояние набора фрэймов в URI. В то же время, многие ПА не позволяют пользователям устанавливать закладки на набор фрэймов.
Наборы фрэймов могут сделать навигацию в "истории" ПА более затруднительной для пользователя.
Элемент
NOFRAMES определяет содержимое, которое должно отображаться, только если ПА не поддерживает фрэймы или сконфигурирован так, чтобы не отображать их. ПА, поддерживающие фрэймы, должны отображать содержимое элемента
NOFRAMES, если сконфигурированы так, чтобы не отображать фрэймы. ПА, не поддерживающие фрэймы, должны отображать содержимое элемента NOFRAMES в любом случае.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <HTML> <HEAD> <TITLE>A frameset document with NOFRAMES</TITLE> </HEAD> <FRAMESET cols="50%, 50%"> <FRAME src="main.html"> <FRAME src="table_of_contents.html"> <NOFRAMES> <P>Here is the <A href="main-noframes.html"> non-frame based version of the document.</A> </NOFRAMES> </FRAMESET> </HTML>
NOFRAMES может использоваться, например, в документе - источнике фрэйма, использующего переходное ОТД. Это позволит авторам объяснить задачи документа в тех случаях, когда он просматривается вне набора фрэймов или в ПА, не поддерживающем фрэймы.
Полное описание фрэймов
16.4.2 Полное описание фрэймов
Атрибут longdesc позволяет авторам сделать документ с фрэймами более доступным для людей, использующих невизуальные ПА. Этот атрибут создаёт ресурс, который предоставляет полное описание фрэйма. Авторы должны помнить, что полное описание, ассоциированное с фрэймами, присоединяется к фрэйму, а не к его содержимому. Поскольку содержимое может меняться, начальное полное описание могло бы стать несоответствующим более позднему содержимому фрэйма. В особенности авторы не должны включать изображение как единственное содержимое фрэйма.
Следующий frameset-документ описывает два фрэйма. Левый содержит оглавление, а правый первоначально содержит изображение страуса:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <HTML> <HEAD> <TITLE>A poorly-designed frameset document</TITLE> </HEAD> <FRAMESET cols="20%, 80%"> <FRAME src="table_of_contents.html"> <FRAME src="ostrich.gif" longdesc="ostrich-desc.html"> </FRAMESET> </HTML>
Заметьте, что изображение включено во фрэйм независимо от какого-либо элемента HTML, так что автор не имеет другого пути дать альтернативный текст, кроме как атрибутом longdesc. Если содержимое правого фрэйма изменилось (напр., пользователь отделил гремучую змею от содержимого), пользователи больше не будут иметь прямого доступа к новому содержимому фрэйма.
Таким образом, авторы не должны помещать изображение непосредственно во фрэйм. Вместо этого, изображение должно быть определено в отдельном документе HTML и здесь обозначено соответствующим альтернативным текстом:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <HTML> <HEAD> <TITLE>A well-designed frameset document</TITLE> </HEAD> <FRAMESET cols="20%, 80%"> <FRAME src="table_of_contents.html"> <FRAME src="ostrich-container.html"> </FRAMESET> </HTML>
<!-- In ostrich-container.html: --> <HTML> <HEAD> <TITLE>The fast and powerful ostrich</TITLE> </HEAD> <P> <OBJECT data="ostrich.gif" type="image/gif"> These ostriches sure taste good! </OBJECT> </HTML>
Альтернативное содержимое
16.4 Альтернативное содержимое
Авторы должны предоставлять альтернативное содержимое для тех ПА, которые не поддерживают фрэймы или сконфигурированы так, чтобы не отображать их.
Инлайн-фрэймы: элемент IFRAME
16.5 Инлайн-фрэймы: элемент IFRAME
<!ELEMENT IFRAME - - (%flow;)* -- inline подокно --> <!ATTLIST IFRAME %coreattrs; -- id, class, style, title -- longdesc%URI; #ПРЕДПОЛАГАЕТСЯ -- ссылка на полное описание (дополняет title) -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- имя целевого фрэйма -- src%URI; #ПРЕДПОЛАГАЕТСЯ -- источник содержимого фрэйма -- frameborder (1|0) 1 -- бордюр фрэйма -- marginwidth%Pixels; #ПРЕДПОЛАГАЕТСЯ -- ширина полей, в пикселах -- marginheight%Pixels; #ПРЕДПОЛАГАЕТСЯ -- высота полей, в пикселах -- scrolling (yes|no|auto) auto -- прокручивать или нет -- align%IAlign; #ПРЕДПОЛАГАЕТСЯ -- вертикальное и горизонтальное выравнивание -- height%Length; #ПРЕДПОЛАГАЕТСЯ -- высота фрэйма -- width%Length; #ПРЕДПОЛАГАЕТСЯ -- ширина фрэйма -- >
Определения атрибутов
longdesc = uri[CT]
Определяет ссылку на полное описание фрэйма. Это описание должно дополнять краткое описание, даваемое атрибутом
title, и должно использоваться для невизуальных ПА.
name = cdata[CI]
Устанавливает имя текущего фрэйма. Это имя может использоваться для последующих ссылок.
width = length[CN]
Ширина инлайн-фрэйма.
height = length[CN]
Высота инлайн-фрэйма.
Информация. вставляемая инлайн, создаётся атрибутом
src данного элемента. Содержимое
элемента IFRAME, с другой стороны, должно отображаться ПА, только если он (ПА) не поддерживает фрэймы или соответствующим образом сконфигурирован, чтобы не отображать фрэймы.
В ПА поддерживающих фрэймы, этот пример помещает инлайн-фрэйм, окружённый бордюром, в середину текста.
<IFRAME src="foo.html" width="400" height="500" scrolling="auto" frameborder="1"> [Ваш ПА не поддерживает фрэймы или соответствующим образом сконфигурирован, чтобы не отображать фрэймы. Однако, Вы можете посетить <A href="foo.html">сопутствующий документ.</A>] </IFRAME>
Инлайн-фрэймы не могут менять свои размеры (и таким образом, они не принимают атрибут noresize).
Примечание. Документы HTML могут также быть встроены в другие документы HTML с помощью элемента OBJECT. См. раздел встроенные документы.
Форма HTML это раздел документа, содержащий обычные данные, разметку, специальные элементы, называемые "элементы управления" (переключатель, radio-кнопка, меню и т.д.), и лэйблы для этих элементов управления.
Пользователи обычно "заполняют" форму, изменяя содержимое её элементов (вводя текст, выбирая пункты меню и т.д.), прежде чем отправить её агенту для обработки (напр., Web-серверу, mai-серверу и т.п.)
Вот пример простой формы, включающей лэйблы, radio-кнопки и кнопки push (для очистки или отправки формы):
Примечание. Эта спецификация содержит более развёрнутую информацию о формах в разделе вопросы отображения форм.
Типы элементов управления формы (ЭУ)
17.2.1 Типы элементов управления формы (ЭУ)
HTML определяет следующие типы ЭУ:
кнопки
Авторы могут создавать кнопки трёх типов:
кнопки submit: при активации кнопка submit отправляет форму. Форма может содержать несколько кнопок submit;
кнопки reset: при активации кнопка reset устанавливает все ЭУ в их начальные значения;
кнопки push: кнопки push не имеют предопределённых функций. Каждая кнопка push может иметь клиентский сценарий (выполняемый на стороне клиента), ассоциированный с атрибутом event/событие. При возникновении события (напр., пользователь нажал кнопку, отпустил её и т.д.), включается ассоциированный сценарий (скрипт).
Авторы создают кнопки, используя ЭУ BUTTON, или ЭУ INPUT. См. определение этих ЭУ .
Примечание. Авторы должны иметь в виду, что возможности ЭУ BUTTON
богаче, чем у INPUT.
переключатели/checkboxes
Переключатели (и radio-кнопки) это переключатели типа вкл./выкл., управляемые пользователем. Переключатель "включён", если установлен атрибут checked
ЭУ. Если форма отправлена, только переключатель "включён" может быть "действующим".
Несколько переключателей в форме могут использовать одно имя ЭУ. Так, например, переключатели позволяют пользователям выбрать несколько значений для одного свойства. ЭУ INPUT используется для создания переключателей.
radio-кнопки
Radio-кнопки похожи на переключатели/checkboxes, за исключением того, что, при использовании одного и того же имени ЭУ, они действуют взаимоисключающе: если одна выбрана "включено", все остальные с тем же именем "выключены". Элемент INPUT используется для создания ЭУ "radio-кнопка".
Если ни одна radio-кнопка из использующих общее имя первоначально не установлена во "включено", поведение пользовательского агента (ПА) по установлению того, какая из кнопок включена, не определено.
Примечание. Поскольку существующие приложения обрабатывают эту ситуацию по-разному, данная спецификация отличается от RFC 1866 ([RFC1866] раздел 8.1.2.4) в следующем:
В определённый момент времени только одна radio-кнопка из набора может быть "включена". Если ни один из элементов <INPUT> набора radio-кнопок не установлен (`CHECKED'), тогда ПА обязан вначале включить первую из кнопок набора.
Поскольку поведение ПА различно, авторы должны убедиться, что в каждом наборе radio-кнопок одна "включена".
меню
Меню дают возможность выбора из списка значений. Элемент SELECT
создаёт меню в комбинации с элементами OPTGROUP
и OPTION.
текстовые поля
Авторы могут создавать поля для ввода текста двух видов. Элемент INPUT создаёт однострочный ЭУ, а элемент TEXTAREA - многострочный. В обоих случаях, введённый текст становится текущим значением.
выбор файла/file select
ЭУ этого типа позволяют пользователям выбрать файлы, и их содержимое может пересылаться с формой. Элемент INPUT используется для создания ЭУ выбор файла/file select.
hidden control/скрытый ЭУ
Авторы могут создавать невидимые ЭУ, значения которых пересылаются вместе с формой. Обычно ЭУ этого типа используются для хранения информации при обмене клиент/сервер, которая иначе может быть утеряна из-за нестатичной природы HTTP (см. [RFC2616]). Элемент INPUT используется для создание скрытых ЭУ/hidden control.
ЭУ object
Авторы могут вставлять в форму общие объекты, чьи ассоциированные значения пересылаются вместе с другими данными. Авторы создают объект с помощью ЭУ
OBJECT.
Элементы, используемые для создания ЭУ, обычно размещаются внутри элемента FORM, но могут также находиться и вне объявления элемента FORM, если используются для создания пользовательского интерфейса. Этот вопрос рассматривается в разделе внутренние события. Обратите внимание - ЭУ вне формы не могут быть "действующими ЭУ".
Имя элемента управления (ЭУ), "control name", задаётся атрибутом
name. Областью видимости атрибута name
ЭУ внутри формы является элемент FORM.
Каждый ЭУ имеет начальное и текущее значение типа "символьная строка". См. определение каждого ЭУ для спецификации начальных значений и возможные ограничения значений, принимаемых ЭУ. В целом, "начальное значение\initial value" может быть установлено атрибутом
value ЭУ. Однако начальное значение ЭУ
TEXTAREA задаётся его содержимым, а начальное значение ЭУ OBJECT в форме определяется реализацией данного объекта (т.е. находится вне пределов данной спецификации).
"Текущее значение\current value"ЭУ вначале устанавливается в первоначальное значение. После этого текущее значение ЭУ можно изменять, взаимодействуя с пользователем, и с помощью скриптов (сценариев).
Начальное значение ЭУ не изменяется. Таким образом, при очистке формы текущее значение каждого ЭУ устанавливается в начальное значение.
Если ЭУ не имеет начального значения, воздействие очистки формы на данный ЭУ не определено.
При отправке формы на обработку, некоторые ЭУ образуют пары "имя/значение", которые затем пересылаются
с формой. ЭУ, чьи пары имя/значение высланы, называются "действующие ЭУ".
Элемент FORM
17.3 Элемент FORM
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- интерактивная форма --> <!ATTLIST FORM %attrs; -- %coreattrs, %i18n, %events -- action%URI; #НЕОБХОДИМ -- обработчик на стороне сервера -- method (GET|POST) GET -- HTTP метод отправки формы-- enctype%ContentType; "application/x-www-form-urlencoded" accept%ContentTypes; #ПРЕДПОЛАГАЕТСЯ -- список типов MIME для загрузки файлов -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- имя формы (для скриптов) -- onsubmit%Script; #ПРЕДПОЛАГАЕТСЯ -- событие: форма отправлена -- onreset%Script; #ПРЕДПОЛАГАЕТСЯ -- событие: форма очищена -- accept-charset%Charsets; #ПРЕДПОЛАГАЕТСЯ -- список поддерживаемых наборов символов -- >
Начальный тег: необходим, Конечный тег: необходим
Определения атрибутов
action = uri[CT]
Определяет обработчик формы. Поведение пользовательского агента (ПА) для значений, отличных от HTTP URI не определено.
method =
get|post [CI]
Определяет, какой метод HTTP используется для отправки набора данных формы. Возможные (нечувствительные к регистру) значения - "get" (по умолчанию) и "post". См. родственную информацию в разделе отправка формы.
enctype = content-type[CI]
Определяет тип содержимого/content type при отправке формы на сервер (если значение method'a
- "post"). Значением по умолчанию этого атрибута является "application/x-www-form-urlencoded". Значение "multipart/form-data" должно использоваться в комбинации с элементом
INPUT, type="file".accept-charset
= список наборов символов[CI]
Определяет список кодировок для вводимых данных, принимаемых сервером, обрабатывающим данную форму. Значением является список наборов символов, разделённых пробелами и/или запятыми. Клиент должен интерпретировать этот список как список XOR (exclusive-or), т.е. сервер может принять любой отдельный символ кодировки на каждый полученный объект. Значением по умолчанию этого атрибута является зарезервированная строка "UNKNOWN".
ПА могут интерпретировать это значение как кодировку символов, использованную для передачи документа, содержащего форму FORM.
accept = content-type-list[CI]
Определяет список разделённых запятыми типов содержимого, которые сервер-обработчик формы будет обрабатывать корректно. ПА могут использовать эту информацию для фильтрации несоответствующих файлов при запросе пользователя на выбор файлов, пересылаемых серверу (сравните элемент INPUT с type="file").
name = cdata[CI]
Этот атрибут именует элементы таким образом, что на них можно ссылаться из таблицы стилей или скрипта (сценария). Примечание. Этот атрибут введён для обеспечения обратной совместимости. Приложения должны использовать атрибут
id для идентификации элементов.
Элемент
FORM действует как контейнер для ЭУ. Он определяет:
Вид формы (в зависимости от содержимого элементов).
Программу, которая будет обрабатывать заполненную и отправленную форму - обработчик формы (указанный в атрибуте action). Программа должна разбирать пары имя/значение для их последующего использования.
Метод отправки данных пользователя на сервер (атрибут method).
Кодировку символов, понимаемую сервером - для обработки формы (атрибут accept-charset).
ПА должны уведомлять пользователя о значении атрибута accept-charset и/или ограничивать возможность введения пользователем нераспознаваемых символов.
Форма может содержать текст и разметку (параграфы, списки и т.п.) в дополнение к ЭУ формы.
В следующем примере показана форма, обрабатываемая программой "adduser" после отправки.
Форма будет отправлена программе методом "post".
См. раздел отправка формы
о том, как ПА должны готовить данные формы для сервера и как ПА должны обработать ожидаемый ответ.
Примечание. Обсуждение работы сервера, принимающего данные формы, находится за рамками данной спецификации.
Типы ЭУ, создаваемых в элементе INPUT
17.4.1 Типы ЭУ, создаваемых в элементе INPUT
Тип ЭУ, определяемый элементом INPUT, зависит от значения атрибута type:
text
Однострочный ЭУ для ввода текста.
passwordКак "text", но вводимый текст изображается так, чтобы скрыть вводимые символы (напр., серией "звёздочек"). ЭУ этого типа часто используется для ввода специальной информации, напр., пароля. Заметьте, что текущее значение, это текст, введённый
пользователем, а не текст, изображаемый ПА.
Примечание. Разработчики программного обеспечения должны иметь в виду, что этот механизм обеспечивает лишь некоторую защиту. Хотя пароль маскируется ПАгентом от случайного просмотра, он передаётся на сервер в виде обычного текста и может быть прочитан кем-нибудь, имеющим низкоуровневый доступ к сети.
Если для щелчка на кнопке image используется указательное устройство (мышь и т.п.),
форма отправляется и координаты щелчка передаются серверу. Значение Х измеряется в пикселах от левого края изображения, а значение У - в пикселах от верхнего края изображения. Отправленные данные включают значения name.x=x-value и name.y=y-value, где "name" это значение атрибута name, а x-value и y-value
это значения координат x и y соответственно.
Если сервер выполняет разные действия в зависимости от места нажатия на элементе, пользователи неграфических браузеров окажутся в затруднительном положении. По этим причинам авторы должны предусматривать дополнительные варианты:
Использовать несколько кнопок submit (каждая со своим изображением) вместо единой графической кнопки submit. Авторы могут использовать таблицы стилей для управления положением кнопок.
Использовать клиентские карты изображений в сочетании со скриптами.
reset
Создаёт a кнопку reset.
button
Создаёт кнопку push. ПА должны использовать значение атрибута value как лэйбла кнопки.
hidden
Создаёт элемент hidden.
file
Создаёт ЭУ file select. ПА могут использовать значение атрибута value начальное имя файла.
Примеры форм, содержащих ЭУ в элементе INPUT
17.4.2 Примеры форм, содержащих ЭУ в элементе INPUT
Следующий фрагмент HTML определяет простую форму, которая даёт пользователю возможность ввести имя, фамилию, email адрес и пол. При активации кнопки submit, форма посылается программе, указанной в атрибуте
action.
<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET | FILE | HIDDEN | IMAGE | BUTTON)" >
<!-- имя атрибута требуется для всех, кроме submit и reset --> <!ELEMENT INPUT - O EMPTY -- ЭУ формы --> <!ATTLIST INPUT %attrs; -- %coreattrs, %i18n, %events -- type%InputType; TEXT -- тип ЭУ -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- отправляется как часть формы -- valueCDATA #ПРЕДПОЛАГАЕТСЯ -- для radio-кнопок и переключателей -- checked (checked) #ПРЕДПОЛАГАЕТСЯ -- для radio-кнопок и переключателей -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- readonly (readonly) #ПРЕДПОЛАГАЕТСЯ -- для text и passwd -- sizeCDATA #ПРЕДПОЛАГАЕТСЯ -- специфичен для каждого типа поля -- maxlengthNUMBER #ПРЕДПОЛАГАЕТСЯ -- максимальное к-во символов для полей text -- src%URI; #ПРЕДПОЛАГАЕТСЯ -- для полей с изображениями -- altCDATA #ПРЕДПОЛАГАЕТСЯ -- краткое описание -- usemap%URI; #ПРЕДПОЛАГАЕТСЯ -- использовать клиентские карты изображений -- ismap (ismap) #ПРЕДПОЛАГАЕТСЯ -- использовать серверные карты изображений -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- onselect%Script; #ПРЕДПОЛАГАЕТСЯ -- текст был выделен -- onchange%Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента было изменено -- accept%ContentTypes; #ПРЕДПОЛАГАЕТСЯ -- список типов MIME для загрузки файлов -- >
Начальный тег: необходим, Конечный тег: запрещён
Определения атрибутов
type =
text|password|checkbox|radio|submit|reset|file|hidden|image|button [CI]
Определяет тип создаваемого ЭУ. Значение этого атрибута по умолчанию - "text".
name = cdata[CI]Имя ЭУ.
value = cdata[CA]Начальное значение ЭУ. Не обязательно, если только атрибут type не имеет значение "radio" или "checkbox".
size = cdata[CN]
Сообщает пользовательскому агенту начальную ширину ЭУ. Ширина задаётся в пикселах, за исключением случаев, когда атрибут type имеет значение "text" или "password". В этом случае значение атрибута - (integer) целое число символов.
maxlength = number[CN]
Если атрибут type имеет значение "text" или "password", этот атрибут определяет максимальное количество символов, которое может ввести пользователь. Это число может оказаться больше установленного размера (size). В этом случае ПА должен предоставить возможность прокрутки. По умолчанию значением этого атрибута является неограниченное количество.
checked [CI]
Если атрибут type имеет значение "radio" или "checkbox", данный булев атрибут определяет , что кнопка нажата. ПА должны игнорировать этот атрибут в ЭУ всех других типов.
src = uri[CT]
Если атрибут type имеет значение "image", этот атрибут устанавливает место нахождения изображения, используемого в качестве кнопки submit.
<!ELEMENT BUTTON - - (%flow;)* -(A|%formctrl;|FORM|FIELDSET) -- кнопка push --> <!ATTLIST BUTTON %attrs; -- %coreattrs, %i18n, %events -- nameCDATA #ПРЕДПОЛАГАЕТСЯ valueCDATA #ПРЕДПОЛАГАЕТСЯ -- отсылается на сервер при отправке формы -- type (button|submit|reset) submit -- используется как кнопка формы -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в этом контексте -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция при табуляции -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- >
Кнопки, созданные элементом BUTTON работают почти так же, как и кнопки, созданные элементом INPUT, но дают больше возможностей представления: элемент BUTTON может иметь содержимое. Например, элемент BUTTON, содержащий изображение, работает и может выглядеть как элемент INPUT, чей type установлен "image", но элемент BUTTON может иметь содержимое.
Визуальные ПА могу представлять кнопку BUTTON с рельефом и смещением вверх/вниз при нажатии, в то время как они могут рассматривать кнопки INPUT
только как "плоские" изображения.
Этот пример расширяет предыдущий, но создаёт кнопки submit и reset элементом BUTTON вместо INPUT. Кнопки содержат изображения так же, как элемент IMG.
17.6 Элементы SELECT, OPTGROUP
и OPTION
<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- селектор опций --> <!ATTLIST SELECT %attrs; -- %coreattrs, %i18n, %events -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- имя поля -- sizeNUMBER #ПРЕДПОЛАГАЕТСЯ -- видимые ряды -- multiple (multiple) #ПРЕДПОЛАГАЕТСЯ -- по умолчанию в одном выделении -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция при табуляции -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- onchange%Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента изменено -- >
Начальный тег: необходим, Конечный тег: необходим
Определения атрибутов элемента SELECT
name = cdata[CI] Устанавливает имя ЭУ. size = number[CN] Если элемент SELECT представлен в виде прокручиваемого списка, этот атрибут определяет количество видимых одновременно рядов в списке. Визуальные ПА не требуют представления элемента SELECT как прокручиваемого списка; они могут использовать для этого ниспадающее меню. multiple [CI] При установке это булев атрибут разрешает множественный выбор. Если не установлен, элемент SELECT допускает выбор только одной позиции.
Элемент SELECT создаёт меню. Каждая опция выбора представляется элементом OPTION. Элемент SELECT должен содержать не менее одного элемента OPTION.
Элемент OPTGROUP позволяет группировать опции логически. Это особенно удобно, когда пользователь должен выбрать из большого списка опций: группы связанных опций легче осмыслить и запомнить, чем один большой список опций. В HTML 4 все элементы OPTGROUP должны быть определены непосредственно в элементе SELECT (т.е. группы не могут быть вложенными).
name = cdata[CI] Устанавливает имя элемента. rows = number[CN] Количество видимых строк. Пользователь может вводить большее число опций, поэтому ПА должен предоставить возможность прокрутки содержимого элемента, если оно выходит за пределы зоны видимости. cols = number[CN] Определяет видимую ширину, измеряемую в символах средней ширины. Пользователь должен иметь возможность ввести более длинную строку, чем заданная, поэтому ПА должны предоставить средства для прокрутки содержимого ЭУ, если оно выходит за пределы области видимости. ПА могут переносить строки видимого текста для того, чтобы видимыми длинные строки без необходимости прокрутки.
Элемент TEXTAREA создаёт многострочный ЭУ для ввода текста. ПА должны использовать содержимое этого элемента как начальное значение элемента и отображать этот текст как начальный.
В этом примере создаётся ЭУ TEXTAREA, в котором 20 рядов и 80 столбцов, содержащий 2 строки начального текста. За ЭУ TEXTAREA идут кнопки submit и reset.
Установка атрибута readonly позволяет отображать в TEXTAREA
неизменяемый текст.
Это отличается от использования стандартного текста разметки в документе, поскольку значение TEXTAREA
отсылается вместе с формой.
Элементы SELECT, OPTGROUP и OPTION
<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- селектор опций --> <!ATTLIST SELECT %attrs; -- %coreattrs, %i18n, %events -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- имя поля -- sizeNUMBER #ПРЕДПОЛАГАЕТСЯ -- видимые ряды -- multiple (multiple) #ПРЕДПОЛАГАЕТСЯ -- по умолчанию в одном выделении -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция при табуляции -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- onchange%Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента изменено -- >
Начальный тег: необходим, Конечный тег: необходим
Определения атрибутов элемента SELECT
name = cdata[CI] Устанавливает имя ЭУ. size = number[CN] Если элемент SELECT представлен в виде прокручиваемого списка, этот атрибут определяет количество видимых одновременно рядов в списке. Визуальные ПА не требуют представления элемента SELECT как прокручиваемого списка; они могут использовать для этого ниспадающее меню. multiple [CI] При установке это булев атрибут разрешает множественный выбор. Если не установлен, элемент SELECT допускает выбор только одной позиции.
Элемент SELECT создаёт меню. Каждая опция выбора представляется элементом OPTION. Элемент SELECT должен содержать не менее одного элемента OPTION.
Элемент OPTGROUP позволяет группировать опции логически. Это особенно удобно, когда пользователь должен выбрать из большого списка опций: группы связанных опций легче осмыслить и запомнить, чем один большой список опций. В HTML 4 все элементы OPTGROUP должны быть определены непосредственно в элементе SELECT (т.е. группы не могут быть вложенными).
Элемент ISINDEX создаёт однострочный ЭУ для ввода текста, позволяющий вводить любое количество символов. ПА должны использовать значение атрибута prompt как название промпта.
<FORM action="..." method="post"> <P>Введите Ваш текст для поиска: <INPUT type="text"></P> </FORM>
Семантика ISINDEX. В настоящее время семантика элемента ISINDEX определяется хорошо, если только URI документа является HTTP URI. На практике строка ввода ограничивается набором символов Latin-1, так как отсутствует URI механизм определения другого набора символов.
Элемент LABEL <!ELEMENT
<!-- #PCDATA здесь решает проблему смешанного содержимого, по спецификации здесь допустимы только пробелы! --> <!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- группа ЭУ --> <!ATTLIST FIELDSET %attrs; -- %coreattrs, %i18n, %events -- >
<!ELEMENT LEGEND - - (%inline;)* -- "легенда" набора полей -->
<!ATTLIST LEGEND %attrs; -- %coreattrs, %i18n, %events -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- >
Начальный тег: необходим, Конечный тег: необходим
Определение атрибута элемента LEGEND
align = top|bottom|left|right [CI]Не рекомендуется. Этот атрибут определяет позицию "легенды" в том, что касается набора полей. Возможные значения:
top: "Легенда" находится сверху над набором полей. Это значение по умолчанию. bottom: "Легенда" находится под набором полей.. left: "Легенда" находится слева от набора полей. right: "Легенда" находится справа от набора полей.
Элемент FIELDSET позволяет тематически группировать ЭУ и лэйблы. Группирование ЭУ облегчает пользователю понимание их назначение, одновременно облегчая навигацию табуляцией для визуальных ПА и речевую навигацию для ПА, ориентированных на голосовое управление. Правильное использование этого элемента делает документы более доступными.
Элемент LEGEND даёт возможность установить заглавие к FIELDSET. "Легенда" улучшает доступность, если FIELDSET просматривается невизуально.
В этом примере мы создаём форму, которая может заполняться в мед. учреждении. Она состоит из трёх разделов: персональная информация, история болезни и текущее лечение. Каждый раздел содержит ЭУ для ввода соответствующей информации:
Заметьте, что в этом примере мы улучшили визуальное представление формы выравниванием элементов в каждом FIELDSET (с помощью таблиц стилей), изменив цвета и шрифты (с помощью таблиц стилей), добавив скрипты (т.е., чтобы открыть только "Текущее лечение", если пользователь укажет, что он/она лечится в данный момент) и т.д.
Лэйблы
Некоторые ЭУ автоматически содержат лэйблы, ассоциированные с ними (кнопки), а другие - нет (поля ввода текста, переключатели, radio-кнопки и меню).
Для ЭУ, имеющих встроенные лэйблы, ПА должны использовать значения атрибута value как строку лэйбла.
Элемент LABEL используется для определения лэйблов в ЭУ, не имеющих встроенных лэйблов.
Навигация с помощью табуляции
Определение
В тех случаях, когда ввод данных пользователем не нужен или не желателен, важно иметь возможность делать ЭУ недоступными или "только для чтения". Например, кнопка submit может быть недоступной, пока пользователь не введёт нужные данные. Также автор может включить отрывок текста "только для чтения", который должен быть отправлен вместе с формой. Следующий раздел описывает Недоступные и "Только для чтения" ЭУ.
Передача фокуса элементу
Элемент в документе HTML должен получить фокус
от пользователя, чтобы активизироваться для выполнения своих задач. Например, пользователь должен активизировать гиперссылку, определённую элементом A, чтобы перейти по ней. Так же необходимо передать фокус элементу TEXTAREA
для того, чтобы ввести текст.
Существует несколько способов передачи фокуса элементу:
Указать на элемент указательным устройством. Переходить от одного элемента к другому с помощью клавиатуры. Автор документа может установить порядок табуляции, определяющий последовательность получения элементами фокуса, если пользователь пользуется для навигации клавиатурой (см. навигация с помощью табуляции). После выбора элемент может быть активизирован какой-нибудь другой последовательностью клавиш. Выбрать элемент клавишами доступа (называемыми иногда "быстрые клавиши" или "горячие клавиши").
Скрипт, выполняемый на стороне клиента (клиентский), это программа, которая может быть загружена вместе с документом HTML ил встроена прямо в него. Программа выполняется на клиентской машине при загрузке документа или в другое время, когда, например, если активируется гиперссылка. Поддержка скриптов языком HTML не зависит от языка скриптов.
Скрипты, таким образом, позволяют авторам расширить возможности документов HTML, как активные, так и интерактивные. Например:
Сценарии могут выполняться по мере загрузки документа для динамической модификации содержимого этого документа.
Сценарии могут находиться в форме и обрабатывать ввод данных пользователем. Части формы могут динамически заполняться на основе значений других полей. Можно также проверять соответствие введённых данных значениям определённого диапазона, эти поля могут быть взаимосвязаны и т.д.
Скрипты могу запускаться событиями, происходящими в документе: загрузка документа, выгрузка, передача фокуса элементу, движение мыши и т.д.
Скрипты могут быть связаны с ЭУ (напр., кнопками) для создания графического интерфейса пользователя.
Есть два вида скриптов, которые могут быть включены в документ HTML:
выполняемые однократно при загрузке документа ПА. Скрипты внутри элемента SCRIPT
выполняются при загрузке документа. Для ПА, которые не могут или "не хотят" выполнять скрипты, авторы могут включить альтернативное содержание с помощью элемента
NOSCRIPT.
выполняемые каждый раз при возникновении определённого события. Эти скрипты могут быть подключены к нескольким элементам с помощью атрибутов внутренних событий.
Примечание. Эта спецификация содержит более детальную информацию о сценариях в разделе о макросах сценариев.
Элемент SCRIPT
18.2.1 Элемент SCRIPT
<!ELEMENT SCRIPT - - %Script; -- операторы скрипта --> <!ATTLIST SCRIPT charset%Charset; #ПРЕДПОЛАГАЕТСЯ -- набор символов связанного ресурса -- type%ContentType; #НЕОБХОДИМ -- тип содержимого языка скрипта -- src%URI; #ПРЕДПОЛАГАЕТСЯ -- URI внешнего скрипта -- defer (defer) #ПРЕДПОЛАГАЕТСЯ -- ПА могут отложить исполнение скрипта -- >
Начальный тег: необходим, Конечный тег: необходим
Определения атрибутов
src = uri[CT]
Определяет местонахождение внешнего скрипта.
type = content-type[CI]
Определяет язык скрипта содержимого элемента и переопределяет язык по умолчанию. Язык сценария определяется как тип содержимого (напр., "text/javascript"). Авторы обязаны указать значение этого атрибута. Для этого атрибута нет значения по умолчанию.
language = cdata[CI]Не рекомендуется. Определяет язык скрипта содержимого элемента. Его значением является идентификатор языка, но поскольку эти идентификаторы не стандартизованы, этот атрибут применять не рекомендуется, в отличие от атрибута type.
defer [CI]
Если установлен, этот булев атрибут подсказывает ПА, что скрипт не запущен для генерации какого-либо содержимого документа (напр., "document.write" в javascript), и, таким образом, ПА может продолжить разбор и вывод документа.
Элемент
SCRIPT помещает скрипт в документ. Этот элемент может появляться любое число раз в HEAD и BODY документа HTML.
Скрипт может быть определён внутри элемента SCRIPT или во внешнем файле. Если атрибут src
не установлен, ПА должен интерпретировать содержимое элемента как скрипт. Если src имеет значение URI, ПА должен игнорировать содержимое элемента и затребовать скрипт по URI.
Обратите внимание, что атрибут
charset относится к кодировке символов скрипта, обозначенного атрибутом src; он не касается содержимого элемента
SCRIPT.
Скрипты выполняются машиной скриптов, которая должна быть известна пользовательскому агенту.
Поскольку HTML не соотносится с определённым языком сценариев, авторы документа должны однозначно указать ПА язык каждого скрипта. Это можно сделать, объявив значение по умолчанию или локально.
Внутренние события
18.2.3 Внутренние события
Примечание. Обращаем внимание авторов документов HTML, что изменения вскоре могут появиться в определении внутренних событий (напр., как скрипты ограничены событиями). Исследования в этой сфере проводятся членами W3C Document Object Model Working Group (см. W3C сайт http://www.w3.org/).
Определения атрибутов
onload = script[CT]
Событие onload возникает, когда ПА закончил загрузку окна или всех фрэймов FRAMESET. Этот атрибут может быть использован элементами BODY и FRAMESET.
onunload = script[CT]
Событие onunload возникает, когда ПА удаляет документ из окна или фрэйма. Этот атрибут может быть использован элементами BODY и FRAMESET.
onclick = script[CT]
Событие onclick возникает, когда указательное устройство "щёлкает" на элементе. Этот атрибут может быть использован с большинством элементов.
ondblclick = script[CT]
Событие ondblclick возникает, когда указательное устройство дважды "щёлкает" на элементе. Этот атрибут может быть использован с большинством элементов.
onmousedown = script[CT]
Событие onmousedown возникает, когда кнопка указательного устройства "нажала" на элемент. Этот атрибут может быть использован с большинством элементов.
onmouseup = script[CT]
Событие onmouseup возникает, когда кнопка указательного устройства отпущена над элементом. Этот атрибут может быть использован с большинством элементов.
onmouseover = script[CT]
Событие onmouseover возникает, когда указательное устройство проходит над элементом. Этот атрибут может быть использован с большинством элементов.
onmousemove = script[CT]
Событие onmousemove возникает, когда указательное устройство перемещается в тот момент, когда находится над элементом. Этот атрибут может быть использован с большинством элементов.
onmouseout = script[CT]
Событие onmouseout возникает, когда указательное устройство убирается с элемента. Этот атрибут может быть использован с большинством элементов.
onfocus = script[CT]
Событие
onfocus возникает, когда элемент получает фокус от указательного устройства или при навигации табуляцией. Этот атрибут может использоваться в элементах: A, AREA, LABEL, INPUT,
SELECT, TEXTAREA и BUTTON.
onblur = script[CT]
Событие onblur возникает, когда элемент теряет фокус от указательного устройства или при навигации табуляцией. Может использоваться с теми же элементами, что и onfocus.
onkeypress = script[CT]
Событие onkeypress возникает, когда клавиша нажата и отпущена над элементом. Этот атрибут может быть использован с большинством элементов.
onkeydown = script[CT]
Событие onkeydown event возникает, когда клавиша нажата над элементом. Этот атрибут может быть использован с большинством элементов.
onkeyup = script[CT]
Событие onkeyup возникает, когда клавиша отпущена над элементом. Этот атрибут может быть использован с большинством элементов.
onsubmit = script[CT]
onsubmit возникает при отправке формы. Применяется только к элементу FORM.
onreset = script[CT]
onreset возникает при "очистке" формы. Применяется только к элементу FORM.
onselect = script[CT]
onselect возникает, когда пользователь выделяет какой-либо текст в текстовом поле. Этот атрибут может использоваться в элементах INPUT и TEXTAREA.
onchange = script[CT]
onchange возникает, когда ЭУ теряет фокус ввода и его значение изменилось с момента получения фокуса. Применяется в элементах: INPUT, SELECT и TEXTAREA.
Можно ассоциировать действие с определённым количеством событий, возникающих при взаимодействии пользователя с ПА. Каждое из "внутренних событий", перечисленных выше, имеет значение - скрипт. Скрипт выполняется , как только возникает событие в данном элементе. Синтаксис данных скрипта зависит от языка скрипта.
ЭУ, такие как INPUT, SELECT, BUTTON,
TEXTAREA и LABEL, все откликаются на определённые внутренние события. Если эти элементы находятся вне формы, они могут использоваться для расширения возможностей пользовательского интерфейса документа.
К примеру, авторы могут вставить в документ кнопку, которая не отправляет форму, а взаимодействует с сервером при активации.
Следующие примеры показывают некоторые ЭУ и действия пользовательского интерфейса на базе внутренних событий.
Здесь заполнение поля userName является необходимым. Если пользователь переносит фокус с этого поля, событие onblur вызовет функцию JavaScript для того, чтобы удостовериться, что userName содержит приемлемое значение:
Пример VBScript-обработчика события для текстового поля:
<INPUT name="edit1" size="50"> <SCRIPT type="text/vbscript"> Sub edit1_changed() If edit1.value = "abc" Then button1.enabled = True Else button1.enabled = False End If End Sub </SCRIPT>
<SCRIPT type="text/javascript"> function my_onload() { . . . }
var win = window.open("some/other/URI") if (win) win.onload = my_onload </SCRIPT>
В Tcl это выглядит похоже:
<SCRIPT type="text/tcl"> proc my_onload {} { . . . } set win [window open "some/other/URI"] if {$win != ""} { $win onload my_onload } </SCRIPT>
Учтите, что "document.write" или аналогичные операторы в обработчиках внутренних событий создают новый документ и записывают туда, а не модифицируют текущий документ.
Динамическое изменение документов
18.2.4 Динамическое изменение документов
Скрипты, выполняемые при загрузке документа, могут использоваться для динамической модификации документа. Возможность сделать это зависит от самого языка скриптов (напр., оператор "document.write" в объектной модели HTML не поддерживается некоторыми производителями).
Динамическая модификация документа может быть смоделирована так:
Все элементы SCRIPT выполняются в том порядке, как они загружаются.
Все конструкции скриптов в данном элементе SCRIPT, генерирующем SGML CDATA, выполняются. Их комбинированный сгенерированный текст вставляется в документ вместо элемента SCRIPT.
Сгенерированные CDATA выполняется заново.
Документы HTML должны соответствовать Определению Типа Данных (ОТД) HTML и до, и после обработки элемента SCRIPT.
Следующий пример иллюстрирует, как скрипты могут модифицировать документ динамически.
Скрипт:
18.2 Дизайн документов для ПА, поддерживающих скрипты
В следующем разделе обсуждаются вопросы, касающиеся ПА, поддерживающих скрипты.
Элемент NOSCRIPT
18.3.1 Элемент NOSCRIPT
<!ELEMENT NOSCRIPT - - (%block;)+ -- контейнер для альтернативного содержимого при отображении без использования скриптов --> <!ATTLIST NOSCRIPT %attrs; -- %coreattrs, %i18n, %events -- >
Начальный тег: необходим, Конечный тег: необходим
Элемент
NOSCRIPT даёт авторам возможность предоставить альтернативное содержимое, если скрипт не выполняется. Содержимое элемента NOSCRIPT должно отображаться ПА, "понимающим" скрипты, только в следующих случаях:
ПА сконфигурирован так, чтобы не выполнять скрипты;
ПА не поддерживает язык скриптов, ранее заявленный в элементе SCRIPT
в этом документе.
ПА, не поддерживающие скрипты на стороне клиента, обязаны выводить содержимое этого элемента.
В следующем примере ПА, исполняющий SCRIPT, будет включать некоторые динамически создаваемые данные в документ. Если ПА не поддерживает скрипты, пользователь сможет запросить данные по гиперссылке.
<SCRIPT type="text/tcl"> ...некоторый скрипт Tcl для вставки данных...
</SCRIPT> <NOSCRIPT> <P>Перейдите на <A href="http://someplace.com/data">data.</A> </NOSCRIPT>
Скрытие данных скрипта от ПА
18.3.2 Скрытие данных скрипта от ПА
Есть вероятность того, что ПА, не распознающие элемент SCRIPT, будут рассматривать его содержимое как текст. Некоторые машины скриптов, в том числе для языков JavaScript, VBScript и Tcl, разрешают включение операторов скрипта в комментарий SGML. ПА, не распознающие элемент SCRIPT, будут тогда игнорировать комментарий, в то время как более совершенные машины скриптов "поймут", что скрипт внутри комментария должен выполняться.
Другим решением проблемы является сохранение скриптов во внешнем документе и ссылка на него с помощью атрибута src.
Комментирование скриптов в JavaScript
Машина JavaScript допускает "<!--" как начало элемента SCRIPT и игнорирует оставшиеся символы до конца строки. JavaScript интерпретирует "//" как начало комментария до конца текущей строки. Это необходимо, чтобы спрятать "-->" от разборщика JavaScript.
<SCRIPT type="text/javascript"> <!-- прячет содержимое скрипта от старых браузеров function square(i) { document.write("Вызов передан функции", i "<BR>") return i * i } document.write("Функция возвратила ",square(5),".") // конец скрытия содержимого от старых браузеров --> </SCRIPT>
Комментирование скриптов в VBScript
В VBScript одиночная кавычка указывает, что оставшаяся часть строки должна рассматриваться как комментарий. Таким образом, она может использоваться для скрытия "-->" от VBScript, например:
<SCRIPT type="text/vbscript"> <!-- Sub foo() ... End Sub ' --> </SCRIPT>
Комментирование скриптов в TCL
В Tcl символ"#" обозначает комментарий до конца строки:
<SCRIPT type="text/tcl"> <!-- прячет содержимое скрипта от старых браузеров proc square {i} { document write "Вызов передан функции $i.<BR>" return [expr $i * $i] } document write "Функция вернула [square 5]." # конец скрытия содержимого от старых браузеров --> </SCRIPT>
Примечание. Некоторые браузеры закрывают комментарий при обнаружении первого символа ">", поэтому, для того, чтобы спрятать скрипт от таких браузеров, Вы можете поменять местами операнды в операторах сравнения и смещения (напр., использовать "y < x" вместо "x > y") или использовать зависимые от языка скриптов escape-последовательности для ">".
Дизайн документов для ПА, не поддерживающих сценарии
18.3 Дизайн документов для ПА, не поддерживающих сценарии
В данном разделе рассматривается, как авторы могут создать документ, работающий с ПА, не поддерживающими скрипты.
Многие авторы используют ограниченное число браузеров для проверки создаваемых документов, предполагая, что если документы нормально просматриваются в этих браузерах, то они корректны.
К сожалению, это не очень надёжный способ проверки документов, поскольку браузеры сделаны так, чтобы "справляться" с некорректными документами, отображая их по возможности корректно.
Более надёжно тестировать документы в разборщиках SGML, таких как nsgmls (см. [SP]), для проверки соответствия документов HTML определению типа данных (ОТД) HTML 4. Если объявление типа документа
в Вашем документе включает URI, и Ваш разборщик SGML поддерживает этот тип системного идентификатора, то разборщик будет получать ОТД напрямую. В ином случае, Вы можете использовать предлагаемый каталог образцов SGML. ОТД в нём сохранено в файле "strict.dtd", а мнемоники - в файлах "HTMLlat1.ent", "HTMLsymbol.ent" и "HTMLspecial.ent". В других случаях, удостоверьтесь, что Ваш разборщик SGML способен обрабатывать документы [ISO10646]. См. документацию на утилиты проверки.
Учтите, что такая проверка, широко рекомендуемая и используемая, не гарантирует полного соответствия документов спецификации HTML 4. Это потому, что разборщик SGML учитывает только данное ОТД SGML, которое не отражает все аспекты верного документа HTML 4. Конкретно, разборщик SGML проверяет, что синтаксис, структура, список элементов и их атрибуты верны. Но он, к примеру, не может отлавливать ошибки, такие как установки неверных значений атрибута width элемента IMG
(т.е. "foo" или "12.5"). Хотя эта спецификация ограничивает возможные значения этого атрибута как "целое число пикселов," ОТД определяет только, что значение является CDATA, что в настоящее время допускает любые значения. Только специализированная программа может охватить всю спецификацию HTML 4.
Несмотря на это, данный тип проверки настоятельно рекомендуется, поскольку выполняется обнаружение большого количества ошибок, делающих документ некорректным.
Каталог образцов SGML
19.2 Каталог образцов SGML
Этот каталог содержит директиву override для того, чтобы удостовериться, что программа, такая как nsgmls, использует public-идентификаторы, а не системные. Это значит, что пользователи не должны быть соединены с Web при затребовании системных идентификаторов на базе URI.
OVERRIDE YES
PUBLIC "-//W3C//DTD HTML 4.01//EN" strict.dtd PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" loose.dtd PUBLIC "-//W3C//DTD HTML 4.01 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 "ISO 8879:1986 (WWW)" -- SGML Declaration для HyperText Markup Language версии HTML 4
С поддержкой первых 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 HCRO "&#x" -- 38 это число амперсанда -- 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 >
Общее количество кодовых точек, допустимых
20. SGML - объявление HTML 4
Примечание. Общее количество кодовых точек, допустимых в наборе символов документа этого объявления SGML, включает 17 уровней [ISO10646] (17 раз по 65536). Это сделано потому, что это число ограничено размером 8 цифр в текущей версии стандарта SGML. Это не подразумевает каких-либо утверждений о возможности долгосрочных ограничений символов в UCS для первых 17 уровней. Очень вероятно, что ограничение до 8 цифр в SGML будет устранено и что эта спецификация будет обновлена.
Примечание. Строго говоря, ISO Registration Number 177 относится к первоначальному состоянию [ISO10646] в 1993 г.. Изменения после 1993 г. состояли в дополнении символов и однократной операции перемещения большого количества кодовых точек для Korean Hangul (Поправка 5). Пересмотры спецификации HTML 4 могут обновить ссылку на ISO 10646 для включения дополнительных изменений.
Определение Типа Документа (ОТД)
21. Определение Типа Документа (ОТД)
<!-- Это Strict/Строгое DTD/ОТД HTML 4.01, исключающее представление атрибутов и элементов, от которых W3C надеется отойти, чтобы поддержать развитие таблиц стилей. Авторы должны использовать Strict ОТД везде, где это возможно, но могут также использовать Transitional/Переходное ОТД для поддержки необходимых атрибутов представления и элементов.
HTML 4 содержит механизмы для таблиц стилей, сценариев, Внедрённых объектов, улучшенную поддержку для направления текста справа налево и смешанного и развитие форм для улучшения доступности для людей с физическими проблемами.
Проект: $ Дата: 1999/12/24 22:40:35 $
Авторы: Dave Raggett <dsr@w3.org> Arnaud Le Hors <lehors@w3.org> Ian Jacobs <ij@w3.org>
дополнительная информация о HTML 4.01 находится на:
http://www.w3.org/TR/1999/REC-html401-19991224
Спецификация HTML 4.01 включает дополнительные синтаксические ограничения, которые не могут быть отражены в ОТД. -->
<!-- Типичное использование:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> ... </head> <body> ... </body> </html>
URI, используемый как системный идентификатор с public-идентификатором, позволяет пользовательскому агенту (ПА) загружать ОТД и наборы мнемоник по мере необходимости.
FPI для переходного ОТД HTML 4.01:
"-//W3C//DTD HTML 4.01 Transitional//EN"
Это версия Переходного ОТД:
http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd
Если Вы создаёте документы с фрэймами, используйте следующий FPI:
"-//W3C//DTD HTML 4.01 Frameset//EN"
Эта версия ОТД набора фрэймов:
http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd
Используйте эти (относительные) URI для перехода к определениям типа документов (ОТД) и мнемоник в данной спецификации:
"strictdtd.txt" "loosedtd.txt" "frameset.txt" "HTMLlat1.txt" "HTMLsymbol.txt" "HTMLspecial.txt"
-->
<!--======================= Импортированные Имена ====================================-->
<!-- Переключатель особенностей для документов - наборов фрэймов --> <!ENTITY % HTML.Frameset "IGNORE">
<!ENTITY % ContentType "CDATA" -- тип носителя, как в [RFC2045]
-->
<!ENTITY % ContentTypes "CDATA" -- список разделённых запятыми типов носителя, как в [RFC2045]
-->
<!ENTITY % Charset "CDATA" -- кодировка символов, как в [RFC2045]
-->
<!ENTITY % Charsets "CDATA" -- список разделённых запятыми кодировок, как в [RFC2045]
-->
<!ENTITY % LanguageCode "NAME" -- код языка, как в [RFC1766]
-->
<!ENTITY % Character "CDATA" -- отдельный символ из [ISO10646] -->
<!ENTITY % LinkTypes "CDATA" -- список разделённых запятыми типов гиперссылок -->
<!ENTITY % MediaDesc "CDATA" -- одиночный медиа-дескриптор, или список разделённых запятыми медиа-дескрипторов -->
<!ENTITY % URI "CDATA" -- Uniform Resource Identifier - Универсальный Идентификатор Ресурса, см. [URI]
-->
<!ENTITY % Datetime "CDATA" -- дата и время. ISO формат данных -->
<!ENTITY % Script "CDATA" -- скрипт-выражение -->
<!ENTITY % StyleSheet "CDATA" -- данные таблиц стилей -->
<!ENTITY % Text "CDATA">
<!-- Ссылки-параметры -->
<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- повторяемые элементы заглавия -->
<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
<!ENTITY % list "UL | OL">
<!ENTITY % preformatted "PRE">
<!--================================== Символы-мнемоники =============================-->
<!ENTITY % HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin1//EN//HTML" "HTMLlat1.ent"> %HTMLlat1;
<!ENTITY % HTMLsymbol PUBLIC "-//W3C//ENTITIES Symbols//EN//HTML" "HTMLsymbol.ent"> %HTMLsymbol;
<!ENTITY % HTMLspecial PUBLIC "-//W3C//ENTITIES Special//EN//HTML" "HTMLspecial.ent"> %HTMLspecial;
<!--========================= Общие Атрибуты ===============================-->
<!ENTITY % coreattrs "idID #ПРЕДПОЛАГАЕТСЯ -- уникальный идентификатор документа -- classCDATA #ПРЕДПОЛАГАЕТСЯ -- разделённый пробелами список классов -- style%StyleSheet; #ПРЕДПОЛАГАЕТСЯ -- информация об ассоциированных стилях -- title%Text; #ПРЕДПОЛАГАЕТСЯ -- информативное название --" >
<!ENTITY % i18n "lang%LanguageCode; #ПРЕДПОЛАГАЕТСЯ -- код языка -- dir (ltr|rtl) #ПРЕДПОЛАГАЕТСЯ -- направление текста --" >
<!ENTITY % events "onclick%Script; #ПРЕДПОЛАГАЕТСЯ -- щёлкнула кнопка указателя (мыши) -- ondblclick%Script; #ПРЕДПОЛАГАЕТСЯ -- дважды щёлкнула кнопка указателя (мыши) -- onmousedown%Script; #ПРЕДПОЛАГАЕТСЯ -- кнопка указателя (мыши) нажата -- onmouseup%Script; #ПРЕДПОЛАГАЕТСЯ -- кнопка указателя (мыши) отпущена -- onmouseover%Script; #ПРЕДПОЛАГАЕТСЯ -- указатель проведён над -- onmousemove%Script; #ПРЕДПОЛАГАЕТСЯ -- указатель проведён внутри -- onmouseout%Script; #ПРЕДПОЛАГАЕТСЯ -- указатель убран за пределы -- onkeypress%Script; #ПРЕДПОЛАГАЕТСЯ -- клавиша была нажата и отпущена -- onkeydown%Script; #ПРЕДПОЛАГАЕТСЯ -- клавиша была нажата -- onkeyup%Script; #ПРЕДПОЛАГАЕТСЯ -- клавиша была отпущена --" >
<!-- Зарезервированный Переключатель Особенностей --> <!ENTITY % HTML.Reserved "IGNORE">
<!-- Следующие атрибуты зарезервированы для возможного использования в будущем --> <![ %HTML.Reserved; [ <!ENTITY % reserved "datasrc %URI; #ПРЕДПОЛАГАЕТСЯ -- одиночный или табличный Data Source -- datafld CDATA #ПРЕДПОЛАГАЕТСЯ -- свойство имени столбца -- dataformatas (plaintext|html) plaintext -- text или html --" > ]]>
<!ENTITY % reserved "">
<!ENTITY % attrs "%coreattrs;%i18n;%events;">
<!--============================ Разметка Текста ======================================-->
<!ENTITY % fontstyle "TT | I | B | BIG | SMALL">
<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >
<!ENTITY % special "A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">
<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
<!-- %inline; покрывает элементы inline или "text-level" --> <!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
<!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*> <!ATTLIST (%fontstyle;|%phrase;) %attrs; -- %coreattrs, %i18n, %events -- >
<!ELEMENT (SUB|SUP) - - (%inline;)* -- нижний индекс, верхний индекс --> <!ATTLIST (SUB|SUP) %attrs; -- %coreattrs, %i18n, %events -- >
<!ELEMENT SPAN - - (%inline;)* -- общий язык/контейнер стиля --> <!ATTLIST SPAN %attrs; -- %coreattrs, %i18n, %events -- %reserved; -- зарезервирован для использования в будущем -- >
<!ELEMENT BDO - - (%inline;)* -- I18N BiDi переопределение --> <!ATTLIST BDO %coreattrs; -- id, class, style, title -- lang%LanguageCode; #ПРЕДПОЛАГАЕТСЯ -- код языка -- dir (ltr|rtl) #НЕОБХОДИМ -- направление текста -- >
<!ELEMENT BR - O EMPTY -- принудительный обрыв строки --> <!ATTLIST BR %coreattrs; -- id, class, style, title -- >
<!--========================= Модели Содержимого HTML ===============================-->
<!-- В HTML есть две базовые модели содержимого:
%inline; элементы уровня символа и текстовые строки %block; блокоподобные элементы, например, параграфы и списки -->
<!ENTITY % block "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT | BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">
<!ENTITY % flow "%block; | %inline;">
<!--============================= Тело Документа ====================================-->
<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- тело документа --> <!ATTLIST BODY %attrs; -- %coreattrs, %i18n, %events -- onload%Script; #ПРЕДПОЛАГАЕТСЯ -- документ был загружен -- onunload%Script; #ПРЕДПОЛАГАЕТСЯ -- документ был удалён -- >
<!ELEMENT ADDRESS - - (%inline;)* -- информация об авторе --> <!ATTLIST ADDRESS %attrs; -- %coreattrs, %i18n, %events -- >
<!ELEMENT DIV - - (%flow;)* -- общий язык/контейнер стиля --> <!ATTLIST DIV %attrs; -- %coreattrs, %i18n, %events -- %reserved; -- зарезервирован для использования в будущем -- >
<!--============================ Элемент "Якорь" ================================-->
<!ENTITY % Shape "(rect|circle|poly|default)"> <!ENTITY % Coords "CDATA" -- разделённый запятыми список размеров -->
<!ELEMENT A - - (%inline;)* -(A) -- якорь --> <!ATTLIST A %attrs; -- %coreattrs, %i18n, %events -- charset%Charset; #ПРЕДПОЛАГАЕТСЯ -- символьная кодировка связанного ресурса -- type%ContentType; #ПРЕДПОЛАГАЕТСЯ -- информативный тип содержимого -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- именованный конец гиперссылки -- href%URI; #ПРЕДПОЛАГАЕТСЯ -- URI связанного ресурса -- hreflang%LanguageCode; #ПРЕДПОЛАГАЕТСЯ -- код языка -- rel%LinkTypes; #ПРЕДПОЛАГАЕТСЯ -- типы гиперссылок вперёд -- rev%LinkTypes; #ПРЕДПОЛАГАЕТСЯ -- типы гиперссылок назад -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ ключа доступа -- shape%Shape; rect -- для использования с клиентскими картами изображений -- coords%Coords; #ПРЕДПОЛАГАЕТСЯ -- для использования с клиентскими картами изображений -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- >
<!--======================= Клиентские карты изображений ============================-->
<!-- Могут быть помещены в тот же документ или сгруппированы в отдельном документе, хотя это ещё не поддерживается широко -->
<!ELEMENT MAP - - ((%block;) | AREA)+ -- клиентские карты изображений --> <!ATTLIST MAP %attrs; -- %coreattrs, %i18n, %events -- nameCDATA #НЕОБХОДИМ -- для ссылок usemap -- >
<!ELEMENT AREA - O EMPTY -- область клиентских карт изображений --> <!ATTLIST AREA %attrs; -- %coreattrs, %i18n, %events -- shape%Shape; rect -- интерпретация координат -- coords%Coords; #ПРЕДПОЛАГАЕТСЯ -- список разделённых запятыми размеров -- href%URI; #ПРЕДПОЛАГАЕТСЯ -- URI связанного ресурса -- nohref (nohref) #ПРЕДПОЛАГАЕТСЯ -- эта область не имеет action -- alt%Text; #НЕОБХОДИМ -- краткое описание -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- >
<!--============================ Элемент LINK ==================================-->
<!-- Значения отношений могут использоваться:
a) для специфических в данном документе панелей/меню при использовании с элементом LINK в "шапке" документа, например, start, contents, previous, next, index, end, help; b) для ссылки на отдельную таблицу стилей (rel=stylesheet); c) для ссылки на скрипт (rel=script); d) таблицами стилей для контроля за тем, как коллекции узлов html отображаются в документах при печати; e) для ссылки на версию для печати данного документа, например, postscript или pdf версия (rel=alternate media=print). -->
<!ELEMENT LINK - O EMPTY -- media-независимая ссылка --> <!ATTLIST LINK %attrs; -- %coreattrs, %i18n, %events -- charset%Charset; #ПРЕДПОЛАГАЕТСЯ -- набор символов связанного ресурса -- href%URI; #ПРЕДПОЛАГАЕТСЯ -- URI связанного ресурса -- hreflang%LanguageCode; #ПРЕДПОЛАГАЕТСЯ -- код языка -- type%ContentType; #ПРЕДПОЛАГАЕТСЯ -- информативный тип содержимого -- rel%LinkTypes; #ПРЕДПОЛАГАЕТСЯ -- типы ссылок вперёд -- rev%LinkTypes; #ПРЕДПОЛАГАЕТСЯ -- типы ссылок назад -- media%MediaDesc; #ПРЕДПОЛАГАЕТСЯ -- для представления на этом носителе -- >
<!--========================== Изображения ===========================================-->
<!-- размер, определённый в Строгом ОТД для cellpadding/cellspacing --> <!ENTITY % Length "CDATA" -- nn размер в пикселах, nn% - в процентах --> <!ENTITY % MultiLength "CDATA" -- пиксел, процент или относительный размер -->
<![ %HTML.Frameset; [ <!ENTITY % MultiLengths "CDATA" -- список разделённых запятыми MultiLength --> ]]>
<!ENTITY % Pixels "CDATA" -- целое число, представляющее размер в пикселах -->
<!-- Чтобы исключить возможные проблемы с только-текстовыми ПА, а также чтобы содержимое изображения было понятным и доступным для навигации пользователей с невизуальными ПА, Вам нужно предоставить описание в ALT и исключить серверные карты изображений --> <!ELEMENT IMG - O EMPTY -- внедрённое изображение --> <!ATTLIST IMG %attrs; -- %coreattrs, %i18n, %events -- src%URI; #НЕОБХОДИМ -- URI изображения для внедрения -- alt%Text; #НЕОБХОДИМ -- краткое описание -- longdesc%URI; #ПРЕДПОЛАГАЕТСЯ -- ссылка на полное описание (дополняет alt) -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- имя изображения (для сценариев) -- height%Length; #ПРЕДПОЛАГАЕТСЯ -- переопределить высоту -- width%Length; #ПРЕДПОЛАГАЕТСЯ -- переопределить ширину -- usemap%URI; #ПРЕДПОЛАГАЕТСЯ -- использовать клиентские карты изображений -- ismap (ismap) #ПРЕДПОЛАГАЕТСЯ -- использовать серверные карты изображений -- >
<!-- USEMAP указывает на элемент MAP, который может находиться в этом или внешнем документе, хотя последнее не поддерживается широко -->
<!--================================== OBJECT ======================================--> <!-- OBJECT используется для внедрения объектов как части страниц HTML. Элементы PARAM должны предшествовать другому содержимому. Модель смешанного содержимого SGML технически предотвращает формальное определение ... -->
<!ELEMENT OBJECT - - (PARAM | %flow;)* -- общий внедрённый объект --> <!ATTLIST OBJECT %attrs; -- %coreattrs, %i18n, %events -- declare (declare) #ПРЕДПОЛАГАЕТСЯ -- объявляет, но не устанавливает флаг -- classid%URI; #ПРЕДПОЛАГАЕТСЯ -- идентифицирует класс -- codebase%URI; #ПРЕДПОЛАГАЕТСЯ -- базовый URI для classid, data, archive-- data%URI; #ПРЕДПОЛАГАЕТСЯ -- ссылка на данные объекта -- type%ContentType; #ПРЕДПОЛАГАЕТСЯ -- тип содержимого данных -- codetype%ContentType; #ПРЕДПОЛАГАЕТСЯ -- тип содержимого для кода -- archiveCDATA #ПРЕДПОЛАГАЕТСЯ -- список разделённых пробелами URI -- standby%Text; #ПРЕДПОЛАГАЕТСЯ -- сообщение, которое показывается при загрузке -- height%Length; #ПРЕДПОЛАГАЕТСЯ -- переопределить высоту -- width%Length; #ПРЕДПОЛАГАЕТСЯ -- переопределить ширину -- usemap%URI; #ПРЕДПОЛАГАЕТСЯ -- использовать клиентские карты изображений -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- отправить как часть формы -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- %reserved; -- зарезервирован для возможного использования в будущем -- >
<!ELEMENT PARAM - O EMPTY -- именованное значение свойства --> <!ATTLIST PARAM idID #ПРЕДПОЛАГАЕТСЯ -- уникальный идентификатор документа -- nameCDATA #НЕОБХОДИМ -- имя свойства -- valueCDATA #ПРЕДПОЛАГАЕТСЯ -- значение свойства -- valuetype (DATA|REF|OBJECT) DATA -- как интерпретировать значение -- type%ContentType; #ПРЕДПОЛАГАЕТСЯ -- тип содержимого значения, если valuetype=ref -- >
<!--========================== Горизонтальная Линия ==================================-->
<!ELEMENT HR - O EMPTY -- горизонтальная линия --> <!ATTLIST HR %attrs; -- %coreattrs, %i18n, %events -- >
<!--=============================== Параграфы =======================================-->
<!ELEMENT P - O (%inline;)* -- параграф --> <!ATTLIST P %attrs; -- %coreattrs, %i18n, %events -- >
<!--=================== Заголовки (в теле документа) =====================================-->
<!-- Есть шесть уровней заголовков: от H1 (самый верхний - самый значительный) до H6 (самый нижний). -->
<!ELEMENT (%heading;) - - (%inline;)* -- заголовок --> <!ATTLIST (%heading;) %attrs; -- %coreattrs, %i18n, %events -- >
<!--======================== Форматированный Текст ================================-->
<!-- исключает разметку для изображений и изменение размера шрифта --> <!ENTITY % pre.exclusion "IMG|OBJECT|BIG|SMALL|SUB|SUP">
<!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- форматированный текст --> <!ATTLIST PRE %attrs; -- %coreattrs, %i18n, %events -- >
<!--============================= Инлайн-кавычки ==================================-->
<!ELEMENT Q - - (%inline;)* -- сокращённое закавычивание инлайн --> <!ATTLIST Q %attrs; -- %coreattrs, %i18n, %events -- cite%URI; #ПРЕДПОЛАГАЕТСЯ -- URI документа-источника или сообщения -- >
<!--=========================== Кавычки блока ================================-->
<!ELEMENT BLOCKQUOTE - - (%block;|SCRIPT)+ -- полные кавычки --> <!ATTLIST BLOCKQUOTE %attrs; -- %coreattrs, %i18n, %events -- cite%URI; #ПРЕДПОЛАГАЕТСЯ -- URI документа-источника или сообщения -- >
<!--========================= Вставленный/Удалённый Текст ============================-->
<!-- INS/DEL обрабатываются при включении в текст BODY --> <!ELEMENT (INS|DEL) - - (%flow;)* -- вставленный текст, удалённый текст --> <!ATTLIST (INS|DEL) %attrs; -- %coreattrs, %i18n, %events -- cite%URI; #ПРЕДПОЛАГАЕТСЯ -- цитата или ссылка на другой ресурс -- datetime%Datetime; #ПРЕДПОЛАГАЕТСЯ -- дата и время изменения -- >
<!--============================= Списки ============================================-->
<!-- список определений: DT - термин, DD - определение термина -->
<!ELEMENT DL - - (DT|DD)+ -- список definition/определений --> <!ATTLIST DL %attrs; -- %coreattrs, %i18n, %events -- >
<!ELEMENT DT - O (%inline;)* -- определяемый термин --> <!ELEMENT DD - O (%flow;)* -- определение этого термина --> <!ATTLIST (DT|DD) %attrs; -- %coreattrs, %i18n, %events -- >
<!ELEMENT OL - - (LI)+ -- упорядоченный список --> <!ATTLIST OL %attrs; -- %coreattrs, %i18n, %events -- >
<!-- Неупорядоченный Список (UL), стиль маркировки --> <!ELEMENT UL - - (LI)+ -- неупорядоченный список --> <!ATTLIST UL %attrs; -- %coreattrs, %i18n, %events -- >
<!ELEMENT LI - O (%flow;)* -- элемент списка --> <!ATTLIST LI %attrs; -- %coreattrs, %i18n, %events -- >
<!--============================= Формы ===============================================-->
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- интерактивная форма --> <!ATTLIST FORM %attrs; -- %coreattrs, %i18n, %events -- action%URI; #НЕОБХОДИМ -- обработчик формы (на сервере) -- method (GET|POST) GET -- метод HTTP, используемый для отправки формы -- enctype%ContentType; "application/x-www-form-urlencoded" accept%ContentTypes; #ПРЕДПОЛАГАЕТСЯ -- список типов MIME для подгрузки файлов -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- имя формы (для сценариев) -- onsubmit%Script; #ПРЕДПОЛАГАЕТСЯ -- форма была отправлена -- onreset%Script; #ПРЕДПОЛАГАЕТСЯ -- форма была очищена -- accept-charset%Charsets; #ПРЕДПОЛАГАЕТСЯ -- список поддерживаемы наборов символов -- >
<!-- Лэйбл не может содержать более ОДНОГО поля --> <!ELEMENT LABEL - - (%inline;)* -(LABEL) -- текст лэйбла поля формы --> <!ATTLIST LABEL %attrs; -- %coreattrs, %i18n, %events -- forIDREF #ПРЕДПОЛАГАЕТСЯ -- в паре со значением ID поля -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- >
<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET | FILE | HIDDEN | IMAGE | BUTTON)" >
<!-- имя атрибута требуется для всех, кроме submit и reset --> <!ELEMENT INPUT - O EMPTY -- элемент управления формы --> <!ATTLIST INPUT %attrs; -- %coreattrs, %i18n, %events -- type%InputType; TEXT -- тип элемента управления (ЭУ) -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- отправить как часть формы -- valueCDATA #ПРЕДПОЛАГАЕТСЯ -- для radio-кнопок и переключателей -- checked (checked) #ПРЕДПОЛАГАЕТСЯ -- для radio-кнопок и переключателей -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- readonly (readonly) #ПРЕДПОЛАГАЕТСЯ -- для text и passwd -- sizeCDATA #ПРЕДПОЛАГАЕТСЯ -- специфический для каждого типа поля -- maxlengthNUMBER #ПРЕДПОЛАГАЕТСЯ -- максимум символов для ввода (в текстовых полях) -- src%URI; #ПРЕДПОЛАГАЕТСЯ -- для полей с изображениями -- altCDATA #ПРЕДПОЛАГАЕТСЯ -- краткое описание -- usemap%URI; #ПРЕДПОЛАГАЕТСЯ -- использовать клиентские карты изображений -- ismap (ismap) #ПРЕДПОЛАГАЕТСЯ -- использовать серверные карты изображений -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- onselect%Script; #ПРЕДПОЛАГАЕТСЯ -- некоторый текст был выделен -- onchange%Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента изменено -- accept%ContentTypes; #ПРЕДПОЛАГАЕТСЯ -- список типов MIME для подгрузки файлов -- %reserved; -- зарезервирован для возможного использования в будущем -- >
<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- переключатель опций --> <!ATTLIST SELECT %attrs; -- %coreattrs, %i18n, %events -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- имя поля -- sizeNUMBER #ПРЕДПОЛАГАЕТСЯ -- количество видимых рядов -- multiple (multiple) #ПРЕДПОЛАГАЕТСЯ -- по умолчанию выбран один (элемент) -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- onchange%Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента изменено -- %reserved; -- зарезервирован для возможного использования в будущем -- >
<!ELEMENT OPTGROUP - - (OPTION)+ -- группа опций --> <!ATTLIST OPTGROUP %attrs; -- %coreattrs, %i18n, %events -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- label%Text; #НЕОБХОДИМ -- для использования в иерархических меню -- >
<!ELEMENT OPTION - O (#PCDATA) -- переключаемый выбор --> <!ATTLIST OPTION %attrs; -- %coreattrs, %i18n, %events -- selected (selected) #ПРЕДПОЛАГАЕТСЯ disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- label%Text; #ПРЕДПОЛАГАЕТСЯ -- для использования в иерархических меню -- valueCDATA #ПРЕДПОЛАГАЕТСЯ -- по умолчанию для содержимого элемента -- >
<!ELEMENT TEXTAREA - - (#PCDATA) -- многострочное поле ввода текста --> <!ATTLIST TEXTAREA %attrs; -- %coreattrs, %i18n, %events -- nameCDATA #ПРЕДПОЛАГАЕТСЯ rowsNUMBER #ПРЕДПОЛАГАЕТСЯ colsNUMBER #ПРЕДПОЛАГАЕТСЯ disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- readonly (readonly) #ПРЕДПОЛАГАЕТСЯ tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- onselect%Script; #ПРЕДПОЛАГАЕТСЯ -- некоторый текст был выделен -- onchange%Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента было изменено -- %reserved; -- зарезервирован для возможного использования в будущем -- >
<!-- #PCDATA предназначен для разрешения проблем смешанного содержимого, по спецификации здесь допустимы только пробелы! --> <!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- группа ЭУ формы --> <!ATTLIST FIELDSET %attrs; -- %coreattrs, %i18n, %events -- >
<!ELEMENT LEGEND - - (%inline;)* -- "легенда" набора полей -->
<!ATTLIST LEGEND %attrs; -- %coreattrs, %i18n, %events -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- >
<!ELEMENT BUTTON - - (%flow;)* -(A|%formctrl;|FORM|FIELDSET) -- кнопка push --> <!ATTLIST BUTTON %attrs; -- %coreattrs, %i18n, %events -- nameCDATA #ПРЕДПОЛАГАЕТСЯ valueCDATA #ПРЕДПОЛАГАЕТСЯ -- отсылается на сервер при отправка формы -- type (button|submit|reset) submit -- используется как кнопка формы -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- %reserved; -- зарезервирован для возможного использования в будущем -- >
<!--==================================== Таблицы =======================================-->
<!-- IETF стандарт таблиц HTML, см. [RFC1942] -->
<!-- Атрибут BORDER устанавливает толщину рамки вокруг таблицы. По умолчанию измеряется в пикселах экрана.
Атрибут FRAME устанавливает, какие части рамки вокруг таблицы должны отображаться. Значения - не такие, как в CALS, для исключения конфликтов имён с атрибутом VALIGN.
Значение "border" включено для обеспечения обратной совместимости с <TABLE BORDER>, который даёт(?yields) frame=border и border=implied. Для <TABLE BORDER=1> Вы получаете border=1 и frame=implied. В этом случае, можно рассматривать это как frame=border для обеспечения обратной совместимости с существующими браузерами. --> <!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
<!-- Атрибут RULES определяет, какие линии рисовать между ячейками:
Если RULES отсутствует, тогда принимается: "none", если BORDER отсутствует, или BORDER=0, если "all". -->
<!ENTITY % TRules "(none | groups | rows | cols | all)">
<!-- размещение таблицы по горизонтали относительно документа --> <!ENTITY % TAlign "(left|center|right)">
<!-- атрибуты горизонтального выравнивания для содержимого ячеек --> <!ENTITY % cellhalign "align (left|center|right|justify|char) #ПРЕДПОЛАГАЕТСЯ char%Character; #ПРЕДПОЛАГАЕТСЯ -- символ выравнивания, напр., char=':' -- charoff%Length; #ПРЕДПОЛАГАЕТСЯ -- offset/сдвиг? символа выравнивания --" >
<!-- атрибуты вертикального выравнивания для содержимого ячеек--> <!ENTITY % cellvalign "valign (top|middle|bottom|baseline) #ПРЕДПОЛАГАЕТСЯ" >
<!ELEMENT TABLE - - (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)> <!ELEMENT CAPTION - - (%inline;)* -- заглавие таблицы --> <!ELEMENT THEAD - O (TR)+ -- "шапка" таблицы --> <!ELEMENT TFOOT - O (TR)+ -- футер --> <!ELEMENT TBODY O O (TR)+ -- тело таблицы --> <!ELEMENT COLGROUP - O (COL)* -- группа столбцов --> <!ELEMENT COL - O EMPTY -- столбец --> <!ELEMENT TR - O (TH|TD)+ -- ряд --> <!ELEMENT (TH|TD) - O (%flow;)* -- заголовочная ячейка|ячейка данных -->
<!ATTLIST TABLE -- элемент таблицы -- %attrs; -- %coreattrs, %i18n, %events -- summary%Text; #ПРЕДПОЛАГАЕТСЯ -- цель/структура речевого вывода -- width%Length; #ПРЕДПОЛАГАЕТСЯ -- ширина таблицы -- border%Pixels; #ПРЕДПОЛАГАЕТСЯ -- ширина рамки вокруг таблицы -- frame%TFrame; #ПРЕДПОЛАГАЕТСЯ -- какие части фрэйма отображать -- rules%TRules; #ПРЕДПОЛАГАЕТСЯ -- линии между рядами и столбцами -- cellspacing%Length; #ПРЕДПОЛАГАЕТСЯ -- свободное пространство между ячейками -- cellpadding%Length; #ПРЕДПОЛАГАЕТСЯ -- свободное пространство между границей ячейки и её содержимым -- %reserved; -- зарезервирован для возможного использования в будущем -- datapagesize CDATA #ПРЕДПОЛАГАЕТСЯ -- зарезервирован для возм. использования в будущем -- >
<!ATTLIST CAPTION %attrs; -- %coreattrs, %i18n, %events -- >
<!-- COLGROUP группирует набор элементов COL. Позволяет группировать несколько семантически связанных столбцов. --> <!ATTLIST COLGROUP %attrs; -- %coreattrs, %i18n, %events -- spanNUMBER 1 -- значение по умолчанию количества столбцов в группе -- width%MultiLength; #ПРЕДПОЛАГАЕТСЯ -- значение по умолчанию ширины для включённых COL -- %cellhalign; -- горизонтальное выравнивание в ячейках -- %cellvalign; -- вертикальное выравнивание в ячейках -- >
<!-- Элементы COL определяют выравнивание для ячеек в одном или более столбцов.
Атрибут WIDTH определяет ширину столбцов, например,
width=64 ширина в пикселах экрана width=0.5* относительная ширина 0.5
Атрибут SPAN вызывает применение атрибутов одного элемента COL к более, чем одному столбцу. --> <!ATTLIST COL -- группы столбцов и свойства -- %attrs; -- %coreattrs, %i18n, %events -- spanNUMBER 1 -- атрибуты COL воздействуют на N столбцов -- width%MultiLength; #ПРЕДПОЛАГАЕТСЯ -- спецификация ширины столбца -- %cellhalign; -- горизонтальное выравнивание в ячейках -- %cellvalign; -- вертикальное выравнивание в ячейках -- >
<!-- Используйте THEAD для дублирования заголовков при разделении таблицы по границам страницы или для статических заголовков, если выделения TBODY просматриваются в прокручиваемой панели.
Используйте TFOOT для дублирования футеров при разделении таблицы по границам страницы или для статических футеров, если выделения TBODY просматриваются в прокручиваемой панели.
Используйте множественные выделения TBODY, если нужны разделительные линии между группами рядов таблицы. --> <!ATTLIST (THEAD|TBODY|TFOOT) -- раздел таблицы -- %attrs; -- %coreattrs, %i18n, %events -- %cellhalign; -- горизонтальное выравнивание в ячейках -- %cellvalign; -- вертикальное выравнивание в ячейках -- >
<!ATTLIST TR -- ряд таблицы -- %attrs; -- %coreattrs, %i18n, %events -- %cellhalign; -- горизонтальное выравнивание в ячейках -- %cellvalign; -- вертикальное выравнивание в ячейках -- >
<!-- Область видимости/Scope проще, чем атрибут "шапки" для обычных таблиц --> <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
<!-- TH - для заголовков, TD - для данных, но для ячеек, действующих двояко, используется TD --> <!ATTLIST (TH|TD) -- ячейка заголовочная|ячейка данных -- %attrs; -- %coreattrs, %i18n, %events -- abbr%Text; #ПРЕДПОЛАГАЕТСЯ -- сокращение для заголовочной ячейки -- axisCDATA #ПРЕДПОЛАГАЕТСЯ -- список разделённых запятыми относительных заголовков -- headersIDREFS #ПРЕДПОЛАГАЕТСЯ -- список id заголовочных ячеек -- scope%Scope; #ПРЕДПОЛАГАЕТСЯ -- область видимости заголовочных ячеек -- rowspanNUMBER 1 -- количество рядов, занимаемых ячейкой -- colspanNUMBER 1 -- количество столбцов, занимаемых ячейкой -- %cellhalign; -- горизонтальное выравнивание в ячейках -- %cellvalign; -- вертикальное выравнивание в ячейках -- >
<!--========================== "Шапка" Документа =======================================-->
<!-- %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; #ПРЕДПОЛАГАЕТСЯ -- именованный словарь метаинформации -- >
<!-- Элемент TITLE не является частью текста документа. Он должен отображаться, например, как заголовок страницы или заголовок окна. В документе может быть только один title. --> <!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- название документа --> <!ATTLIST TITLE %i18n>
<!ELEMENT BASE - O EMPTY -- базовый URI документа --> <!ATTLIST BASE href%URI; #НЕОБХОДИМ -- URI, действующий как базовый URI -- >
<!ELEMENT META - O EMPTY -- родовая метаинформация --> <!ATTLIST META %i18n; -- lang, dir для использования с содержимым -- http-equivNAME #ПРЕДПОЛАГАЕТСЯ -- имя "шапки" для ответа HTTP -- nameNAME #ПРЕДПОЛАГАЕТСЯ -- метаинформационное имя -- contentCDATA #НЕОБХОДИМ -- ассоциированная информация -- schemeCDATA #ПРЕДПОЛАГАЕТСЯ -- выбор формы содержимого -- >
<!ELEMENT STYLE - - %StyleSheet -- информация о стиле --> <!ATTLIST STYLE %i18n; -- lang, dir для использования с title -- type%ContentType; #НЕОБХОДИМ -- тип содержимого языка стилей -- media%MediaDesc; #ПРЕДПОЛАГАЕТСЯ -- разработан для использования с данным носителем -- title%Text; #ПРЕДПОЛАГАЕТСЯ -- информативное название -- >
<!ELEMENT SCRIPT - - %Script; -- операторы сценария/скрипта --> <!ATTLIST SCRIPT charset%Charset; #ПРЕДПОЛАГАЕТСЯ -- набор символов связанного ресурса -- type%ContentType; #НЕОБХОДИМ -- тип содержимого языка скриптов -- src%URI; #ПРЕДПОЛАГАЕТСЯ -- URI внешнего скрипта -- defer (defer) #ПРЕДПОЛАГАЕТСЯ -- ПА может отсрочить выполнение скрипта -- event CDATA #ПРЕДПОЛАГАЕТСЯ -- зарезервирован для возможного использования в будущем -- for%URI; #ПРЕДПОЛАГАЕТСЯ -- зарезервирован для возможного использования в будущем -- >
<!ELEMENT NOSCRIPT - - (%block;)+ -- контейнер альтернативного содержимого для представления без скриптов --> <!ATTLIST NOSCRIPT %attrs; -- %coreattrs, %i18n, %events -- >
<!--============================ Структура Документа ==================================--> <!ENTITY % html.content "HEAD, BODY">
<!ELEMENT HTML O O (%html.content;) -- корневой элемент документа --> <!ATTLIST HTML %i18n; -- lang, dir -- >
Переходное Определение Типа Документа (ОТД)
22. Переходное Определение Типа Документа (ОТД)
<!--
Это HTML 4.01 Переходное/Transitional ОТД, которое включает атрибуты представления и элементы, которые, как ожидает W3C, будут исключены с целью поддержать развитие таблиц стилей. Авторы должны использовать Строгое/Strict ОТД везде, где это возможно, но могут использовать Transitional ОТД для поддержки атрибутов представления и элементов, если это необходимо.
HTML 4 включает механизмы поддержки таблиц стилей, сценариев, внедрённых объектов, улучшенную поддержку правого, левого и смешанного направления текста и новшества в формах, позволяющие улучшить доступность для людей с физическими проблемами.
Проект: $ Дата: 1999/12/24 22:40:35 $
Авторы: Dave Raggett <dsr@w3.org> Arnaud Le Hors <lehors@w3.org> Ian Jacobs <ij@w3.org>
Информация о HTML 4.01 находится на:
http://www.w3.org/TR/1999/REC-html401-19991224
Спецификация HTML 4.01 включает дополнительные синтаксические ограничения, которые не могут быть выражены в ОТД.
--> <!ENTITY % HTML.Version "-//W3C//DTD HTML 4.01 Transitional//EN" -- типичное использование:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> ... </head> <body> ... </body> </html>
URI, используемый как системный идентификатор с public-идентификатором, позволяет ПА загрузить ОТД и наборы объектов, как это необходимо.
FPI для Strict HTML 4.01 DTD:
"-//W3C//DTD HTML 4.01//EN"
Эта версия strict DTD:
http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd
Авторы должны использовать Строгое ОТД, если только они не хотят представить ЭУ пользовательским агентам, которые не (адекватно) поддерживают таблицы стилей.
Если Вы создаёте документ с использованием фрэймов, записывайте FPI:
"-//W3C//DTD HTML 4.01 Frameset//EN".
Эта версия ОТД набора фрэймов/frameset:
http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd
Используйте следующие (относительные) URI для ОТД и определения объектов этой спецификации:
"strict.dtd" "loose.dtd" "frameset.dtd" "HTMLlat1.ent" "HTMLsymbol.ent" "HTMLspecial.ent"
-->
<!--======================= Импортированные Имена ====================================-->
<!-- Переключатель характеристик для набора фрэймов --> <!ENTITY % HTML.Frameset "IGNORE">
<!ENTITY % ContentType "CDATA" -- тип носителя, как в [RFC2045]
-->
<!ENTITY % ContentTypes "CDATA" -- список разделённых запятыми типов носителя, как в [RFC2045]
-->
<!ENTITY % Charset "CDATA" -- набор символов, как в [RFC2045]
-->
<!ENTITY % Charsets "CDATA" -- список разделённых пробелами наборов символов, как в [RFC2045]
-->
<!ENTITY % LanguageCode "NAME" -- код языка, как в [RFC1766]
-->
<!ENTITY % Character "CDATA" -- одиночный символ из [ISO10646] -->
<!ENTITY % LinkTypes "CDATA" -- список разделённых пробелами типов ссылок -->
<!ENTITY % MediaDesc "CDATA" -- одиночный медиа-дескриптор, или список разделённых запятыми -->
<!ENTITY % URI "CDATA" -- Uniform Resource Identifier, см. [URI]
-->
<!ENTITY % Datetime "CDATA" -- дата и время. ISO формат даты -->
<!ENTITY % Script "CDATA" -- выражение (скрипта) -->
<!ENTITY % StyleSheet "CDATA" -- данные таблицы стилей -->
<!ENTITY % FrameTarget "CDATA" -- целевой фрэйм -->
<!ENTITY % Text "CDATA">
<!-- Объекты-параметры -->
<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- повторяемые элементы "шапки" -->
<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
<!ENTITY % list "UL | OL | DIR | MENU">
<!ENTITY % preformatted "PRE">
<!ENTITY % Color "CDATA" -- цвет sRGB: #RRGGBB это 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 -->
<!ENTITY % bodycolors " bgcolor %Color; #ПРЕДПОЛАГАЕТСЯ -- цвет фона документа -- text %Color; #ПРЕДПОЛАГАЕТСЯ -- цвет текста -- link %Color; #ПРЕДПОЛАГАЕТСЯ -- цвет гиперссылки -- vlink %Color; #ПРЕДПОЛАГАЕТСЯ -- цвет помещённой гиперссылки -- alink %Color; #ПРЕДПОЛАГАЕТСЯ -- цвет выбранной гиперссылки -- ">
<!--========================= Символьные Мнемоники =========================-->
<!ENTITY % HTMLlat1 PUBLIC "-//W3C//ENTITIES Latin1//EN//HTML" "HTMLlat1.ent"> %HTMLlat1;
<!ENTITY % HTMLsymbol PUBLIC "-//W3C//ENTITIES Symbols//EN//HTML" "HTMLsymbol.ent"> %HTMLsymbol;
<!ENTITY % HTMLspecial PUBLIC "-//W3C//ENTITIES Special//EN//HTML" "HTMLspecial.ent"> %HTMLspecial;
<!--========================= Родовые Атрибуты ===============================-->
<!ENTITY % coreattrs "idID #ПРЕДПОЛАГАЕТСЯ -- уникальный идентификатор документа -- classCDATA #ПРЕДПОЛАГАЕТСЯ -- список разделённых пробелами классов -- style%StyleSheet; #IПРЕДПОЛАГАЕТСЯ -- ассоциированная информация стиля -- title%Text; #ПРЕДПОЛАГАЕТСЯ -- информативный заголовок --" >
<!ENTITY % i18n "lang%LanguageCode; #ПРЕДПОЛАГАЕТСЯ -- код языка -- dir (ltr|rtl) #ПРЕДПОЛАГАЕТСЯ -- направление текста --" >
<!ENTITY % events "onclick%Script; #ПРЕДПОЛАГАЕТСЯ -- щёлкнула кнопка указателя мыши -- ondblclick%Script; #ПРЕДПОЛАГАЕТСЯ -- дважды щёлкнула кнопка указателя мыши -- onmousedown%Script; #ПРЕДПОЛАГАЕТСЯ -- кнопка указателя мыши была нажата -- onmouseup%Script; #ПРЕДПОЛАГАЕТСЯ -- кнопка указателя мыши была отпущена -- onmouseover%Script; #ПРЕДПОЛАГАЕТСЯ -- указатель мыши был проведён над -- onmousemove%Script; #ПРЕДПОЛАГАЕТСЯ -- указатель мыши был проведён внутри -- onmouseout%Script; #ПРЕДПОЛАГАЕТСЯ -- указатель мыши был убран (с элемента) -- onkeypress%Script; #ПРЕДПОЛАГАЕТСЯ -- клавиша была нажата и отпущена -- onkeydown%Script; #ПРЕДПОЛАГАЕТСЯ -- клавиша была нажата -- onkeyup%Script; #ПРЕДПОЛАГАЕТСЯ -- клавиша была отпущена --" >
<!-- Зарезервированный Переключатель Характеристик --> <!ENTITY % HTML.Reserved "IGNORE">
<!-- Эти атрибуты зарезервированы для возможного использования в будущем --> <![ %HTML.Reserved; [ <!ENTITY % reserved "datasrc %URI; #ПРЕДПОЛАГАЕТСЯ -- одиночный или табличный Data Source -- datafld CDATA #ПРЕДПОЛАГАЕТСЯ -- свойство или имя столбца -- dataformatas (plaintext|html) plaintext -- text или html --" > ]]>
<!ENTITY % reserved "">
<!ENTITY % attrs "%coreattrs;%i18n;%events;">
<!ENTITY % align "align (left|center|right|justify) #IMPLIED" -- по умолчанию: left для ltr параграфов, right для rtl -- >
<!--======================= Разметка Текста ======================================-->
<!ENTITY % fontstyle "TT | I | B | U | S | STRIKE | BIG | SMALL">
<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >
<!ENTITY % special "A | IMG | APPLET | OBJECT | FONT | BASEFONT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO | IFRAME">
<!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">
<!-- %inline; покрывает инлайн- или "text-level" элементы --> <!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">
<!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*> <!ATTLIST (%fontstyle;|%phrase;) %attrs; -- %coreattrs, %i18n, %events -- >
<!ELEMENT (SUB|SUP) - - (%inline;)* -- подиндекс|надиндекс --> <!ATTLIST (SUB|SUP) %attrs; -- %coreattrs, %i18n, %events -- >
<!ELEMENT SPAN - - (%inline;)* -- общий язык/контейнер стиля --> <!ATTLIST SPAN %attrs; -- %coreattrs, %i18n, %events -- %reserved; -- зарезервирован для возможного использования в будущем -- >
<!ELEMENT BDO - - (%inline;)* -- I18N BiDi over-ride --> <!ATTLIST BDO %coreattrs; -- id, class, style, title -- lang%LanguageCode; #ПРЕДПОЛАГАЕТСЯ -- код языка -- dir (ltr|rtl) #REQUIRED -- направление текста -- >
<!ELEMENT BASEFONT - O EMPTY -- базовый размер шрифта --> <!ATTLIST BASEFONT idID #ПРЕДПОЛАГАЕТСЯ -- уникальный идентификатор документа -- sizeCDATA #НЕОБХОДИМ -- базовый размер шрифта для элемента FONT -- color%Color; #ПРЕДПОЛАГАЕТСЯ -- цвет текста -- faceCDATA #ПРЕДПОЛАГАЕТСЯ -- список разделённых запятыми названий шрифтов -- >
<!ELEMENT FONT - - (%inline;)* -- локальное изменение шрифта --> <!ATTLIST FONT %coreattrs; -- id, class, style, title -- %i18n; -- lang, dir -- sizeCDATA #ПРЕДПОЛАГАЕТСЯ -- [+|-]nn, например, size="+1", size="4" -- color%Color; #ПРЕДПОЛАГАЕТСЯ -- цвет текста -- faceCDATA #ПРЕДПОЛАГАЕТСЯ -- список разделённых запятыми названий шрифтов -- >
<!ELEMENT BR - O EMPTY -- принудительный обрыв строки --> <!ATTLIST BR %coreattrs; -- id, class, style, title -- clear (left|all|right|none) none -- управление обтеканием текста -- >
<!--======================= Модели Содержимого HTML ===============================-->
<!-- HTML имеет две базовые модели содержимого:
%inline; элементы уровня символа и строки текста %block; элементы уровня блока, например параграфы и списки -->
<!ENTITY % block "P | %heading; | %list; | %preformatted; | DL | DIV | CENTER | NOSCRIPT | NOFRAMES | BLOCKQUOTE | FORM | ISINDEX | HR | TABLE | FIELDSET | ADDRESS">
<!ENTITY % flow "%block; | %inline;">
<!--========================== Тело Документа ====================================-->
<!ELEMENT BODY O O (%flow;)* +(INS|DEL) -- тело документа --> <!ATTLIST BODY %attrs; -- %coreattrs, %i18n, %events -- onload%Script; #ПРЕДПОЛАГАЕТСЯ -- документ был загружен -- onunload%Script; #ПРЕДПОЛАГАЕТСЯ -- документ был удалён -- background%URI; #ПРЕДПОЛАГАЕТСЯ -- текстуры для фона документа -- %bodycolors; -- bgcolor, text, link, vlink, alink -- >
<!ELEMENT ADDRESS - - ((%inline;)|P)* -- информация об авторе --> <!ATTLIST ADDRESS %attrs; -- %coreattrs, %i18n, %events -- >
<!ELEMENT DIV - - (%flow;)* -- родовой язык/контейнер --> <!ATTLIST DIV %attrs; -- %coreattrs, %i18n, %events -- %align; -- align, выравнивание текста -- %reserved; -- зарезервирован для возможного использования в будущем -- >
<!ELEMENT CENTER - - (%flow;)* -- сокращение для DIV align=center --> <!ATTLIST CENTER %attrs; -- %coreattrs, %i18n, %events -- >
<!--============================ Элемент Якорь ================================-->
<!ENTITY % Shape "(rect|circle|poly|default)"> <!ENTITY % Coords "CDATA" -- список разделённых запятыми размеров -->
<!ELEMENT A - - (%inline;)* -(A) -- якорь --> <!ATTLIST A %attrs; -- %coreattrs, %i18n, %events -- charset%Charset; #ПРЕДПОЛАГАЕТСЯ -- набор символов связанного ресурса -- type%ContentType; #ПРЕДПОЛАГАЕТСЯ -- информативный тип содержимого -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- именованный конец гиперссылки -- href%URI; #ПРЕДПОЛАГАЕТСЯ -- URI связанного ресурса -- hreflang%LanguageCode; #ПРЕДПОЛАГАЕТСЯ -- код языка -- target%FrameTarget; #ПРЕДПОЛАГАЕТСЯ -- целевой фрэйм -- rel%LinkTypes; #ПРЕДПОЛАГАЕТСЯ -- типы ссылок вперёд -- rev%LinkTypes; #ПРЕДПОЛАГАЕТСЯ -- типы ссылок назад -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- shape%Shape; rect -- для использования с клиентскими картами -- coords%Coords; #ПРЕДПОЛАГАЕТСЯ -- для использования с клиентскими картами -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- >
<!--=============== Клиентские Карты Изображений (на стороне клиента) ==================-->
<!-- Могут быть размещены в том же документе или в отдельном, но второе ещё не поддерживается достаточно широко. -->
<!ELEMENT MAP - - ((%block;) | AREA)+ -- клиентская карта изображений --> <!ATTLIST MAP %attrs; -- %coreattrs, %i18n, %events -- nameCDATA #НЕОБХОДИМ -- для ссылок usemap -- >
<!ELEMENT AREA - O EMPTY -- область клиентской карты --> <!ATTLIST AREA %attrs; -- %coreattrs, %i18n, %events -- shape%Shape; rect -- управление интерпретацией координат -- coords%Coords; #ПРЕДПОЛАГАЕТСЯ -- список разделённых запятыми размеров -- href%URI; #ПРЕДПОЛАГАЕТСЯ -- URI связанного ресурса -- target%FrameTarget; #ПРЕДПОЛАГАЕТСЯ -- целевой фрэйм -- nohref (nohref) #ПРЕДПОЛАГАЕТСЯ -- этот регион не имеет action -- alt%Text; #НЕОБХОДИМ -- краткое описание -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- >
<!--======================== Элемент LINK ==================================-->
<!-- Значения взаимоотношений могут быть использованы:
a) для специфических для данного документа панелей/меню при использовании с элементом LINK в "шапке" документа, например, start, contents, previous, next, index, end, help;
b) для ссылки на отдельную таблицу стилей (rel=stylesheet);
c) для создания ссылки на скрипт (rel=script);
d) таблицами стилей для управления тем, как коллекции узлов html отображаются в напечатанных документах;
e) для создания ссылки на версию данного документа для печати, напр., postscript или pdf версию (rel=alternate media=print). -->
<!ELEMENT LINK - O EMPTY -- a media-независимая ссылка --> <!ATTLIST LINK %attrs; -- %coreattrs, %i18n, %events -- charset%Charset; #ПРЕДПОЛАГАЕТСЯ -- набор символов связанного ресурса -- href%URI; #ПРЕДПОЛАГАЕТСЯ -- URI связанного ресурса -- hreflang%LanguageCode; #ПРЕДПОЛАГАЕТСЯ -- код языка -- type%ContentType; #ПРЕДПОЛАГАЕТСЯ -- информативный тип содержимого -- rel%LinkTypes; #ПРЕДПОЛАГАЕТСЯ -- тип ссылок вперёд -- rev%LinkTypes; #ПРЕДПОЛАГАЕТСЯ -- тип ссылок назад -- media%MediaDesc; #ПРЕДПОЛАГАЕТСЯ -- для представления данным устройством -- target%FrameTarget; #ПРЕДПОЛАГАЕТСЯ -- целевой фрэйм -- >
<!--======================== Изображения ===========================================-->
<!-- Размер определён в Строгом ОТД для cellpadding/cellspacing --> <!ENTITY % Length "CDATA" -- размер nn в пикселах или nn% в процентах --> <!ENTITY % MultiLength "CDATA" -- пикселы, проценты или относительный -->
<![ %HTML.Frameset; [ <!ENTITY % MultiLengths "CDATA" -- список разделённых запятыми MultiLength --> ]]>
<!ENTITY % Pixels "CDATA" -- целое число, представляющее размер в пикселах -->
<!ENTITY % IAlign "(top|middle|bottom|left|right)" -- выравнивание -->
<!-- Чтобы исключить проблемы с только-текстовыми ПА, а также чтобы содержимое изображения было понятным и доступным для навигации пользователей невизуальных ПА, Вы должны предоставлять описание в ALT и не использовать серверных карт изображений. --> <!ELEMENT IMG - O EMPTY -- внедрённое изображение --> <!ATTLIST IMG %attrs; -- %coreattrs, %i18n, %events -- src%URI; #НЕОБХОДИМ -- URI изображения для внедрения -- alt%Text; #НЕОБХОДИМ -- краткое описание -- longdesc%URI; #ПРЕДПОЛАГАЕТСЯ -- ссылка на полное описание (дополняет alt) -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- имя изображения (для сценариев) -- height%Length; #ПРЕДПОЛАГАЕТСЯ -- переопределить высоту -- width%Length; #ПРЕДПОЛАГАЕТСЯ -- переопределить ширину -- usemap%URI; #ПРЕДПОЛАГАЕТСЯ -- использовать клиентские карты -- ismap (ismap) #ПРЕДПОЛАГАЕТСЯ -- использовать серверные карты -- align%IAlign; #ПРЕДПОЛАГАЕТСЯ -- вертикальное или горизонтальное выравнивание -- border%Pixels; #ПРЕДПОЛАГАЕТСЯ -- толщина бордюра ссылки -- hspace%Pixels; #ПРЕДПОЛАГАЕТСЯ -- горизонтальный выступ -- vspace%Pixels; #ПРЕДПОЛАГАЕТСЯ -- вертикальный выступ -- >
<!-- USEMAP указывает на элемент MAP, который может находиться в этом или внешнем документе, хотя последнее не поддерживается широко. -->
<!--============================= OBJECT ======================================--> <!-- OBJECT используется для внедрения объектов как части страницы HTML. Элементы PARAM должны предшествовать другому содержимому. Модель смешанного содержимого SGML технически предотвращает формальную спецификацию этого ... -->
<!ELEMENT OBJECT - - (PARAM | %flow;)* -- общий внедрённый объект --> <!ATTLIST OBJECT %attrs; -- %coreattrs, %i18n, %events -- declare (declare) #ПРЕДПОЛАГАЕТСЯ -- объявляет, но не устанавливает флаг -- classid%URI; #ПРЕДПОЛАГАЕТСЯ -- идентифицирует класс -- codebase%URI; #ПРЕДПОЛАГАЕТСЯ -- базовый URI для classid, data, archive-- data%URI; #ПРЕДПОЛАГАЕТСЯ -- ссылка на данные объекта -- type%ContentType; #ПРЕДПОЛАГАЕТСЯ -- тип содержимого данных -- codetype%ContentType; #ПРЕДПОЛАГАЕТСЯ -- тип содержимого кода -- archiveCDATA #ПРЕДПОЛАГАЕТСЯ -- список разделённых пробелами URI -- standby%Text; #ПРЕДПОЛАГАЕТСЯ -- сообщение для показа при загрузке -- height%Length; #ПРЕДПОЛАГАЕТСЯ -- переопределить высоту -- width%Length; #ПРЕДПОЛАГАЕТСЯ -- переопределить ширину -- usemap%URI; #ПРЕДПОЛАГАЕТСЯ -- использовать клиентские карты -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- отправить как часть формы -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- align%IAlign; #ПРЕДПОЛАГАЕТСЯ -- вертикальное или горизонтальное выравнивание -- border%Pixels; #ПРЕДПОЛАГАЕТСЯ -- толщина бордюра ссылки -- hspace%Pixels; #ПРЕДПОЛАГАЕТСЯ -- горизонтальный выступ -- vspace%Pixels; #ПРЕДПОЛАГАЕТСЯ -- вертикальный выступ -- %reserved; -- зарезервирован для возможного использования в будущем -- >
<!ELEMENT PARAM - O EMPTY -- именованное значение свойства --> <!ATTLIST PARAM idID #ПРЕДПОЛАГАЕТСЯ -- уникальный идентификатор документа -- nameCDATA #НЕОБХОДИМ -- имя свойства -- valueCDATA #ПРЕДПОЛАГАЕТСЯ -- значение свойства -- valuetype (DATA|REF|OBJECT) DATA -- как интерпретировать значение -- type%ContentType; #ПРЕДПОЛАГАЕТСЯ -- тип содержимого для значения, если valuetype=ref -- >
<!--============================= Аплет Java ==================================--> <!-- Один из атрибутов кода или объекта должен присутствовать. Размещайте элементы PARAM перед другим содержимым. --> <!ELEMENT APPLET - - (PARAM | %flow;)* -- аплет Java --> <!ATTLIST APPLET %coreattrs; -- id, class, style, title -- codebase%URI; #ПРЕДПОЛАГАЕТСЯ -- необязательный базовый URI аплета -- archiveCDATA #ПРЕДПОЛАГАЕТСЯ -- список разделённых запятыми archive -- codeCDATA #ПРЕДПОЛАГАЕТСЯ -- файл класса аплета -- objectCDATA #ПРЕДПОЛАГАЕТСЯ -- сериализованный файл аплета -- alt%Text; #ПРЕДПОЛАГАЕТСЯ -- краткое описание -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- позволяет аплетам обращаться друг к другу -- width%Length; #НЕОБХОДИМ -- начальная ширина -- height%Length; #НЕОБХОДИМ -- начальная высота -- align%IAlign; #ПРЕДПОЛАГАЕТСЯ -- вертикальное или горизонтальное выравнивание -- hspace%Pixels; #ПРЕДПОЛАГАЕТСЯ -- горизонтальный выступ -- vspace%Pixels; #ПРЕДПОЛАГАЕТСЯ -- вертикальный выступ -- >
<!--======================= Горизонтальная Линия ==================================-->
<!ELEMENT HR - O EMPTY -- горизонтальная линия --> <!ATTLIST HR %attrs; -- %coreattrs, %i18n, %events -- align (left|center|right) #ПРЕДПОЛАГАЕТСЯ () #ПРЕДПОЛАГАЕТСЯ size%Pixels; #ПРЕДПОЛАГАЕТСЯ width%Length; #ПРЕДПОЛАГАЕТСЯ >
<!--========================== Параграфы =======================================-->
<!ELEMENT P - O (%inline;)* -- параграф --> <!ATTLIST P %attrs; -- %coreattrs, %i18n, %events -- %align; -- align, выравнивание текста -- >
<!--========================= Заголовки =========================================-->
<!-- Есть шесть уровней заголовков: от H1 (самый верхний) до H6 (самый нижний). -->
<!ELEMENT (%heading;) - - (%inline;)* -- заголовок --> <!ATTLIST (%heading;) %attrs; -- %coreattrs, %i18n, %events -- %align; -- align, выравнивание текста -- >
<!--====================== Форматированный Текст ================================-->
<!-- исключает разметку для изображений и изменения размера шрифта --> <!ENTITY % pre.exclusion "IMG|OBJECT|APPLET|BIG|SMALL|SUB|SUP|FONT|BASEFONT">
<!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- форматированный текст --> <!ATTLIST PRE %attrs; -- %coreattrs, %i18n, %events -- widthNUMBER #ПРЕДПОЛАГАЕТСЯ >
<!--===================== Инлайн-кавычки ==================================-->
<!ELEMENT Q - - (%inline;)* -- краткое инлайн закавычивание --> <!ATTLIST Q %attrs; -- %coreattrs, %i18n, %events -- cite%URI; #ПРЕДПОЛАГАЕТСЯ -- URI документа-источника или сообщения -- >
<!--=================== Кавычки блока ================================-->
<!ELEMENT BLOCKQUOTE - - (%flow;)* -- полное закавычивание --> <!ATTLIST BLOCKQUOTE %attrs; -- %coreattrs, %i18n, %events -- cite%URI; #ПРЕДПОЛАГАЕТСЯ -- URI документа-источника или сообщения -- >
<!--=================== Вставленный/Удалённый Текст ============================-->
<!-- INS/DEL обрабатываются при включении в BODY --> <!ELEMENT (INS|DEL) - - (%flow;)* -- вставленный|удалённый текст --> <!ATTLIST (INS|DEL) %attrs; -- %coreattrs, %i18n, %events -- cite%URI; #ПРЕДПОЛАГАЕТСЯ -- цитирование -- datetime%Datetime; #IПРЕДПОЛАГАЕТСЯ -- дата и время -- >
<!--========================= Список ============================================-->
<!-- Definition List/Список Определений - DT для термина, DD для определения -->
<!ELEMENT DL - - (DT|DD)+ -- список definition --> <!ATTLIST DL %attrs; -- %coreattrs, %i18n, %events -- compact (compact) #ПРЕДПОЛАГАЕТСЯ -- уменьшенные пропуски между элементами -- >
<!ELEMENT DT - O (%inline;)* -- термин --> <!ELEMENT DD - O (%flow;)* -- его определение --> <!ATTLIST (DT|DD) %attrs; -- %coreattrs, %i18n, %events -- >
<!-- Ordered lists/Упорядоченные Списки (OL) Стиль Нумерации.
1 арабские цифры 1, 2, 3, ... a алфавитные a, b, c, ... A алфавитные верх. регистра A, B, C, ... i римские i, ii, iii, ... I римские верх. регистра I, II, III, ...
Стиль применяется к последовательности номеров, которая по умолчанию установлена в 1 для первого элемента упорядоченного списка.
Это не может быть прямо выражено в SGML из-за изменения регистра. -->
<!ENTITY % OLStyle "CDATA" -- ограничено до: "(1|a|A|i|I)" -->
<!ELEMENT OL - - (LI)+ -- упорядоченный список --> <!ATTLIST OL %attrs; -- %coreattrs, %i18n, %events -- type%OLStyle; #ПРЕДПОЛАГАЕТСЯ -- стиль нумерации -- compact (compact) #ПРЕДПОЛАГАЕТСЯ -- уменьшенные пропуски между элементами -- startNUMBER #ПРЕДПОЛАГАЕТСЯ -- начальный номер нумерации -- >
<!-- Unordered Lists/Неупорядоченные Списки (UL). Стиль маркировки. --> <!ENTITY % ULStyle "(disc|square|circle)">
<!ELEMENT UL - - (LI)+ -- неупорядоченный список --> <!ATTLIST UL %attrs; -- %coreattrs, %i18n, %events -- type%ULStyle; #ПРЕДПОЛАГАЕТСЯ -- стиль маркировки -- compact (compact) #ПРЕДПОЛАГАЕТСЯ -- уменьшенные пропуски между элементами -- >
<!ELEMENT (DIR|MENU) - - (LI)+ -(%block;) -- список directory, список menu --> <!ATTLIST DIR %attrs; -- %coreattrs, %i18n, %events -- compact (compact) #ПРЕДПОЛАГАЕТСЯ -- уменьшенные пропуски между элементами -- > <!ATTLIST MENU %attrs; -- %coreattrs, %i18n, %events -- compact (compact) #ПРЕДПОЛАГАЕТСЯ -- уменьшенные пропуски между элементами -- >
<!ENTITY % LIStyle "CDATA" -- ограничено до: "(%ULStyle;|%OLStyle;)" -->
<!ELEMENT LI - O (%flow;)* -- элемент списка --> <!ATTLIST LI %attrs; -- %coreattrs, %i18n, %events -- type%LIStyle; #ПРЕДПОЛАГАЕТСЯ -- стиль элемента списка -- valueNUMBER #ПРЕДПОЛАГАЕТСЯ -- устанавливает нумерацию -- >
<!--========================== Формы ===============================================-->
<!ELEMENT FORM - - (%flow;)* -(FORM) -- интерактивная форма --> <!ATTLIST FORM %attrs; -- %coreattrs, %i18n, %events -- action%URI; #НЕОБХОДИМ -- обработчик формы (на сервере) -- method (GET|POST) GET -- метод HTTP, используемый для отправки формы -- enctype%ContentType; "application/x-www-form-urlencoded" accept%ContentTypes; #ПРЕДПОЛАГАЕТСЯ -- список типов MIME для подгрузки файлов -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- имя формы (для сценариев) -- onsubmit%Script; #ПРЕДПОЛАГАЕТСЯ -- форма была отправлена -- onreset%Script; #ПРЕДПОЛАГАЕТСЯ -- форма была очищена -- target%FrameTarget; #ПРЕДПОЛАГАЕТСЯ -- целевой фрэйм -- accept-charset%Charsets; #ПРЕДПОЛАГАЕТСЯ -- список поддерживаемых наборов символов -- >
<!-- Каждый лэйбл должен содержать НЕ более одного поля --> <!ELEMENT LABEL - - (%inline;)* -(LABEL) -- текст лэйбла поля формы --> <!ATTLIST LABEL %attrs; -- %coreattrs, %i18n, %events -- forIDREF #ПРЕДПОЛАГАЕТСЯ -- в паре к значению ID -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- >
<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET | FILE | HIDDEN | IMAGE | BUTTON)" >
<!-- имя атрибута требуется для всех, за исключением кнопок submit и reset --> <!ELEMENT INPUT - O EMPTY -- элемент управления (ЭУ) формы --> <!ATTLIST INPUT %attrs; -- %coreattrs, %i18n, %events -- type%InputType; TEXT -- тип элемента -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- отправить как часть формы -- valueCDATA #ПРЕДПОЛАГАЕТСЯ -- для radio-кнопок и переключателей -- checked (checked) #ПРЕДПОЛАГАЕТСЯ -- для radio-кнопок и переключателей -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- readonly (readonly) #ПРЕДПОЛАГАЕТСЯ -- для text и passwd -- sizeCDATA #ПРЕДПОЛАГАЕТСЯ -- свой для каждого поля -- maxlengthNUMBER #ПРЕДПОЛАГАЕТСЯ -- максим. количество символов (для текстовых полей) -- src%URI; #ПРЕДПОЛАГАЕТСЯ -- для полей с изображением -- altCDATA #ПРЕДПОЛАГАЕТСЯ -- краткое описание -- usemap%URI; #ПРЕДПОЛАГАЕТСЯ -- использовать клиентские карты -- ismap (ismap) #ПРЕДПОЛАГАЕТСЯ -- использовать серверные карты -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- onselect%Script; #ПРЕДПОЛАГАЕТСЯ -- некоторый текст был выделен -- onchange%Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента было изменено -- accept%ContentTypes; #ПРЕДПОЛАГАЕТСЯ -- список типов MIME для подгрузки файлов -- align%IAlign; #ПРЕДПОЛАГАЕТСЯ -- вертикальное или горизонтальное выравнивание -- %reserved; -- зарезервирован для возможного использования в будущем -- >
<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- селектор опций --> <!ATTLIST SELECT %attrs; -- %coreattrs, %i18n, %events -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- имя поля -- sizeNUMBER #ПРЕДПОЛАГАЕТСЯ -- количество видимых рядов -- multiple (multiple) #ПРЕДПОЛАГАЕТСЯ -- по умолчанию выбран один -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- onchange%Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента было изменено -- %reserved; -- зарезервирован для возможного использования в будущем -- >
<!ELEMENT OPTGROUP - - (OPTION)+ -- группа опций --> <!ATTLIST OPTGROUP %attrs; -- %coreattrs, %i18n, %events -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- label%Text; #НЕОБХОДИМ -- для использования в иерархических меню -- >
<!ELEMENT OPTION - O (#PCDATA) -- выбор переключением --> <!ATTLIST OPTION %attrs; -- %coreattrs, %i18n, %events -- selected (selected) #ПРЕДПОЛАГАЕТСЯ disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- label%Text; #ПРЕДПОЛАГАЕТСЯ -- для использования в иерархических меню -- valueCDATA #ПРЕДПОЛАГАЕТСЯ -- значение по умолчанию для содержимого элемента -- >
<!ELEMENT TEXTAREA - - (#PCDATA) -- многострочное текстовое поле --> <!ATTLIST TEXTAREA %attrs; -- %coreattrs, %i18n, %events -- nameCDATA #ПРЕДПОЛАГАЕТСЯ rowsNUMBER #НЕОБХОДИМ colsNUMBER #НЕОБХОДИМ disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- readonly (readonly) #ПРЕДПОЛАГАЕТСЯ tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- onselect%Script; #ПРЕДПОЛАГАЕТСЯ -- некоторый текст был выделен -- onchange%Script; #ПРЕДПОЛАГАЕТСЯ -- значение элемента было изменено -- %reserved; -- зарезервирован для возможного использования в будущем -- >
<!-- #PCDATA - для решения проблемы смешанного содержимого, по спецификации здесь допустимы только пробелы! --> <!ELEMENT FIELDSET - - (#PCDATA, LEGEND,(%flow;)*) -- группа ЭУ формы --> <!ATTLIST FIELDSET %attrs; -- %coreattrs, %i18n, %events -- >
<!ELEMENT LEGEND - - (%inline;)* -- "легенда" набора полей --> <!ENTITY % LAlign "(top|bottom|left|right)">
<!ATTLIST LEGEND %attrs; -- %coreattrs, %i18n, %events -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- align%LAlign; #ПРЕДПОЛАГАЕТСЯ -- выравнивание относительно набора полей -- >
<!ELEMENT BUTTON - - (%flow;)* -(A|%formctrl;|FORM|ISINDEX|FIELDSET|IFRAME) -- кнопка push --> <!ATTLIST BUTTON %attrs; -- %coreattrs, %i18n, %events -- nameCDATA #ПРЕДПОЛАГАЕТСЯ valueCDATA #ПРЕДПОЛАГАЕТСЯ -- переслать на сервер при отправке (формы) -- type (button|submit|reset) submit -- для использования в качестве кнопки формы -- disabled (disabled) #ПРЕДПОЛАГАЕТСЯ -- недоступен в данном контексте -- tabindexNUMBER #ПРЕДПОЛАГАЕТСЯ -- позиция в порядке табуляции -- accesskey%Character; #ПРЕДПОЛАГАЕТСЯ -- символ быстрого доступа -- onfocus%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент получил фокус -- onblur%Script; #ПРЕДПОЛАГАЕТСЯ -- элемент потерял фокус -- %reserved; -- зарезервирован для возможного использования в будущем -- >
<!--============================== Таблицы =======================================-->
<!-- Стандарт IETF таблиц HTML, см. [RFC1942] -->
<!-- Атрибут BORDER устанавливает толщину рамки вокруг таблицы. Единицы измерения по умолчанию - пикселы экрана. Атрибут FRAME Определяет, какие части фрэйма вокруг таблицы должны отображаться. Значения - не те же, что в CALS, для исключения конфликтов имён с атрибутом VALIGN. Значение "border" включено для обеспечения обратной совместимости с <TABLE BORDER>, который даёт frame=border и border=implied. При <TABLE BORDER=1> вы получаете border=1 и frame=implied. В этом случае лучше предусматривать frame=border для обратной совместимости с существующими браузерами. --> <!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
<!-- Атрибут RULES определяет, какие линии прорисовывать между ячейками: Если RULES отсутствует, тогда принимается: "none", если BORDER отсутствует, или BORDER=0 в случае "all". -->
<!ENTITY % TRules "(none | groups | rows | cols | all)">
<!-- горизонтальное размещение таблицы относительно документа --> <!ENTITY % TAlign "(left|center|right)">
<!-- атрибуты горизонтального выравнивания содержимого ячейки --> <!ENTITY % cellhalign "align (left|center|right|justify|char) #IMPLIED char%Character; #ПРЕДПОЛАГАЕТСЯ -- символ выравнивания, напр., char=':' -- charoff%Length; #ПРЕДПОЛАГАЕТСЯ -- офсет символа выравнивания --" >
<!-- атрибуты вертикального выравнивания содержимого ячейки --> <!ENTITY % cellvalign "valign (top|middle|bottom|baseline) #IMPLIED" >
<!ELEMENT TABLE - - (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)> <!ELEMENT CAPTION - - (%inline;)* -- заголовок таблицы --> <!ELEMENT THEAD - O (TR)+ -- "шапка" таблицы --> <!ELEMENT TFOOT - O (TR)+ -- футер --> <!ELEMENT TBODY O O (TR)+ -- тело таблицы --> <!ELEMENT COLGROUP - O (COL)* -- группа столбцов --> <!ELEMENT COL - O EMPTY -- столбец --> <!ELEMENT TR - O (TH|TD)+ -- ряд --> <!ELEMENT (TH|TD) - O (%flow;)* -- заголовочная|данных ячейка -->
<!ATTLIST TABLE -- элемент таблица -- %attrs; -- %coreattrs, %i18n, %events -- summary%Text; #ПРЕДПОЛАГАЕТСЯ -- назначение/структура для речевого вывода-- width%Length; #ПРЕДПОЛАГАЕТСЯ -- ширина таблицы -- border%Pixels; #ПРЕДПОЛАГАЕТСЯ -- толщина рамки фрэйма вокруг таблицы -- frame%TFrame; #ПРЕДПОЛАГАЕТСЯ -- какие части фрэйма отображать -- rules%TRules; #ПРЕДПОЛАГАЕТСЯ -- линии между рядами и столбцами -- cellspacing%Length; #ПРЕДПОЛАГАЕТСЯ -- пространство между ячейками -- cellpadding%Length; #ПРЕДПОЛАГАЕТСЯ -- пространство между рамками ячеек и их содержимым -- align%TAlign; #ПРЕДПОЛАГАЕТСЯ -- позиция таблицы относительно окна -- bgcolor%Color; #ПРЕДПОЛАГАЕТСЯ -- цвет фона ячеек -- %reserved; -- зарезервирован для возможного использования в будущем -- datapagesize CDATA #ПРЕДПОЛАГАЕТСЯ -- зарезервирован для возможного использования в будущем -- >
<!ENTITY % CAlign "(top|bottom|left|right)">
<!ATTLIST CAPTION %attrs; -- %coreattrs, %i18n, %events -- align%CAlign; #ПРЕДПОЛАГАЕТСЯ -- относительно таблицы -- >
<!-- COLGROUP группирует набор элементов COL. Позволяет группировать несколько семантически связанных столбцов. --> <!ATTLIST COLGROUP %attrs; -- %coreattrs, %i18n, %events -- spanNUMBER 1 -- количество, по умолчанию, столбцов в группе -- width%MultiLength; #ПРЕДПОЛАГАЕТСЯ -- ширина по умолчанию для каждого столбца группы -- %cellhalign; -- горизонтальное выравнивание в ячейках -- %cellvalign; -- вертикальное выравнивание в ячейках -- >
<!-- Элементы COL определяют свойства выравнивания ячеек в одном столбце, или более.
Атрибут WIDTH определяет ширину столбцов, например, width=64 ширина в пикселах экрана width=0.5* относительная ширина 0.5
Атрибут SPAN указывает применение атрибутов одного элемента COL к более чем одному столбцу. --> <!ATTLIST COL -- группы столбцов и свойства -- %attrs; -- %coreattrs, %i18n, %events -- spanNUMBER 1 -- атрибуты элемента COL воздействуют на N столбцов -- width%MultiLength; #ПРЕДПОЛАГАЕТСЯ -- спецификация ширины столбца -- %cellhalign; -- горизонтальное выравнивание в ячейках -- %cellvalign; -- вертикальное выравнивание в ячейках -- >
<!-- Используйте THEAD для дублирования заголовков таблицы при разбиении таблицы по границам страницы или для статических заголовков, если разделы TBODY просматриваются в прокручиваемой панели.
Используйте TFOOT для дублирования футеров таблицы при разбиении таблицы по границам страницы или для статических заголовков, если разделы TBODY просматриваются в прокручиваемой панели.
Используйте множественный выбор в разделах TBODY, если нужны линии между группами рядов. --> <!ATTLIST (THEAD|TBODY|TFOOT) -- раздел таблицы -- %attrs; -- %coreattrs, %i18n, %events -- %cellhalign; -- горизонтальное выравнивание в ячейках -- %cellvalign; -- вертикальное выравнивание в ячейках -- >
<!ATTLIST TR -- ряд таблицы -- %attrs; -- %coreattrs, %i18n, %events -- %cellhalign; -- горизонтальное выравнивание в ячейках -- %cellvalign; -- вертикальное выравнивание в ячейках -- bgcolor%Color; #ПРЕДПОЛАГАЕТСЯ -- цвет фона для ряда -- >
<!-- Scope/область видимости проще, чем атрибут заголовков в обычных таблицах --> <!ENTITY % Scope "(row|col|rowgroup|colgroup)">
<!-- TH - для заголовков, TD - для данных, а для ячеек, действующих и так, и так, используйте TD --> <!ATTLIST (TH|TD) -- заголовочная|данных ячейка -- %attrs; -- %coreattrs, %i18n, %events -- abbr%Text; #ПРЕДПОЛАГАЕТСЯ -- сокращение для заголовочной ячейки -- axisCDATA #ПРЕДПОЛАГАЕТСЯ -- список разделённых запятыми относительных заголовков-- headersIDREFS #ПРЕДПОЛАГАЕТСЯ -- список id-ов заголовочных ячеек -- scope%Scope; #ПРЕДПОЛАГАЕТСЯ -- область видимости, покрываемая заголовочными ячейками -- rowspanNUMBER 1 -- количество рядов, занимаемых ячейкой -- colspanNUMBER 1 -- количество столбцов, занимаемых ячейкой -- %cellhalign; -- горизонтальное выравнивание в ячейках -- %cellvalign; -- вертикальное выравнивание в ячейках -- nowrap (nowrap) #ПРЕДПОЛАГАЕТСЯ -- отменяет перенос слов -- bgcolor%Color; #ПРЕДПОЛАГАЕТСЯ -- цвет фона ячейки -- width%Length; #ПРЕДПОЛАГАЕТСЯ -- ширина ячейки -- height%Length; #ПРЕДПОЛАГАЕТСЯ -- высота ячейки -- >
<!--======================== Document Frames ===================================-->
<!-- Модель содержимого документов HTML зависит от того, идёт ли после HEAD элемент FRAMESET или BODY. Широко распространен пропуск начального тега BODY, что делает неудобным определение модели содержимого без использования размеченного раздела. --> <![ %HTML.Frameset; [ <!ELEMENT FRAMESET - - ((FRAMESET|FRAME)+ & NOFRAMES?) -- разделение окна --> <!ATTLIST FRAMESET %coreattrs; -- id, class, style, title -- rows%MultiLengths; #ПРЕДПОЛАГАЕТСЯ -- список размеров, по умолчанию: 100% (1 ряд) -- cols%MultiLengths; #ПРЕДПОЛАГАЕТСЯ -- список размеров, по умолчанию: 100% (1 столбец) -- onload%Script; #ПРЕДПОЛАГАЕТСЯ -- все фрэймы загружены -- onunload%Script; #ПРЕДПОЛАГАЕТСЯ -- все фрэймы удалены -- > ]]>
<![ %HTML.Frameset; [ <!-- зарезервированные имена фрэймов начинаются с "_", в других случаях - начинаются с буквы --> <!ELEMENT FRAME - O EMPTY -- фрэйм --> <!ATTLIST FRAME %coreattrs; -- id, class, style, title -- longdesc%URI; #ПРЕДПОЛАГАЕТСЯ -- ссылка на полное описание (дополняет title) -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- имя фрэйма для назначения в качестве целевого -- src%URI; #ПРЕДПОЛАГАЕТСЯ -- источник содержимого фрэйма -- frameborder (1|0) 1 -- бордюры фрэйма -- marginwidth%Pixels; #ПРЕДПОЛАГАЕТСЯ -- ширина полей в пикселах -- marginheight%Pixels; #ПРЕДПОЛАГАЕТСЯ -- высота полей в пикселах -- noresize (noresize) #ПРЕДПОЛАГАЕТСЯ -- запрещает изменение размеров фрэйма -- scrolling (yes|no|auto) auto -- полоса прокрутки -- > ]]>
<!ELEMENT IFRAME - - (%flow;)* -- инлайн-фрэйм --> <!ATTLIST IFRAME %coreattrs; -- id, class, style, title -- longdesc%URI; #ПРЕДПОЛАГАЕТСЯ -- ссылка на полное описание (дополняет title) -- nameCDATA #ПРЕДПОЛАГАЕТСЯ -- имя фрэйма для назначения в качестве целевого -- src%URI; #ПРЕДПОЛАГАЕТСЯ -- источник содержимого фрэйма -- frameborder (1|0) 1 -- бордюры фрэйма -- marginwidth%Pixels; #ПРЕДПОЛАГАЕТСЯ -- ширина полей в пикселах -- marginheight%Pixels; #ПРЕДПОЛАГАЕТСЯ -- высота полей в пикселах -- scrolling (yes|no|auto) auto -- полоса прокрутки -- align%IAlign; #ПРЕДПОЛАГАЕТСЯ -- вертикальное или горизонтальное выравнивание -- height%Length; #ПРЕДПОЛАГАЕТСЯ -- высота фрэйма -- width%Length; #ПРЕДПОЛАГАЕТСЯ -- ширина фрэйма -- >
<![ %HTML.Frameset; [ <!ENTITY % noframes.content "(BODY) -(NOFRAMES)"> ]]>
<!ENTITY % noframes.content "(%flow;)*">
<!ELEMENT NOFRAMES - - %noframes.content;
-- контейнер альтернативного содержимого для просмотра без фрэймов --> <!ATTLIST NOFRAMES %attrs; -- %coreattrs, %i18n, %events -- >
<!--====================== "Шапка" Документа =======================================-->
<!-- %head.misc; определённая ранее как "SCRIPT|STYLE|META|LINK|OBJECT" --> <!ENTITY % head.content "TITLE & ISINDEX? & BASE?">
<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- "шапка" документа --> <!ATTLIST HEAD %i18n; -- lang, dir -- profile%URI; #ПРЕДПОЛАГАЕТСЯ -- именованный словарь метаинформации -- >
<!-- Элемент TITLE не является частью текста. Он должен отображаться, например, как заголовок документа или заголовок окна. Только один title требуется в документе. --> <!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- название документа --> <!ATTLIST TITLE %i18n>
<!ELEMENT ISINDEX - O EMPTY -- однострочный промпт --> <!ATTLIST ISINDEX %coreattrs; -- id, class, style, title -- %i18n; -- lang, dir -- prompt%Text; #ПРЕДПОЛАГАЕТСЯ -- промпт-сообщение -->
<!ELEMENT BASE - O EMPTY -- базовый URI документа --> <!ATTLIST BASE href%URI; #ПРЕДПОЛАГАЕТСЯ -- URI, действующий как базовый URI -- target%FrameTarget; #ПРЕДПОЛАГАЕТСЯ -- отображать в этом фрэйме -- >
<!ELEMENT META - O EMPTY -- общая метаинформация --> <!ATTLIST META %i18n; -- lang, dir, для использования с содержимым -- http-equivNAME #ПРЕДПОЛАГАЕТСЯ -- имя заголовка ответа HTTP -- nameNAME #ПРЕДПОЛАГАЕТСЯ -- метаинформационное имя -- contentCDATA #НЕОБХОДИМ -- ассоциированная информация -- schemeCDATA #ПРЕДПОЛАГАЕТСЯ -- выбор формы содержимого -- >
<!ELEMENT STYLE - - %StyleSheet -- информация о стиле --> <!ATTLIST STYLE %i18n; -- lang, dir, для использования с title -- type%ContentType; #НЕОБХОДИМ -- тип содержимого языка стилей -- media%MediaDesc; #ПРЕДПОЛАГАЕТСЯ -- разработан для использования с этим устройством -- title%Text; #ПРЕДПОЛАГАЕТСЯ -- информативное название -- >
<!ELEMENT SCRIPT - - %Script; -- операторы скрипта --> <!ATTLIST SCRIPT charset%Charset; #ПРЕДПОЛАГАЕТСЯ -- набор символов связанного ресурса -- type%ContentType; #НЕОБХОДИМ -- тип содержимого языка скриптов -- languageCDATA #ПРЕДПОЛАГАЕТСЯ -- предопределённое название языка скриптов -- src%URI; #ПРЕДПОЛАГАЕТСЯ -- URI внешнего скрипта -- defer (defer) #ПРЕДПОЛАГАЕТСЯ -- пользовательский агент (ПА) может отложить выполнение скрипта -- event CDATA #ПРЕДПОЛАГАЕТСЯ -- зарезервирован для возможного использования в будущем -- for%URI; #ПРЕДПОЛАГАЕТСЯ -- зарезервирован для возможного использования в будущем -- >
<!ELEMENT NOSCRIPT - - (%flow;)* -- контейнер альтернативного содержимого для представления без скриптов --> <!ATTLIST NOSCRIPT %attrs; -- %coreattrs, %i18n, %events -- >
<!--====================== Структура Документа ==================================-->
<!ENTITY % version "version CDATA #ФИКСИРОВАННЫЙ '%HTML.Version;'">
<![ %HTML.Frameset; [ <!ENTITY % html.content "HEAD, FRAMESET"> ]]>
<!ENTITY % html.content "HEAD, BODY">
<!ELEMENT HTML O O (%html.content;) -- корневой элемент документа --> <!ATTLIST HTML %i18n; -- lang, dir -- %version;
>
ОТД Набора Фрэймов
23. ОТД Набора Фрэймов
<!-- Это ОТД (определение типа данных) Набора кадров/Frameset HTML 4.01, которое должно использоваться для ОТД набора фрэймов. Это ОТД идентично переходному/Transitional ОТД HTML 4.01 за исключением модели содержимого элемента "HTML": в наборе фрэймов элемент "FRAMESET" заменяет элемент "BODY".
Проект: $ Дата: 1999/12/24 23:20:08 $
Авторы: Dave Raggett <dsr@w3.org> Arnaud Le Hors <lehors@w3.org> Ian Jacobs <ij@w3.org>
Информация о HTML 4.01 находится на:
http://www.w3.org/TR/1999/REC-html401-19991224. --> <!ENTITY % HTML.Version "-//W3C//DTD HTML 4.01 Frameset//EN" -- Типичное использование:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> ... </head> <frameset> ... </frameset> </html> -->
<!ENTITY % HTML.Frameset "INCLUDE"> <!ENTITY % HTML4.dtd PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> %HTML4.dtd;
В последующих разделах представлен полный список мнемоник. Хотя по соглашению [ISO10646] комментарии, следующие за каждым элементом, пишутся обычно в верхнем регистре, мы конвертировали их в этой спецификации в нижний регистр для удобства чтения.
Ссылки- мнемоники из этого раздела производят символы, чьи цифровые эквиваленты должны поддерживаться пользовательскими агентами (ПА), соответствующими HTML 2.0. Таким образом, мнемоника ÷ более удобна, чем ÷, для получения знака деления (÷).
Для того, чтобы поддерживать такие мнемоники, ПА должны распознавать названия мнемоник и конвертировать их в символы репертуара [ISO88591].
Символ 65533 (FFFD 16-ричная) это последний действительный символ UCS-2. 65534 (FFFE 16-ричная) это беззнаковая и полученная обращением байтов версия ZERO WIDTH NON-BREAKING SPACE для целей определения порядка байтов. 65535 (FFFF 16-ричная) является беззнаковым числом.
Ссылки-мнемоники для символов, математических символов, и греческих букв
24.3 Ссылки-мнемоники для символов, математических символов, и греческих букв
Символьные ссылки-мнемоники этого раздела выводят символы, которые могут быть представлены глифами в широко распространённом шрифте Adobe Symbol, включая греческие буквы, различные скобки, некоторые математические операторы, такие как градиент, произведение и сумма.
Чтобы поддерживать эти мнемоники, ПА должны поддерживать полный [ISO10646] или использовать другие средства. Изображение глифов для этих символов может быть достигнуто возможностью изображения соответствующих [ISO10646] символов или другими способами, такими как составление внутренней карты мнемоник, цифровые мнемоники и символы на подходящей позиции в каком-либо шрифте, содержащем требуемые глифы.
При использовании греческих букв. Этот набор мнемоник содержит все буквы современного греческого. Однако он не включает греческую пунктуацию, акцентированные символы и акценты (tonos, dialytika), необходимые для их составления.
Отсутствуют архаические буквы, коптские буквы и буквы Polytonic Греческого. Мнемоники, определённые здесь, непригодны для представления современных греческих текстов; они предназначены для эпизодического введения греческих символов, используемых в технических предметах и математике.
Ссылки-мнемоники для символов разметки и интернационализации
24.4 Ссылки-мнемоники для символов разметки и интернационализации
Мнемоники этого раздела предназначены для escaping-символов разметки (они те же, что и в HTML 2.0 и 3.2) при обозначении пробелов и тире. Остальные символы этого раздела относятся к вопросам интернационализации, таким как недвусмысленность двунаправленного текста (см. раздел двунаправленный текст).
Мнемоники добавлены также для остальных символов CP-1252, не вошедших в наборы мнемоник HTMLlat1 или HTMLsymbol. Эти мнемоники находятся в диапазоне от 128 до 159 набора CP-1252. Данные мнемоники позволяют отображать символы в платформно-независимой манере.
Чтобы поддерживать эти мнемоники, ПА должны поддерживать полный набор [ISO10646] или использовать другие подходы. Изображение глифов этих символов может быть получено при наличии возможности отображения соответствующих символов [ISO10646] или другими средствами, таким как создание внутренних карт мнемоник, цифровые символьные ссылки и символы на подходящей позиции в каком-либо шрифте, содержащем требуемые глифы.