<datalist> Элемент списка данных HTML
Ограниченная доступность
Эта функция не входит в Baseline, поскольку не работает в некоторых из наиболее широко используемых браузеров.
Элемент <datalist> HTML содержит набор элементов <option>, представляющих допустимые или рекомендуемые варианты, доступные для выбора в других элементах управления.
Попробуйте
<label for="ice-cream-choice">Choose a flavor:</label> <input list="ice-cream-flavors" id="ice-cream-choice" name="ice-cream-choice" /> <datalist id="ice-cream-flavors"> <option value="Chocolate"></option> <option value="Coconut"></option> <option value="Mint"></option> <option value="Strawberry"></option> <option value="Vanilla"></option> </datalist>
label {
display: block;
margin-bottom: 10px;
}
Чтобы связать элемент <datalist> с элементом управления, мы задаём ему уникальный идентификатор в атрибуте id, а затем добавляем атрибут list элементу <input>, используя тот же идентификатор в качестве значения. Такое поведение поддерживается только некоторыми типами элементов <input>; кроме того, оно может различаться в разных браузерах.
У каждого элемента <option> должен быть атрибут value, представляющий собой предлагаемое значение для ввода. У него также может быть атрибут label или, если атрибут отсутствует, текстовое содержимое, которое браузер может отображать вместо value (Firefox) или в дополнение к value (Chrome и Safari — как дополнительный текст). Точное содержимое раскрывающегося меню зависит от браузера, но при нажатии в поле элемента управления всегда будет введено содержимое атрибута value.
Примечание: <datalist> не заменяет <select>. Элемент <datalist> сам по себе не является элементом ввода: это список предлагаемых значений для связанного элемента управления. Элемент управления по-прежнему может принимать любое значение, прошедшее проверку, даже если его нет в этом списке предложений.
Атрибуты
У этого элемента нет других атрибутов, кроме глобальных атрибутов, общих для всех элементов.
Доступность
При выборе элемента <datalist> следует учитывать следующие аспекты доступности:
- Размер шрифта вариантов в списке данных не масштабируется и всегда остаётся неизменным. Содержимое списка автодополнения не увеличивается и не уменьшается при масштабировании остального содержимого.
- Поскольку возможности стилизации списка вариантов с помощью CSS весьма ограничены или вовсе отсутствуют, его отображение нельзя адаптировать для режима высокой контрастности.
- Некоторые сочетания экранного диктора и браузера, в том числе NVDA и Firefox, не озвучивают содержимое всплывающего окна автодополнения.
Примеры
>Текстовые типы
Рекомендуемые значения для типов text, search, url, tel, email и number отображаются в раскрывающемся меню, когда пользователь нажимает или дважды нажимает элемент управления. Обычно с правой стороны элемента управления также появляется стрелка, указывающая на наличие предопределённых значений.
<label for="myBrowser">Choose a browser from this list:</label> <input list="browsers" id="myBrowser" name="myBrowser" /> <datalist id="browsers"> <option value="Chrome"></option> <option value="Firefox"></option> <option value="Opera"></option> <option value="Safari"></option> <option value="Microsoft Edge"></option> </datalist>
Типы даты и времени
Типы month, week, date, time и datetime-local могут отображать интерфейс, позволяющий удобно выбрать дату и время. В нём могут отображаться предопределённые значения, благодаря чему пользователь сможет быстро заполнить значение элемента управления.
Примечание: Если эти типы не поддерживаются, вместо них отображается обычный тип text, создающий текстовое поле. Это поле корректно распознаёт рекомендуемые значения и отображает их пользователю в раскрывающемся меню.
<input type="time" list="popularHours" /> <datalist id="popularHours"> <option value="12:00"></option> <option value="13:00"></option> <option value="14:00"></option> </datalist>
Тип range
Если атрибуты value указаны у элементов <option>, добавленных в список данных, связанный с элементом ввода типа range, они будут отображены в виде ряда делений, которые пользователь сможет легко выбрать.
<label for="tick">Tip amount:</label> <input type="range" list="tickmarks" min="0" max="100" id="tick" name="tick" /> <datalist id="tickmarks"> <option value="0" label="0%"></option> <option value="10" label="Minimum Tip"></option> <option value="20" label="Standard"></option> <option value="30" label="Generous"></option> <option value="50" label="Very Generous"></option> </datalist>
Примечание: Атрибут label предназначен для добавления подписей к делениям, как указано в стандарте HTML. Однако поддержка в современных браузерах различается: подписи могут не отображаться визуально или в виде всплывающих подсказок.
Тип color
Тип color может отображать предопределённые цвета в интерфейсе, предоставляемом браузером.
<label for="colors">Pick a color (preferably a red tone):</label> <input type="color" list="redColors" id="colors" /> <datalist id="redColors"> <option value="#800000"></option> <option value="#8B0000"></option> <option value="#A52A2A"></option> <option value="#DC143C"></option> </datalist>
Техническая сводка
| Категории содержимого | Потоковое содержимое, фразовое содержимое. |
|---|---|
| Допустимое содержимое | Либо фразовое содержимое, либо ноль или более элементов <option>. |
| Опущение тегов | Не допускается: открывающий и закрывающий теги обязательны. |
| Допустимые родители | Любой элемент, принимающий фразовое содержимое. |
| Неявная роль ARIA | listbox |
| Допустимые роли ARIA | Роли role не допускаются |
| Интерфейс DOM | HTMLDataListElement |
Спецификации
| Спецификация |
|---|
| HTML> # the-datalist-element> |
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
datalist |
20 | 12 | 4 | 9.5 | 12.1 | 33 |
79Раскрывающееся меню с доступными вариантами не отображается. См. ошибку 1535985. |
20 | 12.2 | 2.0 | 4.4.3 | 12.2 |
input_type_color |
20 | 14 | Нет | 12 | 12.1 | 33 | Нет | 20 | 12.2 | 2.0 | 4.4.3 | 12.2 |
input_type_date |
20 | 12 | Нет | 11 | 14.1 | 33 | Нет | 20 | 14.5 | 2.0 | 4.4.3 | 14.5 |
input_type_email |
22 | 12 | 4 | ≤12.1 | 12.1 | 33 | 4 | 20 | 12.2 | 2.0 | 4.4.3 | 12.2 |
input_type_number |
22 | 12 | 4 | ≤12.1 | 12.1 | 33 | 4 | 20 | 12.2 | 2.0 | 4.4.3 | 12.2 |
input_type_range |
20 | 12 | 110 | 11 | 12.1 | 57 | Нет | 20 | 12.2 | 7.0 | 57 | 12.2 |
input_type_search |
22 | 12 | 4 | ≤12.1 | 12.1 | 33 | 4 | 20 | 12.2 | 2.0 | 4.4.3 | 12.2 |
input_type_tel |
22 | 12 | 4 | ≤12.1 | 12.1 | 33 | 4 | 20 | 12.2 | 2.0 | 4.4.3 | 12.2 |
input_type_text |
20 | 12 | 4 | 9.5 | 12.1 | 33 | 4 | 20 | 12.2 | 2.0 | 4.4.3 | 12.2 |
input_type_time |
20 | 12 | Нет | 10 | 14.1 | 33 | Нет | 20 | 12.2 | 2.0 | 4.4.3 | 12.2 |
input_type_url |
22 | 12 | 4 | ≤12.1 | 12.1 | 33 | 4 | 20 | 12.2 | 2.0 | 4.4.3 | 12.2 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/datalist