Перейти к содержимому

Какой тип ввода определяет элемент управления slider

  • автор:

Какой тип ввода определяет элемент управления slider

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

Try it

Если браузер пользователя не поддерживает тип range , он отступит и обработает его как ввод text .

Validation

Проверка шаблона недоступна; однако выполняются следующие формы автоматической проверки:

  • Если для value задано значение, которое не может быть преобразовано в допустимое число с плавающей запятой, проверка завершится неудачно, поскольку входные данные ошибочны.
  • Значение не будет меньше min . Значение по умолчанию – 0.
  • Значение не будет превышать max . По умолчанию 100.
  • Значение будет кратно step . По умолчанию 1.

Value

Атрибут value содержит строку, содержащую строковое представление выбранного числа. Значение никогда не бывает пустой строкой ( «» ). Значение по умолчанию находится посередине между заданным минимумом и максимумом, если только максимум не меньше минимума, и в этом случае по умолчанию устанавливается значение атрибута min . Алгоритм определения значения по умолчанию:

defaultValue = rangeElem.max < rangeElem.min ? rangeElem.min : rangeElem.min + (rangeElem.max - rangeElem.min) / 2;

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

Additional attributes

В дополнение к атрибутам, общим для всех элементов , входы диапазона предлагают следующие атрибуты.

list

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

См. adding tick marks ниже для примера того, как параметры диапазона обозначаются в поддерживаемых браузерах.

max

Наибольшее значение в диапазоне допустимых значений. Если значение value , введенное в элемент, превышает это значение, элемент выходит из строя constraint validation . Если значение атрибута max не является числом, то элемент не имеет максимального значения.

Это значение должно быть больше или равно значению атрибута min . См. атрибут HTML max .

min

Наименьшее значение в диапазоне допустимых значений. Если value элемента меньше этого значения, элемент выходит из строя constraint validation . Если для min указано недопустимое значение, входные данные не имеют минимального значения.

Это значение должно быть меньше или равно значению атрибута max . См. атрибут HTML min .

Примечание. Если значения min и max равны или значение max ниже значения min , пользователь не сможет взаимодействовать с диапазоном.

step

Атрибут step — это число, указывающее степень детализации, которой должно соответствовать значение. Действительны только значения, соответствующие указанному шаговому интервалу ( min , если он указан, value в противном случае, или соответствующее значение по умолчанию, если ни один из них не указан).

Для атрибута step также можно задать строковое значение any . Это значение step означает, что интервал шага не подразумевается, и в указанном диапазоне допускается любое значение (за исключением других ограничений, таких как min и max ). См. пример Setting step to the any value , чтобы узнать, как это работает в поддерживаемых браузерах.

Примечание. Если значение, введенное пользователем, не соответствует ступенчатой конфигурации, user agent может округлить значение до ближайшего допустимого значения, предпочитая округлять числа в большую сторону при наличии двух одинаково близких вариантов.

Значение шага по умолчанию для входов range равно 1, что позволяет вводить только целые числа, если только основание шага не является целым числом; например, если вы установите для min значение -10, а для value значение 1.5,, тогда значение step , равное 1, позволит использовать только такие значения, как 1.5, 2.5, 3.5,… в положительном направлении и -0.5, -1.5, -2.5,… в отрицательном направлении. См. HTML step attribute .

Non-standard Attributes

orient

Примечание. Следующие входные атрибуты не применяются к входному диапазону: accept , alt , checked , dirname , formaction , formenctype , formmethod , formnovalidate , formtarget , height , maxlength , minlength , multiple , pattern , placeholder , readonly , required , size и src . Любой из этих атрибутов, если он включен, будет игнорироваться.

Examples

Хотя тип number позволяет пользователям вводить число с необязательными ограничениями, заставляющими их значение быть между минимальным и максимальным значением, он требует, чтобы они вводили конкретное значение. Тип ввода range позволяет запрашивать у пользователя значение в тех случаях, когда пользователю может быть все равно — или он не знает — какое именно выбранное числовое значение.

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

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

Как правило, если пользователя больше интересует процентное соотношение между минимальным и максимальным значениями, чем само фактическое число, ввод диапазона является отличным кандидатом. Например, в случае регулятора громкости домашней стереосистемы пользователи обычно думают «установить громкость на полпути к максимуму» вместо «установить громкость на 0.5″.».

Указание минимума и максимума

По умолчанию минимальное значение равно 0, а максимальное — 100. Если это не то, что вам нужно, вы можете легко указать другие границы, изменив значения атрибутов min and/or max . Это могут быть любые значения с плавающей запятой.

