ProgrammerBook.ru: Обратите внимание, что

  1. данный документ является переводом документа «Fill-Out Forms» (The SELECT element);
  2. данный документ может содержать неточности, опечатки и ошибки перевода;
  3. официальным документом по данной тематике является оригинальный документ на английском языке, расположенный на сайте W3C.

Элемент SELECT

Допустимый Контекст: %Body.Content, но должно быть в пределах FORM
Модель Содержимого: от одного и более OPTION элементов

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

Пример:

<SELECT NAME="flavor">
<OPTION>Ваниль
<OPTION>Клубника
<OPTION>Ром и Изюмом
<OPTION>Персик и Апельсин
</SELECT>

Это меню с одиночным выбором. Если вы хотите меню с множественным выбором, то вам необходимо в SELECT элементе указать атрибут MULTIPLE, например, <SELECT MULTIPLE NAME="flavor">.

Атрибут NAME используется при создании списка имя/значение, описывающего содержимое формы. В пару имя/значение вносится каждый выбранный вариант. Значение берётся из VALUE атрибута элемента OPTION или по умолчанию из содержимого элемента OPTION в случае, когда атрибут VALUE отсутствует.

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

Графические Меню

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

Изображение определяется так же, как и для элементов IMG. Это означает, что вы можете определить рекомендуемые значения для ширины и высоты. Вы также можете выравнивать изображение по левому или правому полю с обтеканием других элементов вокруг него. Горячие зоны для OPTION элементов определяются с помощью атрибута SHAPE таким же образом, как и для якорных элементов.

Допустимые Атрибуты

ID
SGML-идентификатор используется в качестве цели для гипертекстовых ссылок или для именования отдельных элементов в присоединённых таблицах стилей. Идентификаторы NAME лексем должны быть уникальными в рамках текущего документа.
LANG
Это одна из кратких меток ISO стандарта языка, например «en.uk» для варианта английского языка используемого в Соединённом Королевстве. Он может быть использован обработчиками при выборе конкретного языкового варианта кавычек, лигатур, правил переноса и так далее. Атрибут языка состоит из двухбуквенного кода языка, соответствующего стандарту ISO 639, в случае необходимости, за которым следует точка и двухбуквенный код страны, соответствующий стандарту ISO 3166.
CLASS
Это разделённый пробелами список SGML NAME лексем, которые используются для именования подклассов тега. Например, <P CLASS=STANZA.COUPLET> определяет абзац, который действует как куплет в строфе. По соглашению, имена классов интерпретируются иерархически, с самого общего класса слева до наиболее специфичного справа, где классы разделены точкой. Атрибут CLASS чаще всего используется для прикрепления другого стиля к некоторому элементу, но это является рекомендацией, чтобы практические имена классов были выбраны на основе семантики элемента, так как это позволит использование для других целей, таких как ограничение поиска по документам путём сопоставления имён классов элемента. Соглашения по выбору имён классов выходят за рамки данной спецификации.
NAME
Формальное имя меню, которое используется в списке содержимого формы.
MULTIPLE
Присутствие этого атрибута означает, что элемент SELECT определяет меню с множественным выбором. При его отсутствии, данный элемент определяет меню с одиночным выбором.
DISABLED
Если он присутствует, то меню следует представлять в обычном режиме, но без возможности изменения пользователем. При представлении следует сделать намёк о том, что меню отключено, например, с помощью серого цвета текста, изменения цвета фона или чего-то аналогичного.
ERROR
Этот атрибут определяет сообщение об ошибке, объясняющее причину того, почему текущий выбор меню является некорректным. Дальнейшие сообщения об ошибках могут быть присоединены к отдельным вариантам. Если этот атрибут отсутствует, то данное меню можно считать корректным. Агентам пользователей рекомендуется предоставлять некий сигнал о том, что меню содержит ошибку.
SRC (Источник)
Атрибут SRC используется в графических меню для определения URL-адреса изображения. Его синтаксис аналогичен синтаксису атрибута HREF тега <A>.
MD
Определяет сообщение дайджеста или криптографическую контрольную сумму для соответствующей графики, определённой в атрибуте SRC. Он используется, когда вы хотите быть уверены в том, что изображение действительно является тем самым, которое было задумано автором, и не было изменёно каким-либо образом. Например, MD="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ", определяет контрольную сумму MD5, закодированную в виде base64 строки символов. Атрибут MD, как правило, допускается для всех элементов, которые поддерживают ссылки с использованием URI.
WIDTH
Необязательная предполагаемая ширина изображения. По умолчанию, атрибут задаётся в пикселях.
HEIGHT
Необязательная предполагаемая высота изображения. По умолчанию, атрибут задаётся в пикселях.
UNITS
Этот необязательный атрибут определяет единицы измерения для width и height атрибутов. Он может принимать одно из следующих значений: units=pixels (по умолчанию) или units=em (ширина буквы «m»), которое масштабируется с размером шрифта.
ALIGN
Принимает значения TOP, MIDDLE или BOTTOM, которые определяют, что верхнюю, среднюю или нижнюю часть графики следует привести в соответствие с базовой линией текстовой строки, в которой появляется элемент IMG.

При ALIGN=LEFT, графика будет плавать снизу и выравниваться по текущему левому краю, а весь последующий текст будет окружать графику с правой стороны. Аналогично для ALIGN=RIGHT, графика будет выравниваться по текущему правому краю, а текст будет обтекать её слева.