<input type="range">
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since маÑÑ 2017 г..
* Some parts of this feature may have varying levels of support.
ÐлеменÑÑ <input> Ñ Ñипом range позволÑÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¾Ð¿ÑеделиÑÑ ÑиÑловое знаÑение, коÑоÑое должно бÑÑÑ Ð² пÑеделаÑ
Ñказанного пÑомежÑÑка. Ðднако, ÑоÑное знаÑение должно бÑÑÑ Ð½Ðµ ÑлиÑком важно. ÐбÑÑно они пÑедÑÑавлÑÐµÑ Ñобой ÑÐ»Ð°Ð¹Ð´ÐµÑ Ð¸Ð»Ð¸ конÑÑоллеÑ, но не ÑекÑÑовое поле как number. Так как ÑÑÐ¾Ñ Ð²Ð¸Ð´Ð¶ÐµÑ Ð½ÐµÑоÑен, его не ÑледÑÐµÑ Ð¸ÑполÑзоваÑÑ, в ÑлÑÑае, еÑли важно ÑÑÑановиÑÑ ÑоÑное знаÑение .
ÐнÑеÑакÑивнÑй пÑимеÑ
<p>Audio settings:</p>
<div>
<input type="range" id="volume" name="volume" min="0" max="11" />
<label for="volume">Volume</label>
</div>
<div>
<input
type="range"
id="cowbell"
name="cowbell"
min="0"
max="100"
value="90"
step="10" />
<label for="cowbell">Cowbell</label>
</div>
p,
label {
font:
1rem "Fira Sans",
sans-serif;
}
input {
margin: 0.4rem;
}
ÐÑли иÑполÑзÑемÑй бÑаÑÐ·ÐµÑ Ð½Ðµ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ñип range, он бÑÐ´ÐµÑ Ð¾ÑобÑажаÑÑÑÑ ÐºÐ°Ðº inputtext.
| Value | String, ÑодеÑжаÑий ÑÑÑоковое пÑедÑÑавление вÑбÑанного ÑиÑлового знаÑениÑ; иÑполÑзÑйÑе valueAsNumber ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð·Ð½Ð°Ñение Number. |
|---|---|
| СобÑÑÐ¸Ñ | change и input |
| ÐоддеÑживаемÑе обÑие аÑÑибÑÑÑ | autocomplete, list, max, min, and step |
| IDL аÑÑибÑÑÑ | list, value, и valueAsNumber |
| ÐеÑÐ¾Ð´Ñ | stepDown() и stepUp() |
ÐалидаÑиÑ
ÐÐ»Ñ ÑÑого Ð¿Ð¾Ð»Ñ Ð½ÐµÑ Ð´Ð¾ÑÑÑпного паÑÑеÑна валидаÑии, но ÑледÑÑÑÐ°Ñ Ð²Ð°Ð»Ð¸Ð´Ð°ÑÐ¸Ñ ÑÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ñ ÑледÑÑÑие пÑовеÑки
- ÐÑли знаÑение
valueÑодеÑÐ¶Ð¸Ñ ÑÑо-Ñо ÑÑо не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÐºÐ¾Ð½Ð²ÐµÑÑиÑованно в ÑиÑло Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой, пÑоизойдÑÑ Ð¾Ñибка некоÑÑекÑного ввода. - ÐнаÑение не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¼ÐµÐ½ÑÑе Ñем
min. Ðо ÑмолÑаниÑ: 0. - ÐнаÑение не Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð±Ð¾Ð»ÑÑе Ñем
max. Ðо ÑмолÑаниÑ: 100. - ÐнаÑение должно кÑаÑно
step. Ðо ÑмолÑаниÑ: 1.
ÐÑÑибÑÑ value ÑодеÑÐ¶Ð¸Ñ String, коÑоÑÑй ÑодеÑÐ¶Ð¸Ñ ÑÑÑоковое пÑедÑÑавление вÑбÑанного ÑиÑла. ÐнаÑение никогда не ÑвлÑеÑÑÑ Ð¿ÑÑÑой ÑÑÑокой (""). ÐнаÑение, по ÑмолÑаниÑ, наÑ
одиÑÑÑ Ð¿Ð¾ÑеÑедине, Ð¼ÐµÐ¶Ð´Ñ ÑказаннÑми минималÑнÑм и макÑималÑнÑм знаÑениÑми â еÑли макÑимÑм оказÑваеÑÑÑ Ð¼ÐµÐ½ÑÑе минимÑма, Ñо знаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑиÑавниваеÑÑÑ Ðº знаÑÐµÐ½Ð¸Ñ Ð°ÑÑибÑÑа min. ÐлгоÑиÑм опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑаниÑ:
defaultValue =
rangeElem.max < rangeElem.min
? rangeElem.min
: rangeElem.min + (rangeElem.max - rangeElem.min) / 2;
ÐÑли пÑедпÑинÑÑа попÑÑка ÑÑÑановиÑÑ Ð·Ð½Ð°Ñение менÑÑе минималÑного, Ñо оно пÑÐ¸Ð¼ÐµÑ Ð·Ð½Ð°Ñение аÑÑибÑÑа min. ÐналогиÑно, попÑÑка ÑÑÑановиÑÑ Ð·Ð½Ð°Ñение болÑÑе макÑималÑного, пÑиведÑÑ Ðº ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ñавного аÑÑибÑÑÑ max.
ÐополниÑелÑнÑе аÑÑибÑÑÑ
Рдополнение к обÑим Ð´Ð»Ñ Ð²ÑеÑ
ÑлеменÑов <input> аÑÑибÑÑам Ð¿Ð¾Ð»Ñ Ð²Ð²Ð¾Ð´Ð° диапазона поддеÑживаÑÑ ÑледÑÑÑие аÑÑибÑÑÑ.
list
ÐнаÑением аÑÑибÑÑа list ÑвлÑеÑÑÑ id ÑлеменÑа <datalist>, наÑ
одÑÑегоÑÑ Ð² ÑÑом докÑменÑе. <datalist> ÑодеÑÐ¶Ð¸Ñ ÑпиÑок пÑедÑÑÑановленнÑÑ
знаÑений, из коÑоÑÑÑ
полÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²ÑбÑаÑÑ Ð¿Ð¾Ð´Ñ
одÑÑее. ÐнаÑениÑ, неÑовмеÑÑимÑе Ñ Ñипом, не ÑÑановÑÑÑÑ Ð´Ð¾ÑÑÑпнÑми Ð´Ð»Ñ Ð²ÑбоÑа. СпиÑок ÑÑиÑ
знаÑений â Ð½Ð°Ð±Ð¾Ñ Ð¿Ð¾Ð´Ñказок, но вÑÐ±Ð¾Ñ Ð½Ðµ огÑаниÑен ÑолÑко ими, полÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð²Ð²ÐµÑÑи и ÑÐ²Ð¾Ñ Ð·Ð½Ð°Ñение.
max
ÐаиболÑÑее допÑÑÑимое знаÑение. ÐÑли value ÑлеменÑа пÑевÑÑÐ°ÐµÑ ÑÑого знаÑениÑ, ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ðµ пÑоÑ
Ð¾Ð´Ð¸Ñ Ð¿ÑовеÑÐºÑ Ð¾Ð³ÑаниÑений. ÐÑли знаÑение аÑÑибÑÑа max не ÑвлÑеÑÑÑ ÑиÑлом, Ñо Ñ ÑлеменÑа Ð½ÐµÑ Ð¼Ð°ÐºÑималÑного знаÑениÑ.
ÐÑо знаÑение должно бÑÑÑ Ð±Ð¾Ð»ÑÑе или Ñавно знаÑÐµÐ½Ð¸Ñ Ð°ÑÑибÑÑа min. СмоÑÑиÑе Ñакже HTML-аÑÑибÑÑ max.
min
ÐаименÑÑее допÑÑÑимое знаÑение. ÐÑли value ÑлеменÑа менÑÑе ÑÑого знаÑениÑ, ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð½Ðµ пÑоÑ
Ð¾Ð´Ð¸Ñ Ð¿ÑовеÑÐºÑ Ð¾Ð³ÑаниÑений. ÐÑли знаÑение аÑÑибÑÑа min не ÑвлÑеÑÑÑ ÑиÑлом, Ñо Ñ ÑлеменÑа Ð½ÐµÑ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»Ñного знаÑениÑ.
ÐÑо знаÑение должно бÑÑÑ Ð¼ÐµÐ½ÑÑе или Ñавно знаÑÐµÐ½Ð¸Ñ Ð°ÑÑибÑÑа max. СмоÑÑиÑе Ñакже HTML-аÑÑибÑÑ min.
ÐÑимеÑание:
ÐÑли знаÑÐµÐ½Ð¸Ñ min и max ÑÐ°Ð²Ð½Ñ Ð¸Ð»Ð¸ max менÑÑе min, Ñо Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð½Ðµ бÑÐ´ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи взаимодейÑÑвоваÑÑ Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð¼.
step
ÐÑÑибÑÑ step â ÑÑо ÑиÑло, ÑказÑваÑÑее ÑÑÐ¾Ð²ÐµÐ½Ñ ÑоÑноÑÑи, коÑоÑÐ¾Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ ÑооÑвеÑÑÑвоваÑÑ Ð·Ð½Ð°Ñение. ÐопÑÑÑÐ¸Ð¼Ñ ÑолÑко знаÑениÑ, ÑооÑвеÑÑÑвÑÑÑие ÑÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¼Ñ ÑазмеÑÑ Ñага (min, еÑли Ñказано, value в пÑоÑивном ÑлÑÑае или лÑбое подÑ
одÑÑее знаÑение по ÑмолÑаниÑ, еÑли не Ñказано ни Ñо, ни дÑÑгое).
ÐÑÑибÑÑ step Ñакже Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ ÑÑÑоковое знаÑение any. Такое знаÑение ознаÑаеÑ, ÑÑо поÑаговое изменение не подÑазÑмеваеÑÑÑ Ð¸ ÑазÑеÑÐµÐ½Ñ Ð»ÑбÑе знаÑÐµÐ½Ð¸Ñ (за иÑклÑÑением дÑÑгиÑ
огÑаниÑений, ÑакиÑ
как min and max).
ÐÑимеÑание: Ðогда введÑннÑе полÑзоваÑелем даннÑе не ÑооÑвеÑÑÑвÑÑÑ Ð¿Ð¾Ñаговой конÑигÑÑаÑии, Ð°Ð³ÐµÐ½Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¾ÐºÑÑгление до ближайÑего допÑÑÑимого знаÑениÑ, пÑедпоÑиÑÐ°Ñ ÑиÑла в положиÑелÑном напÑавлении, когда еÑÑÑ Ð´Ð²Ð° одинаково Ð±Ð»Ð¸Ð·ÐºÐ¸Ñ Ð²Ð°ÑианÑа.
Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÐ°Ð·Ð¼ÐµÑ Ñага Ð´Ð»Ñ Ð¿Ð¾Ð»ÐµÐ¹ ввода range Ñавен 1, ÑÑо допÑÑÐºÐ°ÐµÑ Ð²Ð²Ð¾Ð´ ÑолÑко ÑелÑÑ
ÑиÑел, пока ÑÐ°Ð·Ð¼ÐµÑ Ñага ÑвлÑеÑÑÑ ÑелÑм ÑиÑлом. ÐапÑимеÑ, еÑли ÑÑÑановиÑÑ min в -10, а value в 1.5, Ñо step ÑавнÑй 1 бÑÐ´ÐµÑ Ð´Ð¾Ð¿ÑÑкаÑÑ ÑолÑко Ñакие знаÑениÑ, как 1.5, 2.5, 3.5,⦠болÑÑе нÑÐ»Ñ Ð¸ -0.5, -1.5, -2.5,⦠менÑÑе нÑлÑ. СмоÑÑиÑе Ñакже HTML-аÑÑибÑÑ step.
ÐеÑÑандаÑÑнÑе аÑÑибÑÑÑ
| Attribute | Description |
|---|---|
orient |
УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ð¾ÑиенÑаÑÐ¸Ñ ÑлайдеÑа. Firefox only. |
orient-
ÐÐ¾Ñ Ð¾Ð¶Ðµ на -moz-orient не ÑÑандаÑÑное CSS-ÑвойÑÑво влиÑÑÑее на
<progress>и<meter>ÑлеменÑÑ,orientаÑÑибÑÑ Ð¾Ð¿ÑеделÑем оÑиенÑаÑÐ¸Ñ ÑлайдеÑа. ÐнаÑениеhorizontal, знаÑÐ¸Ñ ÑÑо ÑÐ»Ð°Ð¹Ð´ÐµÑ Ð±ÑÐ´ÐµÑ Ð¾ÑобÑажÑн гоÑизонÑалÑно, аvertical- ÑÑо веÑÑикалÑно .
ÐÑимеÑание:
СледÑÑÑие аÑÑибÑÑÑ Ð½Ðµ пÑименимÑ: 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 и ÑÐ»ÐµÐ¼ÐµÐ½Ñ <datalist>, но не Ð¸Ð¼ÐµÐµÑ ÑÑебований или ÑекомендаÑий по ÑÑандаÑÑизаÑии Ñ
ÑÑ-меÑок и лейблов по длине конÑÑоллеÑа.
ÐакеÑÑ ÐºÐ¾Ð½ÑÑоллеÑа диапазона
Так как бÑаÑзеÑÑ Ð¸Ð¼ÐµÑÑ ÑÑÑ Ð³Ð¸Ð±ÐºÐ¾ÑÑÑ, и на ÑегоднÑÑний Ð´ÐµÐ½Ñ Ð½Ð¸ один из Ð½Ð¸Ñ Ð½Ðµ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð²Ñе возможноÑÑи, опÑеделÑннÑе HTML, пÑедÑÑавлÑем неÑколÑко макеÑов, показÑваÑÑÐ¸Ñ ÐºÐ°Ðº Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе полÑÑиÑÑ Ð½Ð° macOS в бÑаÑзеÑе, коÑоÑÑй Ð¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаеÑ.
ÐедекоÑиÑованнÑй конÑÑÐ¾Ð»Ð»ÐµÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð°
ÐÑÐ¾Ñ ÑезÑлÑÑÐ°Ñ Ð²Ñ Ð¿Ð¾Ð»ÑÑиÑе, еÑли не ÑкажиÑе аÑÑибÑÑ list, или бÑаÑÐ·ÐµÑ Ð½Ðµ бÑÐ´ÐµÑ ÐµÐ³Ð¾ поддеÑживаÑÑ.
| HTML | Screenshot |
|---|---|
html |
|
ÐонÑÑÐ¾Ð»Ð»ÐµÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð° Ñ Ñ ÑÑ-меÑками
ÐонÑÑÐ¾Ð»Ð»ÐµÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð°, иÑполÑзÑÑÑий аÑÑибÑÑ list, ÑказÑваÑÑий ID <datalist>, коÑоÑÑй опÑеделÑÐµÑ ÑеÑÐ¸Ñ Ñ
ÑÑ-меÑок на конÑÑоллеÑе. ÐÑ
одиннадÑаÑÑ, одна на 0% и на каждой оÑмеÑки 10%. ÐÐ°Ð¶Ð´Ð°Ñ ÑоÑка пÑедÑÑавлена Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑлеменÑа <option> Ñ ÐµÐ³Ð¾ набоÑом value знаÑений диапазона, пÑи коÑоÑом должна бÑÑÑ Ð½Ð°ÑиÑована меÑка.
| HTML | Screenshot |
|---|---|
|
html
|
|
ÐонÑÑÐ¾Ð»Ð»ÐµÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð° Ñ Ñ ÑÑ-меÑками и лейблами
ÐÑ Ð¼Ð¾Ð¶ÐµÑе добавиÑÑ Ð»ÐµÐ¹Ð±Ð»Ñ Ð² Ñвой конÑÑÐ¾Ð»Ð»ÐµÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð¾Ð², добавив аÑÑибÑÑ label ÑлеменÑам <option>, ÑооÑвеÑÑÑвÑÑÑим знаÑениÑм, на коÑоÑÑÑ
Ð²Ñ Ð±Ñ Ñ
оÑели видеÑÑ Ð»ÐµÐ¹Ð±Ð»Ñ.
| HTML | Screenshot |
|---|---|
|
html
|
|
ÐÑимеÑание:
РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð½Ð¸ один бÑаÑÐ·ÐµÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð½Ðµ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑÑи возможноÑÑи. Firefox не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ñ
ÑÑ-меÑки и лейблÑ, напÑимеÑ, в Ñо вÑÐµÐ¼Ñ ÐºÐ°Ðº Chrome поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ñ
ÑÑ-меÑки, но не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð»ÐµÐ¹Ð±Ð»Ñ. ÐеÑÑÐ¸Ñ 66 (66.0.3359.181) Chrome поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð»ÐµÐ¹Ð±Ð»Ñ, но ÑÑг <datalist> должен бÑÑÑ ÑÑилизован Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ CSS, Ñак как его ÑвойÑÑво display по ÑмолÑÐ°Ð½Ð¸Ñ - none, Ñем ÑамÑм ÑкÑÑÐ²Ð°Ñ Ð»ÐµÐ¹Ð±Ð»Ñ.
Ðзменение оÑиенÑаÑии
Ðо ÑмолÑаниÑ, еÑли бÑаÑÐ·ÐµÑ Ð¾ÑобÑÐ°Ð¶Ð°ÐµÑ Ð¸Ð½Ð¿ÑÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð° как ÑлайдеÑ, он оÑобÑÐ°Ð·Ð¸Ñ ÐµÐ³Ð¾ Ñак ÑÑоб ползÑнок ездил в пÑаво и в лево. Ðогда поддеÑжка бÑаÑзеÑами бÑÐ´ÐµÑ Ñеализовано, можно бÑÐ´ÐµÑ Ð´ÐµÐ»Ð°ÑÑ ÑÐ»Ð°Ð¹Ð´ÐµÑ Ð²ÐµÑÑикалÑнÑм, Ñак ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»Ð·Ñнок мог ездиÑÑ Ð²Ð²ÐµÑÑ Ð¸ вниз. Ðи один из наиболее иÑполÑзÑемÑÑ Ð±ÑаÑзеÑов не имплеменÑиÑовал ÑÑо пока. (Firefox Firefox bug 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
Ð HTML нÑжно добавиÑÑ Ð¾Ð±ÑÑÑÐºÑ Ð²Ð¾ÐºÑÑг <input> - <div>, ÑÑо Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð½Ð°Ð¼ иÑпÑавиÑÑ Ð¼Ð°ÐºÐµÑ Ð¿Ð¾Ñле вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑанÑÑоÑмаÑии (Ñ.к. ÑÑанÑÑоÑмаÑÐ¸Ñ Ð°Ð²ÑомаÑиÑеÑки не влиÑÐµÑ Ð½Ð° Ð¼Ð°ÐºÐµÑ ÑÑÑаниÑÑ):
<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;
}
ÐаÑем инÑоÑмаÑÐ¸Ñ Ð¾ ÑÑиле ÑлеменÑа <input> в заÑезеÑвиÑованном пÑоÑÑÑанÑÑве:
.slider-wrapper input {
width: 150px;
height: 20px;
margin: 0;
transform-origin: 75px 75px;
transform: rotate(-90deg);
}
РазмеÑÑ ÐºÐ¾Ð½ÑÑоллеÑа ÑÑо Ð½Ð°Ð±Ð¾Ñ Ð¸Ð· 150 пикÑелей Ð´Ð»Ð¸Ð½Ñ Ð¸ 20 пикÑелей вÑÑоÑÑ. ÐаÑжинги ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð½Ð° 0 и transform-origin ÑмеÑаеÑÑÑ Ð² ÑеÑÐµÐ´Ð¸Ð½Ñ Ð¿ÑоÑÑÑанÑÑва, на коÑоÑом вÑаÑаеÑÑÑ ÑлайдеÑ; поÑколÑÐºÑ ÑÐ»Ð°Ð¹Ð´ÐµÑ Ð¸Ð¼ÐµÐµÑ ÑиÑÐ¸Ð½Ñ 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 > # range-state-(type=range) > |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
- HTML Forms
<input>и инÑеÑÑейÑHTMLInputElement, на коÑоÑом он оÑнован<input type="number">validityState.rangeOverflowиvalidityState.rangeUnderflow- Controlling multiple parameters with ConstantSourceNode
- Styling the range element
- Compatibility of CSS properties