Например, чтобы запросить у пользователя значение от -10 до 10, вы можете использовать:

input type="range" min="-10" max="10" />

Настройка детализации значения

По умолчанию степень детализации равна 1, что означает, что значение всегда является целым числом. Чтобы контролировать степень детализации, вы можете изменить атрибут step . Например, если вам нужно, чтобы значение было на полпути между 5 и 10, вы должны установить значение step на 0.5:.

Установка атрибута шага
input type="range" min="5" max="10" step="0.5" />
Установка шага «любой»

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

HTML
input >"pi_input" type="range" min="0" max="3.14" step="any" /> 

Value: output >"value">output>

JavaScript
const value = document.querySelector("#value") const input = document.querySelector("#pi_input") value.textContent = input.value input.addEventListener("input", (event) => < value.textContent = event.target.value >)

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

Добавление делений

Чтобы добавить деления к элементу управления диапазоном, включите атрибут list , присвоив ему id элемента , который определяет ряд делений на элементе управления. Каждая точка представлена с помощью элемента , для которого value задано значение диапазона, в котором должна быть нарисована метка.

HTML
label for="temp">Choose a comfortable temperature: label>br /> input type="range" id="temp" name="temp" list="markers" /> datalist id="markers"> option value="0"> option> option value="25"> option> option value="50"> option> option value="75"> option> option value="100"> option> datalist> 
Result

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

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

Примечание. Если вы также хотите использовать show the labels , как в приведенном ниже примере, вам потребуется datalist для каждого входа диапазона.

HTML
p> label for="temp1">Temperature for room 1: label> input type="range" id="temp1" name="temp1" list="values" /> p> p> label for="temp2">Temperature for room 2: label> input type="range" id="temp2" name="temp2" list="values" /> p> label for="temp3">Temperature for room 3: label> input type="range" id="temp3" name="temp3" list="values" /> p> datalist id="values"> option value="0" label="0"> option> option value="25" label="25"> option> option value="50" label="50"> option> option value="75" label="75"> option> option value="100" label="100"> option> datalist> 
Result

Adding labels

Вы можете пометить деления, присвоив элементам атрибуты label . Однако содержимое ярлыка не будет отображаться по умолчанию. Вы можете использовать CSS, чтобы отобразить метки и правильно их расположить. Вот один из способов сделать это.

HTML
label for="tempB">Choose a comfortable temperature: label>br /> input type="range" id="tempB" name="temp" list="values" /> datalist id="values"> option value="0" label="very cold!"> option> option value="25" label="cool"> option> option value="50" label="medium"> option> option value="75" label="getting warm!"> option> option value="100" label="hot!"> option> datalist> 
CSS
datalist < display: flex; flex-direction: column; justify-content: space-between; writing-mode: vertical-lr; width: 200px; > option < padding: 0; > input[type="range"] < width: 200px; margin: 0; >
Result

Создание элементов управления вертикальным диапазоном

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

Чтобы создать вертикальный диапазон, в котором ручка скользит вверх и вниз, установите для свойства CSS appearance значение slider-vertical и включите нестандартный атрибут orient для Firefox.

Контроль горизонтального диапазона

Рассмотрим этот контроль диапазона:

input type="range" id="volume" min="0" max="11" value="7" step="1" />

Этот элемент управления является горизонтальным (по крайней мере, в большинстве, если не во всех основных браузерах; другие могут vary).

Использование свойства внешнего вида

Свойство appearance имеет нестандартное значение slider-vertical , что делает ползунки вертикальными.

Мы используем тот же HTML, что и в предыдущих примерах:

input type="range" min="0" max="11" value="7" step="1" />

Мы ориентируемся только на входные данные с типом диапазона:

input[type=«range»]

Использование атрибута ориентация

Только в Firefox есть нестандартное свойство orient .

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

input type="range" min="0" max="11" value="7" step="1" orient="vertical" />
writing-mode: bt-lr

Свойство writing-mode , как правило, не следует использовать для изменения направления текста в целях интернационализации или локализации, но его можно использовать для создания специальных эффектов.

Мы используем тот же HTML, что и в предыдущих примерах:

input type="range" min="0" max="11" value="7" step="1" />

Мы нацеливаемся только на входные данные с типом диапазона, изменяя режим записи со значения по умолчанию на bt-lr или снизу вверх и слева направо:

input[type="range"] < writing-mode: bt-lr; >
Собираем все вместе

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

Мы сохраняем атрибут orient со значением vertical для Firefox:

input type="range" min="0" max="11" value="7" step="1" orient="vertical" />

Мы нацелены только на input с type из range и orient , установленным на vertical , изменив writing-mode со значения по умолчанию на bt-lr или снизу вверх и слева направо для версий Edge pre-Blink, и добавим appearance: slider-vertical , который поддерживается в браузерах Blink и Webkit:

input[type="range"][orient="vertical"] < writing-mode: bt-lr; appearance: slider-vertical; >

Какой тип ввода определяет элемент управления slider

Элемент HTML используется для создания интерактивных элементов управления в веб-формах для получения данных от пользователя; в зависимости от устройства и user agent, доступен широкий выбор типов входных данных и виджетов управления. Из-за огромного количества возможных сочетаний типов ввода и атрибутов это один из самых мощных и сложных элементов HTML.

  • Content categories (en-US)Flow content (en-US), listed, submittable, resettable, form-associated element, phrasing content (en-US). If the type has not the hidden value, labellable element, palpable content.
  • Permitted content None, it is an empty element.
  • Tag omission Must have a start tag and must not have an end tag.
  • Permitted parent elements Any element that accepts phrasing content (en-US).
  • DOM interfaceHTMLInputElement (en-US)

Атрибуты

  • Расширение файла, начинающееся с символа точки (U+002E). Наприм., ‘.jpg, .png, .doc)
  • Валидный тип MIME без расширения
  • audio/* для аудиофайлов
  • video/* для видеофайлов
  • image/* для файлов с изображениями

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

  • button : Кнопка без предопределённого поведения.
  • checkbox : Флажок («чекбокс»). Следует использовать атрибут value для определения значения, которое будет отдано этим элементом. Используйте атрибут checked, чтобы указать, должен ли флажок быть выставлен. Можно также использовать атрибут indeterminate, чтобы указать, что флажок находится в неопределённом состоянии (на большинстве платформ при этом рисуется горизонтальная линия поперёк флажка).
  • color : Элемент управления цветом. Пользовательский интерфейс выбора цвета не имеет никаких других функций, кроме принятия простых цветов в виде текста (больше информации).
  • date : Элемент управления для ввода даты (год, месяц и день, без времени).
  • datetime : Элемент управления для ввода даты и времени (час, минута, секунда и доля секунды) в соответствии с часовым поясом UTC.
  • datetime-local : Элемент управления для ввода даты и времени без часового пояса.
  • email : Поле для редактирования адреса электронной почты. Перед отправкой проверяется, что входное значение содержит либо пустую строку, либо один действительный адрес электронной почты. Соответствуют CSS псевдоклассам :valid and :invalid .
  • file : Элемент управления, который позволяет пользователю выбрать файл. Используйте атрибут accept, чтобы определить типы файлов, которые могут быть выбраны.
  • hidden : Элемент управления, которые не отображается, но чьё значение отправлено на сервер.
  • image : Кнопка вставки изображения. Вы должны использовать атрибут src, чтобы определить путь к изображению и атрибут alt — для определения альтернативного текста. Вы можете использовать атрибуты height и width, чтобы определить размер вставки изображения в пикселях.
  • month : Элемент управления для ввода месяца и года без часового пояса.
  • number : Элемент управления ввода числа(тип float).
  • password : Однострочное текстовое поле, чьё значение скрыто символом «звёздочка». Используйте атрибуты minlength и maxlength, чтобы указать минимальную и максимальную длину значения, которое может быть введено.

Примечание: Любые формы, в которых присутствует важная информация(например, пароль), должны быть обработаны через HTTPS; в настоящий момент Firefox реализует составной механизм предупреждения, направленные против небезопасных форм для входа в систему — смотрите Небезопасные пароли (en-US) .

  • min : 0
  • max : 100
  • value : min + ( max — min )/2, or min if max is less than min
  • step : 1

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

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

Определяет «действие-подсказку», которая используется для определения того, как будет обозначаться клавиша enter на мобильных устройствах с виртуальной клавиатурой. Поддерживаемые значения: go , done , next , search , и send ; они автоматически сопоставляются с необходимой строкой (являются чувствительными к регистру).

Этот атрибут указывает, разрешено ли автоматическое заполнение поля браузером. Разрешено по умолчанию, даже если не указано. Данный атрибут игнорируется, если атрибут type равен hidden, password, checkbox , radio , file , или type кнопка ( button , submit , reset , image ). Возможные значения:

  • off : Пользователь должен каждый раз полностью вводить значение в поле или документ предусматривает свой собственный метод автозаполнения; браузер не делает автоматического заполнения записи.
  • on : Браузер автоматически заканчивает значение поля, основываясь на значениях, которые вводились пользователем ранее.Если не атрибут autocomplete не указан в , тогда браузер использует атрибут autocomplete формы, которая является родительской для данной формы. The form owner is either the form element that this element is a descendant of or the form element whose id is specified by the form attribute of the input element. For more information, see the autocomplete attribute in .

This Boolean attribute lets you specify that a form control should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form element in a document can have the autofocus attribute, which is a Boolean. It cannot be applied if the type attribute is set to hidden (that is, you cannot automatically set focus to a hidden control).

This attribute should be defined as a unique value. If the value of the type attribute is search , previous search term values will persist in the dropdown across page load.

When the value of the type attribute is radio or checkbox , the presence of this Boolean attribute indicates that the control is selected by default; otherwise it is ignored.

This Boolean attribute indicates that the form control is not available for interaction. In particular, the click event will not be dispatched on disabled controls. Also, a disabled control’s value isn’t submitted with the form.

The URI of a program that processes the information submitted by the input element, if it is a submit button or image. If specified, it overrides the action attribute of the element’s form owner.

If the input element is a submit button or image, this attribute specifies the type of content that is used to submit the form to the server. Possible values are:

  • application/x-www-form-urlencoded : The default value if the attribute is not specified.
  • multipart/form-data : Use this value if you are using an element with the type attribute set to file .
  • text/plain If this attribute is specified, it overrides the enctype attribute of the element’s form owner.

If the input element is a submit button or image, this attribute specifies the HTTP method that the browser uses to submit the form. Possible values are:

  • post : The data from the form is included in the body of the form and is sent to the server.
  • get : The data from the form are appended to the form attribute URI, with a ‘?’ as a separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.If specified, this attribute overrides the method attribute of the element’s form owner.

If the input element is a submit button or image, this Boolean attribute specifies that the form is not to be validated when it is submitted. If this attribute is specified, it overrides the novalidate attribute of the element’s form owner.

If the input element is a submit button or image, this attribute is a name or keyword indicating where to display the response that is received after submitting the form. This is a name of, or keyword for, a browsing context (for example, tab, window, or inline frame). If this attribute is specified, it overrides the target attribute of the elements’s form owner. The following keywords have special meanings:

  • _self : Load the response into the same browsing context as the current one. This value is the default if the attribute is not specified.
  • _blank : Load the response into a new unnamed browsing context.
  • _parent : Load the response into the parent browsing context of the current one. If there is no parent, this option behaves the same way as _self .
  • _top : Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as _self .

If the value of the type attribute is image , this attribute defines the height of the image displayed for the button.

A hint to the browser for which keyboard to display. This attribute applies when the value of the type attribute is text, password, email, or url. Possible values are:

  • verbatim : Alphanumeric, non-prose content such as usernames and passwords.
  • latin : Latin-script input in the user’s preferred language with typing aids such as text prediction enabled. For human-to-computer communication such as search boxes.
  • latin-name : As latin, but for human names.
  • latin-prose : As latin, but with more aggressive typing aids. For human-to-human communication such as instant messaging for email.
  • full-width-latin : As latin-prose, but for the user’s secondary languages.
  • kana : Kana or romaji input, typically hiragana input, using full-width characters, with support for converting to kanji. Intended for Japanese text input.
  • katakana : Katakana input, using full-width characters, with support for converting to kanji. Intended for Japanese text input.
  • numeric : Numeric input, including keys for the digits 0 to 9, the user’s preferred thousands separator character, and the character for indicating negative numbers. Intended for numeric codes, e.g. credit card numbers. For actual numbers, prefer using
  • tel : Telephone input, including asterisk and pound key. Use if possible instead.
  • email : Email input. Use if possible instead.
  • url : URL input. Use if possible instead.

The maximum (numeric or date-time) value for this item, which must not be less than its minimum (min attribute) value.

If the value of the type attribute is text , email , search , password , tel , or url , this attribute specifies the maximum number of characters (in Unicode code points) that the user can enter; for other control types, it is ignored. It can exceed the value of the size attribute. If it is not specified, the user can enter an unlimited number of characters. Specifying a negative number results in the default behavior; that is, the user can enter an unlimited number of characters. The constraint is evaluated only when the value of the attribute has been changed.

The minimum (numeric or date-time) value for this item, which must not be greater than its maximum (max attribute) value.

If the value of the type attribute is text , email , search , password , tel , or url , this attribute specifies the minimum number of characters (in Unicode code points) that the user can enter; for other control types, it is ignored.

Этот Boolean атрибут указывает, может ли пользователь вводить несколько значений. Этот атрибут применяется, если для атрибута type задано значение email или file ; в противном случае он игнорируется.

The name of the control, which is submitted with the form data.

A regular expression that the control’s value is checked against. The pattern must match the entire value, not just some subset. Use the title attribute to describe the pattern to help the user. This attribute applies when the value of the type attribute is text , search , tel , url or email ; otherwise it is ignored. The regular expression language is the same as JavaScript’s. The pattern is not surrounded by forward slashes.

A hint to the user of what can be entered in the control . The placeholder text must not contain carriage returns or line-feeds. This attribute applies when the value of the type attribute is text , search , tel , url or email ; otherwise it is ignored.

This Boolean attribute indicates that the user cannot modify the value of the control. This attribute is ignored if the value of the type attribute is hidden , range , color , checkbox , radio , file , or a button type.

This attribute specifies that the user must fill in a value before submitting a form. It cannot be used when the type attribute is hidden , image , or a button type ( submit , reset , or button ). The :optional and :required CSS pseudo-classes will be applied to the field as appropriate.

The direction in which selection occurred. This is «forward» if the selection was made from left-to-right in an LTR locale or right-to-left in an RTL locale, or «backward» if the selection was made in the opposite direction. This can be «none» if the selection direction is unknown.

The initial size of the control. This value is in pixels unless the value of the type attribute is text or password , in which case, it is an integer number of characters. Starting in HTML5, this attribute applies only when the type attribute is set to text , search , tel , url , email , or password ; otherwise it is ignored. In addition, the size must be greater than zero. If you don’t specify a size, a default value of 20 is used.

Setting the value of this attribute to true indicates that the element needs to have its spelling and grammar checked. The value default indicates that the element is to act according to a default behavior, possibly based on the parent element’s own spellcheck value. The value false indicates that the element should not be checked.

If the value of the type attribute is image , this attribute specifies a URI for the location of an image to display on the graphical submit button; otherwise it is ignored.

Works with the min and max attributes to limit the increments at which a numeric or date-time value can be set. It can be the string any or a positive floating point number. If this attribute is not set to any , the control accepts only values at multiples of the step value greater than the minimum.

The position of the element in the tabbing navigation order for the current document.

The initial value of the control. This attribute is optional except when the value of the type attribute is radio or checkbox . Note that when reloading the page, Gecko and IE will ignore the value specified in the HTML source, if the value was changed before the reload.

If the value of the type attribute is image , this attribute defines the width of the image displayed for the button.

This Mozilla extension allows you to specify the error message to display when a field doesn’t successfully validate.

Notes

File inputs

Примечание: Starting in Gecko 2.0, calling the click() method on an element of type «file» opens the file picker and lets the user select files. See Using files from web applications for an example and more details.

You can’t set the value of a file picker from a script; doing something like the following has no effect:

var e = getElementById("someFileInputElement"); e.value = "foo"; 

Error messages

If you want Firefox to present a custom error message when a field fails to validate, you can use the x-moz-errormessage attribute to do so:

input type="email" x-moz-errormessage="Please specify a valid email address." /> 

Note, however, that this is not standard and will not have an effect on other browsers.

Examples

A simple input box

input type="text" name="input" value="Type here" /> 

A common use-case scenario

form action="getform.php" method="get"> First name: input type="text" name="first_name" />br /> Last name: input type="text" name="last_name" />br /> E-mail: input type="email" name="user_email" />br /> input type="submit" value="Submit" /> form> 

Using mozactionhint on Firefox mobile

You can use the mozactionhint attribute to specify the text for the label of the enter key on the virtual keyboard when your form is rendered on Firefox mobile. For example, to have a «Next» label, you can do this:

input type="text" mozactionhint="next" name="sometext" /> 

mozactionhint.png

Specifications

Specification
HTML Standard
# the-input-element

Совместимость с браузерами

BCD tables only load in the browser

[1] Распознаётся, но UI отсутствует.

[2] Отсутствует для type=»checkbox» и type=»radio» .

[3] В Safari autocapitalize=»words» переводит в верхний регистр каждый второй символ слова.

[4] datetime был удалён из спецификации и браузеров в пользу datetime-local .

Gecko notes

Starting in Gecko 9.0, Firefox for Android lets users capture images using their camera and upload them, without having to leave the browser. Web developers can implement this feature by simply specifying setting the accept attribute’s value to «image/*» on their file input, like this:

Firefox for Android sets a default background-image gradient on all type=»text» , type=»file» , type=»button» , and type=»submit» inputs. This can be disabled using background-image: none .

Firefox for Android also sets a default border on all elements.

See also

  • Other form-related elements: , , , , , , , , (en-US), , , , and .
  • Cross-browser HTML5 placeholder text

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 11 окт. 2023 г. by MDN contributors.

Your blueprint for a better internet.

Какой тип ввода определяет элемент управления slider

Если используемый браузер не поддерживает тип range , он будет отображаться как input text (en-US).

Value DOMString , содержащий строковое представление выбранного числового значения; используйте valueAsNumber чтобы получить значение Number .
События change (en-US) и input (en-US)
Поддерживаемые общие атрибуты autocomplete , list , max , min , and step
IDL атрибуты list , value , и valueAsNumber
Методы stepDown() (en-US) и stepUp() (en-US)

Валидация

Для этого поля нет доступного паттерна валидации, но следующая валидация реализованы следующие проверки

  • Если значение value содержит что-то что не может быть конвертированно в число с плавающей точкой, произойдёт ошибка некорректного ввода.
  • Значение не может быть меньше чем min . По умолчанию: 0.
  • Значение не может быть больше чем max . По умолчанию: 100.
  • Значение должно кратно step . По умолчанию: 1.

Атрибут value содержит DOMString , который содержит строковое представление выбранного числа. Значение никогда не является пустой строкой ( «» ). Значение, по умолчанию, находится посередине, между указанными минимальным и максимальным значениями — если максимум оказывается меньше минимума, то значение по умолчанию приравнивается к значению атрибута min . Алгоритм определения значения по умолчанию:

= rangeElem.max  rangeElem.min ? rangeElem.min : rangeElem.min + (rangeElem.max - rangeElem.min) / 2; 

Если предпринята попытка установить значение меньше минимального, то оно примет значение атрибута min. Аналогично, попытка установить значение больше максимального, приведёт к установлению значения равного атрибуту max.

Дополнительные атрибуты

В дополнение к атрибутам, общим для всех элементов , range инпуты предлагают следующие атрибуты:

Attribute Description
list id элемента , который содержит предопределённые значение (не обязательно)
max Максимальное допустимое значение
min Минимальное допустимое значение
step Шаговый, используемый для пользовательского интерфейса и для проверки

list

The values of the list attribute is the id of a element located in the same document. The provides a list of predefined values to suggest to the user for this input. Any values in the list that are not compatible with the type are not included in the suggested options. The values provided are suggestions, not requirements: users can select from this predefined list or provide a different value.

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

max

Это значение должно быть больше или равно значению атрибута min .

min

Наименьшее значение в диапазоне допустимых значений. Если value , введённый в элемент, меньше этого значения, то элемент не проходит проверку ограничения (en-US) . Если значение атрибута min не является числом, то элемент не имеет максимального значения.

Это значение должно быть меньше или равно значению атрибута max .

step

По умолчанию шаг для инпута с типом range равен 1, допустим ввод только целых чисел, если база шага не является целым; например, если вы установили min на -10 и value на 1.5, то step 1 позволит только такие значения как 1.5, 2.5, 3.5. в положительном направлении и -0.5, -1.5, -2.5. в отрицательном направлении.

Не стандартные атрибуты

Attribute Description
orient Устанавливает ориентацию слайдера. Firefox only.

orient Non-standard

Примечание: Note: Следующие атрибуты не применимы: accept , alt , checked , dirname , formaction , formenctype , formmethod , formnovalidate , formtarget , height , maxlength , minlength , multiple , pattern , placeholder , readonly , required , size , src , и width . Каждый из них будет проигнорирован в случае употребления.

Examples

Пока тип number позволяет пользователям вводить число с дополнительными ограничениями, заставляя их значения находиться между максимальным и минимальным, он требует, чтобы они вводили определённое значение. Инпут с типом range позволяет вам запрашивать у пользователя значение в тех случаях, когда пользователь не может даже знать — каково выбранное конкретное числовое значение.

Несколько примеров основный ситуаций, в которых инпуты с range используются:

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

Как правило, если пользователь в большей степени интересуется процентным значением между минимумом и максимумом, нежели реальным значением, range инпут является отличным решением. Например, в случае с контролем громкости домашнего стерео, обычно пользователь думает «установить громкости наполовину максимума» вместо «установить громкость на 0.5».

Указание минимума и максимума

По умолчанию, минимум равен 0, а максимум равен 100. Если вас это не устраивает, вы можете с лёгкостью указать другие границы, изменив значения атрибутов min и/или max . Они могут быть принимать любые значения с плавающей точкой.

Например, указать диапазон значений между -10 и 10, вы можете, используя:

input type="range" min="-10" max="10" /> 

Настройка детализации значения

По умолчанию, степень детализации равна 1, тем самым показывая, что значение всегда является целым числом. Вы можете изменить атрибут step контроля степени детализации. Например, если вам нужно значение между 5 и 10, с точностью до двух знаков после запятой, вы должны установить значение step на 0.01:

input type="range" min="5" max="10" step="0.01" /> 

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

input type="range" min="0" max="3.14" step="any" /> 

Этот пример позволяет пользователю выбрать любое значение между 0 и π без ограничений на разрядность.

Добавление хэш-меток и лейблов

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

Макеты контроллера диапазона

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

Недекорированный контроллер диапазона

Этот результат вы получите, если не укажите атрибут list , или браузер не будет его поддерживать.

input type="range">
Контроллер диапазона с хэш-метками
input type="range" list="tickmarks"> datalist id="tickmarks"> option value="0"> option value="10"> option value="20"> option value="30"> option value="40"> option value="50"> option value="60"> option value="70"> option value="80"> option value="90"> option value="100"> datalist> 
Контроллер диапазона с хэш-метками и лейблами

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

input type="range" list="tickmarks"> datalist id="tickmarks"> option value="0" label="0%"> option value="10"> option value="20"> option value="30"> option value="40"> option value="50" label="50%"> option value="60"> option value="70"> option value="80"> option value="90"> option value="100" label="100%"> datalist> 

Примечание: В настоящее время ни один браузер полностью не поддерживает эти возможности. Firefox не поддерживает хэш-метки и лейблы, например, в то время как Chrome поддерживает хэш-метки, но не поддерживает лейблы. Версия 66 (66.0.3359.181) Chrome поддерживает лейблы, но тэг должен быть стилизован с помощью CSS, так как его свойство display по умолчанию — none , тем самым скрывая лейблы.

Изменение ориентации

По умолчанию, если браузер отображает инпут диапазона как слайдер, он отобразит его так чтоб ползунок ездил в право и в лево. Когда поддержка браузерами будет реализовано, можно будет делать слайдер вертикальным, так чтобы ползунок мог ездить вверх и вниз. Ни один из наиболее используемых браузеров не имплементировал это пока. (Firefox баг 981916, Chrome bug 341071). также, возможно, следующий баг под вопросом.

В реальности, мы можем сделать слайдер вертикальным используя CSS трансформации, или применяя уникальный метод для каждого браузера в отдельности, включая: настройки appearance для slider-vertical , использование нестандартной ориентации orient в Firefox,или изменение text direction для Internet Explorer и Edge

Рассмотрим контроллер диапазона:

input type="range" id="volume" min="0" max="11" value="7" step="1" /> 

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

Standards

Следуя спецификации, сделать его вертикальным также просто как добавить CSS, чтобы изменить размеры контроллера, чтобы его высота оказалась больше ширины:

CSS
#volume  height: 150px; width: 50px; > 
HTML
input type="range" id="volume" min="0" max="11" value="7" step="1" /> 
Результат

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

transform: rotate(-90deg)

Но вы, всё же, можете сделать вертикальный контролл используя горизонтальный контролл. Самый простой способ — использовать CSS: применяя transform для поворота элемента на 90 градусов. Посмотрим:

HTML
div class="slider-wrapper"> input type="range" min="0" max="11" value="7" step="1" /> div> 
CSS

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

.slider-wrapper  display: inline-block; width: 20px; height: 150px; padding: 0; > 

Затем информация о стиле элемента в зарезервированном пространстве:

.slider-wrapper input  width: 150px; height: 20px; margin: 0; transform-origin: 75px 75px; transform: rotate(-90deg); > 

Размеры контроллера это набор из 150 пикселей длины и 20 пикселей высоты. Маржинги установлены на 0 и transform-origin (en-US) смещается в середину пространства, на котором вращается слайдер; поскольку слайдер имеет ширину 150 пикселей, он вращается через прямоугольник по 150 пикселей с каждой стороны. Смещение начала координат на 75px по каждой оси означает, что мы будем вращаться вокруг центра этого пространства. Наконец, мы поворачиваем против часовой стрелки на 90°. Результат: инпут range, который вращается таким образом, что максимальное значение находится сверху, а минимальное снизу.

appearance property

Свойство appearance имеет нестандартное значение slider-vertical , которое делает слайдер вертикальным.

HTML

Используем тот же HTML что и в предыдущем примере:

input type="range" min="0" max="11" value="7" step="1" /> 
CSS

Берём только те инпуты что имеют тип range:

input[type="range"]  -webkit-appearance: slider-vertical; > 

orient attribute

В Firefox, реализовано нестандартное свойство orient .

HTML

Используем тот же HTML что и в предыдущем примере и добавляем атрибут со значением vertical :

input type="range" min="0" max="11" value="7" step="1" orient="vertical" /> 

writing-mode: bt-lr

Свойство writing-mode может быть использовано для специальных эффектов

HTML

Используем тот же HTML что и в предыдущем примере:

input type="range" min="0" max="11" value="7" step="1" /> 
CSS

Берём только те инпуты что имеют тип range, меняем writing mode с default на bt-lr , или bottom-to-top и left-to-right:

input[type="range"]  writing-mode: bt-lr; > 

Все вместе

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

HTML

Оставим orient атрибут со значением vertical для Firefox:

input type="range" min="0" max="11" value="7" step="1" orient="vertical" /> 
CSS

Берём только те инпуты что имеют тип range, меняем writing mode с default на bt-lr , или bottom-to-top и left-to-right, для Edge и Internet Explorer, и добавляем -webkit-appearance: slider-vertical для всех -webkit-based браузеров:

input[type="range"]  writing-mode: bt-lr; -webkit-appearance: slider-vertical; > 

Спецификации

Specification
HTML Standard
# range-state-(type=range)

Поддержка браузерами

BCD tables only load in the browser

Смотрите также

  • HTML Forms
  • и интерфейс HTMLInputElement (en-US), на котором он основан
  • validityState.rangeOverflow и validityState.rangeUnderflow
  • Controlling multiple parameters with ConstantSourceNode (en-US)
  • Styling the range element
  • Compatibility of CSS properties (en-US)

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 4 авг. 2023 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

  • Product help
  • Report an issue

Our communities

Developers

  • Web Technologies
  • Learn Web Development
  • MDN Plus
  • Hacks Blog
  • Website Privacy Notice
  • Cookies
  • Legal
  • Community Participation Guidelines

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.

HTML type Attribute

HTML форма с двумя различными типами входов; текст и представить:

Больше «Попробуйте сами» примеры ниже.

Определение и использование

type атрибута определяет тип элемента для отображения. По умолчанию используется тип: text . Совет: Это не является обязательным атрибутом, но мы думаем , что вы всегда должны включить его.

Поддержка браузеров

Атрибут
type да да да да да

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

Отличия между HTML 4.01 и HTML5

HTML5 имеет следующие новые типы входных данных: color, date, datetime, datetime-local, month, week, time, email, number, range, search, tel — url color, date, datetime, datetime-local, month, week, time, email, number, range, search, tel — color, date, datetime, datetime-local, month, week, time, email, number, range, search, tel , и url — url .

Синтаксис

значения атрибутов

Стоимость Описание
button Определяет кнопку кликабельны (в основном используется с JavaScript для активации скрипта)
checkbox Определяет флажок
color Определяет цветовую палитру
date Определяет элемент управления даты (год, месяц и день (нет времени))
datetime Тип ввода даты и времени был удален из стандарта HTML. Вместо этого используйте DateTime локальное.
datetime-local Определяет дату и время контроля (год, месяц, день, час, минута, секунда, и доли секунды (без часового пояса)
email Определяет поле для электронной почты
file Определяет поле файла-выберите и кнопку «Обзор . » (для загрузки файлов)
hidden Определяет скрытое поле ввода
image Определяет изображение как кнопку отправки
month Определяет месяц и год контроль (без часового пояса)
number Определяет поле для ввода номера
password Определяет поле пароля (символы маскируются)
radio Определяет кнопку радио
range Определяет элемент управления для ввода номера точное значение которого не имеет значения (например, элемент управления слайдер)
reset Определяет кнопку сброса (сбрасывает все значения формы значения по умолчанию)
search Определяет текстовое поле для ввода строки поиска
submit Определяет кнопку отправки
tel Определяет поле для ввода телефонного номера
text По умолчанию. Определяет текстовое поле из одной строки (ширина по умолчанию составляет 20 символов)
time Определяет элемент управления для ввода времени (без часового пояса)
url Определяет поле для ввода URL
week Определяет в неделю и год контроль (без часового пояса)

Примеры

Тип входа: button

пример

Интерактивными кнопка, которая активирует JavaScript при щелчке:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *