Range input css: Styling Cross-Browser Compatible Range Inputs with CSS
— HTML | MDN
Элементы <input>
с типом range
позволяют пользователю определить числовое значение, которое должно быть в пределах указанного промежутка. Однако, точное значение должно быть не слишком важно. Обычно они представляет собой слайдер или контроллер, но не текстовое поле как number. Так как этот виджет неточен, его не следует использовать, в случае, если важно установить точное значение .
Исходный код данного примера расположен в GitHub репозитории. Если вы хотите внести внести изменения в привер, пожалуйста склонируйте https://github.com/mdn/interactive-examples и отправьте нам пул реквест.
Если используемый браузер не поддерживает тип range
, он будет отображаться как inputtext (en-US).
Валидация
Для этого поля нет доступного паттерна валидации, но следующая валидация реализованы следующие проверки
- Если значение
value
содержит что-то что не может быть конвертированно в число с плавающей точкой, произойдёт ошибка некорректного ввода. - Значение не может быть меньше чем
min
. По умолчанию: 0. - Значение не может быть больше чем
max
. По умолчанию: 100. - Значение должно кратно
step
. По умолчанию: 1.
Атрибут value
содержит DOMString
, который содержит строковое представление выбранного числа. Значение никогда не является пустой строкой (""
). Значение, по умолчанию, находится посередине, между указанными минимальным и максимальным значениями — если максимум оказывается меньше минимума, то значение по умолчанию приравнивается к значению атрибута
. Алгоритм определения значения по умолчанию:
defaultValue = (rangeElem.max < rangeElem.min) ? rangeElem.min
: rangeElem.min + (rangeElem.max - rangeElem.min)/2;
Если предпринята попытка установить значение меньше минимального, то оно примет значение атрибута min. Аналогично, попытка установить значение больше максимального, приведёт к установлению значения равного атрибуту max.
В дополнение к атрибутам, общим для всех элементов <input>
, range инпуты предлагают следующие атрибуты:
Attribute | Description |
---|---|
list | id элемента <datalist>, который содержит предопределённые значение (не обязательно) |
max | Максимальное допустимое значение |
min | Минимальное допустимое значение |
step | Шаговый, используемый для пользовательского интерфейса и для проверки |
Смотрите управление диапазоном с помощью решётки ниже, для примера того, как параметры диапазона обозначаются в поддерживаемых браузерах.
max
Это значение должно быть больше или равно значению атрибута min
.
min
Наименьшее значение в диапазоне допустимых значений. Если value
, введённый в элемент, меньше этого значения, то элемент не проходит проверку ограничения. Если значение атрибута
не является числом, то элемент не имеет максимального значения.
Это значение должно быть меньше или равно значению атрибута max
.
step
The step
attribute is a number that specifies the granularity that the value must adhere to, or the special value any
, which is described below. Only values which are equal to the basis for stepping (min
if specified, value
otherwise, and an appropriate default value if neither of those is provided) are valid.
A string value of any
means that no stepping is implied, and any value is allowed (barring other constraints, such as
and max
).
Note: When the data entered by the user doesn’t adhere to the stepping configuration, the user agent may round to the nearest valid value, preferring numbers in the positive direction when there are two equally close options.
По умолчанию шаг для инпута с типом 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
- Похоже на -moz-orient не стандартное CSS свойство влияющее на
<progress>
и<meter>
элементы,orient
атрибут определяем ориентацию слайдера. Значениеhorizontal
, значит что слайдер будет отображён горизонтально, аvertical
— что вертикально .
Note: Следующие атрибуты не применимы: accept
, alt
, checked
, dirname
,
, formenctype
, formmethod
, formnovalidate
, formtarget
, height
, maxlength
, minlength
, multiple
, pattern
, placeholder
, readonly
, required
, size
, src
, и width
. Каждый из них будет проигнорирован в случае употребления.
Пока тип number
позволяет пользователям вводить число с дополнительными ограничениями, заставляя их значения находиться между максимальным и минимальным, он требует, чтобы они вводили определённое значение. Инпут с типом range
позволяет вам запрашивать у пользователя значение в тех случаях, когда пользователь не может даже знать — каково выбранное конкретное числовое значение.
Несколько примеров основный ситуаций, в которых инпуты с range используются:
- Аудио-контроллеры громкости и баланса, или контроллеры фильтра.
- Контроллеры настройки цвета, такие как цветовые каналы, прозрачность, яркость, и т.д.
- Контроллеры игровой настройки, такие как сложность, дальность видимости, размер мира и т.д.
- Длина пароля для сгенерированных паролей менеджера паролей.
Как правило, если пользователь в большей степени интересуется процентным значением между минимумом и максимумом, нежели реальным значением, range инпут является отличным решением. Например, в случае с контролем громкости домашнего стерео, обычно пользователь думает «установить громкости наполовину максимума» вместо «установить громкость на 0.5».
Указание минимума и максимума
По умолчанию, минимум равен 0, а максимум равен 100. Если вас это не устраивает, вы можете с лёгкостью указать другие границы, изменив значения атрибутов min
и/или max
. Они могут быть принимать любые значения с плавающей точкой.
Например, указать диапазон значений между -10 и 10, вы можете, используя:
<input type="range" min="-10" max="10">
Настройка детализации значения
По умолчанию, степень детализации равна 1, тем самым показывая, что значение всегда является целым числом. Вы можете изменить атрибут
контроля степени детализации. Например, если вам нужно значение между 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 и π без ограничений на разрядность.
Добавление хэш-меток и лейблов
list
и элемент <datalist>
, но не имеет требований или рекомендаций по стандартизации хэш-меток и лейблов по длине контроллера.Макеты контроллера диапазона
Так как браузеры имеют эту гибкость, и на сегодняшний день ни один из них не поддерживает все возможности, определённые HTML, представляем несколько макетов, показывающих как вы можете получить на macOS в браузере, который их поддерживает.
Недекорированный контроллер диапазона
Этот результат вы получите, если не укажите атрибут
, или браузер не будет его поддерживать.
HTML | Screenshot |
---|---|
Контроллер диапазона с хэш-метками
Контроллер диапазона, использующий атрибут list
, указывающий ID <datalist>
, который определяет серию хэш-меток на контроллере. Их одиннадцать, одна на 0% и на каждой отметки 10%. Каждая точка представлена с помощью элемента <option>
с его набором value
значений диапазона, при котором должна быть нарисована метка.
HTML | Screenshot |
---|---|
|
Контроллер диапазона с хэш-метками и лейблами
Вы можете добавить лейблы в свой контроллер диапазонов, добавив атрибут label
элементам <option>
, соответствующим значениям, на которых вы бы хотели видеть лейблы.
HTML | Screenshot |
---|---|
|
Примечание: В настоящее время ни один браузер полностью не поддерживает эти возможности. Firefox не поддерживает хэш-метки и лейблы, например, в то время как Chrome поддерживает хэш-метки, но не поддерживает лейблы. Версия 66 (66.0.3359.181) Chrome поддерживает лейблы, но тэг <datalist>
должен быть стилизован с помощью CSS, так как его свойство display
по умолчанию — none
, тем самым скрывая лейблы.
Изменение ориентации
По умолчанию, если браузер отображает инпут диапазона как слайдер, он отобразит его так чтоб ползунок ездил в право и в лево. Когда поддержка браузерами будет реализовано, можно будет делать слайдер вертикальным, так чтобы ползунок мог ездить вверх и вниз. Ни один из наиболее используемых браузеров не имплементировал это пока. (Firefox баг 981916, Chrome bug 341071). также, возможно, следующий баг под вопросом.
В реальности, мы можем сделать слайдер вертикальным используя CSS трансформации, или применяя уникальный метод для каждого браузера в отдельности, включая: настройки appearance
для slider-vertical
, использование нестандартной ориентации orient
в Firefox,или изменение text direction для Internet Explorer и Edge
Рассмотрим контроллер диапазона:
<input type="range" min="0" max="11" value="7" step="1">
Screenshot | Live sample |
---|---|
Это горизонтальный контроллер (по крайне мере на большинстве основных браузеров, другие могут отличаться).
Standards
Следуя спецификации, сделать его вертикальным также просто как добавить CSS, чтобы изменить размеры контроллера, чтобы его высота оказалась больше ширины:
CSS
#volume { height: 150px; width: 50px; }
HTML
<input type="range" min="0" max="11" value="7" step="1">
Результат
Screenshot | Live sample |
---|---|
К сожалению, большинство браузеров сейчас не поддерживают вертикальные контроллы напрямую.
transform: rotate(-90deg)
Но вы, всё же, можете сделать вертикальный контролл используя горизонтальный контролл. Самый простой способ — использовать CSS: применяя transform
для поворота элемента на 90 градусов. Посмотрим:
HTML
В HTML нужно добавить обёртку вокруг <input>
— <div>
, что позволит нам исправить макет после выполнения трансформации (т.к. трансформация автоматически не влияет на макет страницы):
<div>
<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
(en-US) смещается в середину пространства, на котором вращается слайдер; поскольку слайдер имеет ширину 150 пикселей, он вращается через прямоугольник по 150 пикселей с каждой стороны. Смещение начала координат на 75px по каждой оси означает, что мы будем вращаться вокруг центра этого пространства. Наконец, мы поворачиваем против часовой стрелки на 90°. Результат: инпут range, который вращается таким образом, что максимальное значение находится сверху, а минимальное снизу.
Screenshot | Live sample |
---|---|
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; }
BCD tables only load in the browser
Стилизация полосы прокрутки HTML5 для разных браузеров
Ползунок — это новый способ ввода информации, введенный в HTML5. Этот способ позволяет ввести число в заданном диапазоне. Браузер стандартно отобразит этот способ ввода информации как полосу прокрутки. Это очень интуитивно понятный пользовательский интерфейс, широко распространенный в приложениях. Мы можем передвигать ручку ползунка вправо или влево, чтобы выбрать число в пределах диапазона.
Но как Вы можете видеть выше, каждый браузер отображает этот способ ввода информации немного по-своему, что не понравится дизайнерам. Так что в этом уроке мы покажем, как привести полосы прокрутки к одинаковому виду. Давайте начнем.
Рекомендованное чтение: Создание и стилизация индикатора прогресса с использованием HTML5
В браузерах Chrome, Safari и Opera
Safari и Opera — браузеры Webkit. Хотя Chrome решил использовать свой собственный движок Blink, пока что он все еще наследуют некоторые формы записи от Webkit.
Webkit предоставляет удобный способ стилизации любых форм ввода, включая ползунок. Для начала мы можем выбрать тег input с атрибутом selector и отменить стандартные стили Webkit/Chrome, задав свойству -webkit-appearance значение none.
input[type=range] { -webkit-appearance: none }
После этого мы можем добавить любые свойства, такие как граница, цвет фона, закругление границы и так далее.
input[type=range] { -webkit-appearance: none; width: 100%; border-radius: 8px; height: 7px; border: 1px solid #bdc3c7; background-color: #fff; }
Как Вы можете видеть ниже, код выше не затронул только ручку ползунка из всего тега input.
Чтобы применить к ней стили, нам нужно использовать собственный псевдоэлемент Webkit ::-webkit-slider-thumb и таким же способом отменить стандартные стили с помощью -webkit-appearance, следующим образом:
input[type='range']::-webkit-slider-thumb { -webkit-appearance: none; background-color: #ecf0f1; border: 1px solid #bdc3c7; width: 20px; height: 20px; border-radius: 10px; cursor: pointer; }
Так мы зададим стили для ползунка для браузера Webkit. Стили, которые мы задали выше, должны примениться в браузерах Chrome, Safari и в последних версиях браузера Opera. Тем не менее, они не повлияют на браузеры Firefox и Internet Explorer, так как они работают на других движках. Но у нас есть обходные пути для этих двух браузеров.
В браузере Firefox
Добавление стилей напрямую с атрибутом selector input [type=’range’]не изменит стандартные стили в браузере Firefox. Вместо этого нам нужно использовать собственные псевдоэлементы браузера Firefox ::-moz-range-track и ::-moz-range-thumb.
Псевдоэлемент ::-moz-range-track повлияет на полосу ползунка, по которой движется ручка, а ::-moz-range-track повлияет на ручку ползунка.
.firefox input[type=range]::-moz-range-track { border-radius: 8px; height: 7px; border: 1px solid #bdc3c7; background-color: #fff; } .firefox input[type=range]::-moz-range-thumb { background: #ecf0f1; border: 1px solid #bdc3c7; width: 20px; height: 20px; border-radius: 10px; cursor: pointer; }
Мы применили те же стили. Откройте браузер Firefox, и Вы увидите практически такой же результат, как и в браузерах Webkit.
В браузере Internet Explorer
Браузер Internet Explorer отображает полосу прокрутки совсем не так, как остальные браузеры. Чтобы было проще, мы нарисовали изображение, показывающее части, составляющие ползунок.
В браузере Internet Explorer также есть всплывающая подсказка, показывающая число, на котором Вы находитесь, когда Вы передвигаете ручку.
Всем этим частям ползунка можно задать стили с помощью собственных псевдоэлементов браузера Internet Explorer ::-ms-fill-lower, ::-ms-fill-upper, ::-ms-thumb, ::-ms-ticks и ::-ms-tooltip. Здесь мы применим те же стили, что и для браузеров Webkit и Firefox.
input[type="range"]::-ms-fill-lower, input[type="range"]::-ms-fill-upper { background: transparent; } input[type="range"]::-ms-track { border-radius: 8px; height: 7px; border: 1px solid #bdc3c7; background-color: #fff; } input[type="range"]::-ms-thumb { background-color: #ecf0f1; border: 1px solid #bdc3c7; width: 20px; height: 20px; border-radius: 10px; cursor: pointer; }
Но в результате получилось не то, что мы ожидали. Деления видны, а низ и верх ручки ползунка скрыты.
Мы можем легко избавиться от делений, добавив step=»any» тегу input. Тем не менее, мы не можем сделать ручку ползунка полностью видимой. Это как если бы тегу input задали значения свойства overflow как hidden, но это нельзя отменить, просто задав значения свойства overflow как visible. Это то, с чем мы еще разбираемся.
Заключение
Ползунки довольно настраиваемы. К сожалению, у каждого браузера собственный способ, и поэтому нам приходится писать больше кода, чем ожидалось. Надеемся, в будущем появится стандарт, регулирующий этот вопрос. И, наконец, вот ссылка на ползунок, который мы показали Вам в этом уроке.
Демонстрация работы – Скачать исходный код
Автор урока Thoriq Firdaus
Перевод — Дежурка
Смотрите также:
Оформление кроссбраузерных элементов input с типом range с помощью CSS
Возможности для стилизации элемента значительно улучшились с момента выхода версии браузера IE10. Теперь стало возможным создавать кроссбраузерные ползунки выбора диапазона (слайдеры), используя для этого только CSS. В этой обучающей статье мы возьмем стандартный элемент input типа range (Скриншот элемента input с типом range в Mac Chrome 38):
И превратим его вот в такой элемент (Оформление элемента input с типом range с помощью собственных стилей):
Для того чтобы упростить процесс написания кроссбраузерных стилей, мы воспользуемся помощью препроцессора LESS. CSS стили также будут доступны.
Применение базовых CSS стилей
Необходимо применить несколько CSS правил, чтобы изменить отображение элемента input с типом range во всех браузерах.
01.
input[type=range] {
02.
-webkit-appearance:
none
;
03.
width
:
100%
;
04.
}
05.
06.
input[type=range]::-webkit-slider-thumb {
07.
-webkit-appearance:
none
;
08.
}
09.
10.
input[type=range]:focus {
11.
outline
:
none
;
12.
}
13.
14.
input[type=range]::-ms-track {
15.
width
:
100%
;
16.
cursor
:
pointer
;
17.
background
:
transparent
;
18.
border-color
:
transparent
;
19.
color
:
transparent
;
20.
}
В результате мы получим невидимые или нестилизованные элементы input type=»range» во всех браузерах. Теперь мы можем начать добавление собственных стилей.
Оформление ползунка
Небольшой графический элемент, по которому вы можете кликнуть и перетаскивать вдоль полосы диапазона, называется ползунок. Он поддается оформлению также, как и обычный HTML элемент.
01.
02.
input[type=range]::-webkit-slider-thumb {
03.
-webkit-appearance:
none
;
04.
border
:
1px
solid
#000000
;
05.
height
:
36px
;
06.
width
:
16px
;
07.
border-radius:
3px
;
08.
background
:
#ffffff
;
09.
cursor
:
pointer
;
10.
margin-top
:
-14px
;
11.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
12.
}
13.
14.
15.
input[type=range]::-moz-range-thumb {
16.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
17.
border
:
1px
solid
#000000
;
18.
height
:
36px
;
19.
width
:
16px
;
20.
border-radius:
3px
;
21.
background
:
#ffffff
;
22.
cursor
:
pointer
;
23.
}
24.
25.
26.
input[type=range]::-ms-thumb {
27.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
28.
border
:
1px
solid
#000000
;
29.
height
:
36px
;
30.
width
:
16px
;
31.
border-radius:
3px
;
32.
background
:
#ffffff
;
33.
cursor
:
pointer
;
34.
}
Обратите внимание на то, что повторение кода является в данном случае необходимым, т.к. мы не можем перечислить эти селекторы через запятую. Браузеры просто проигнорируют весь селектор целиком, если не поймут хотя бы какую-то его часть. Результат будет следующим: (Стилизованный элемент input на невидимой полосе диапазона (WebKit/Blink) или неоформленная полоса диапазона (Firefox и IE))
Оформление полосы диапазона
Линия, вдоль которой перемещается ползунок, называется полосой диапазона. Она также поддается оформлению, как и обычный HTML элемент.
На заметку: браузер Internet Explorer 10+ применяет немного другой подход к представлению элементов input type=»range». В IE вы можете определить совершенно разные стили для верхней (правая часть ползунка) и для нижней (левая часть ползунка) областей полосы диапазона.
А также стоит отметить, что вы можете изменить стили для состояния фокуса, когда пользователь взаимодействует с ползунком выбора диапазона.
01.
input[type=range]::-webkit-slider-runnable-track {
02.
width
:
100%
;
03.
height
:
8.4px
;
04.
cursor
:
pointer
;
05.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
06.
background
:
#3071a9
;
07.
border-radius:
1.3px
;
08.
border
:
0.2px
solid
#010101
;
09.
}
10.
11.
input[type=range]:focus::-webkit-slider-runnable-track {
12.
background
:
#367ebd
;
13.
}
14.
15.
input[type=range]::-moz-range-track {
16.
width
:
100%
;
17.
height
:
8.4px
;
18.
cursor
:
pointer
;
19.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
20.
background
:
#3071a9
;
21.
border-radius:
1.3px
;
22.
border
:
0.2px
solid
#010101
;
23.
}
24.
25.
input[type=range]::-ms-track {
26.
width
:
100%
;
27.
height
:
8.4px
;
28.
cursor
:
pointer
;
29.
background
:
transparent
;
30.
border-color
:
transparent
;
31.
border-width
:
16px
0
;
32.
color
:
transparent
;
33.
}
34.
input[type=range]::-ms-fill-
lower
{
35.
background
:
#2a6495
;
36.
border
:
0.2px
solid
#010101
;
37.
border-radius:
2.6px
;
38.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
39.
}
40.
input[type=range]:focus::-ms-fill-
lower
{
41.
background
:
#3071a9
;
42.
}
43.
input[type=range]::-ms-fill-upper {
44.
background
:
#3071a9
;
45.
border
:
0.2px
solid
#010101
;
46.
border-radius:
2.6px
;
47.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
48.
}
49.
input[type=range]:focus::-ms-fill-upper {
50.
background
:
#367ebd
;
51.
}
Этот код дает нам следующий результат (полоса диапазона без ползунка (Chrome) или неоформленный ползунок (Firefox and IE)):
Создание полноценного элемента input с типом range
Теперь, когда мы создали отдельно ползунок и полосу диапазона, мы можем скомпоновать CSS стили вместе, чтобы получить полноценный элемент input с типом range.
Весь CSS код для оформления элементов input с типом range во всех браузерах
Далее приведен весь CSS код, необходимый для оформления элементов input с типом range во всех браузерах.
01.
input[type=range] {
02.
-webkit-appearance:
none
;
03.
margin
:
18px
0
;
04.
width
:
100%
;
05.
}
06.
input[type=range]:focus {
07.
outline
:
none
;
08.
}
09.
input[type=range]::-webkit-slider-runnable-track {
10.
width
:
100%
;
11.
height
:
8.4px
;
12.
cursor
:
pointer
;
13.
animate:
0.2
s;
14.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
15.
background
:
#3071a9
;
16.
border-radius:
1.3px
;
17.
border
:
0.2px
solid
#010101
;
18.
}
19.
input[type=range]::-webkit-slider-thumb {
20.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
21.
border
:
1px
solid
#000000
;
22.
height
:
36px
;
23.
width
:
16px
;
24.
border-radius:
3px
;
25.
background
:
#ffffff
;
26.
cursor
:
pointer
;
27.
-webkit-appearance:
none
;
28.
margin-top
:
-14px
;
29.
}
30.
input[type=range]:focus::-webkit-slider-runnable-track {
31.
background
:
#367ebd
;
32.
}
33.
input[type=range]::-moz-range-track {
34.
width
:
100%
;
35.
height
:
8.4px
;
36.
cursor
:
pointer
;
37.
animate:
0.2
s;
38.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
39.
background
:
#3071a9
;
40.
border-radius:
1.3px
;
41.
border
:
0.2px
solid
#010101
;
42.
}
43.
input[type=range]::-moz-range-thumb {
44.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
45.
border
:
1px
solid
#000000
;
46.
height
:
36px
;
47.
width
:
16px
;
48.
border-radius:
3px
;
49.
background
:
#ffffff
;
50.
cursor
:
pointer
;
51.
}
52.
input[type=range]::-ms-track {
53.
width
:
100%
;
54.
height
:
8.4px
;
55.
cursor
:
pointer
;
56.
animate:
0.2
s;
57.
background
:
transparent
;
58.
border-color
:
transparent
;
59.
border-width
:
16px
0
;
60.
color
:
transparent
;
61.
}
62.
input[type=range]::-ms-fill-
lower
{
63.
background
:
#2a6495
;
64.
border
:
0.2px
solid
#010101
;
65.
border-radius:
2.6px
;
66.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
67.
}
68.
input[type=range]::-ms-fill-upper {
69.
background
:
#3071a9
;
70.
border
:
0.2px
solid
#010101
;
71.
border-radius:
2.6px
;
72.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
73.
}
74.
input[type=range]::-ms-thumb {
75.
box-shadow:
1px
1px
1px
#000000
,
0px
0px
1px
#0d0d0d
;
76.
border
:
1px
solid
#000000
;
77.
height
:
36px
;
78.
width
:
16px
;
79.
border-radius:
3px
;
80.
background
:
#ffffff
;
81.
cursor
:
pointer
;
82.
}
83.
input[type=range]:focus::-ms-fill-
lower
{
84.
background
:
#3071a9
;
85.
}
86.
input[type=range]:focus::-ms-fill-upper {
87.
background
:
#367ebd
;
88.
}
Полноценный элемент input с типом range
После применения стилей у нас получится следующий результат (Элемент input с типом range, созданный полностью с помощью собственных стилей.):
Браузерная поддержка
Сам по себе элемент input type=»range» имеет следующую браузерную поддержку: Firefox 23+, Safari 4+, iOS 5+, Chrome 6+, Opera 11+, IE 10+, Android 4.2+. Это довольно хорошо. Применение собственных стилей для оформления данного элемента не должно по большей части изменить данную браузерную поддержку, если вы будете следовать рекомендациям и коду, написанному в этой обучающей статье.
Вот скриншот демо-примера, иллюстрирующий отображение элемента input с типом range в современных версиях разных браузеров:Если браузер не поддерживает элемент input type=»range», у вас будет просто отображаться элемент input type=»text», который будет валидным и будет работать.
Полезный инструмент
Возможность для создания кроссбраузерных стилей для элемента input с типом range появилась только в 2014 году, поэтому на данный момент существует не так много инструментов для генерации современных стилей. Инструмент range.css, который я создал, является очень удобным для этих целей.Как стилизовать диапазон типов ввода в Chrome, Firefox и IE
Синтаксис отличается от поставщика к поставщику, но во всех случаях у вас есть два компонента, которые необходимо стилизовать. Дорожка — это длинный кусок, представляющий диапазон, а ползунок — это выступ, который вы перемещаете, чтобы выбрать значение.
— можно применять стили непосредственно к входу [type = range]
, но вы можете столкнуться с проблемами кроссбраузерности. Лучше всего максимально использовать преимущества селекторов дорожек и ползунков, специфичных для конкретных производителей.Мы будем использовать их для воссоздания этого настраиваемого ползунка диапазона.
Браузеры на основе Webkit (Chrome, Safari, Opera)
В браузерах на основе webkit для дорожки используется специальный псевдоселектор :: - webkit-slider-runnable-track
, а для большого пальца — :: webkit-slider-thumb
.
Пользовательские стили фокуса также можно применить к ползунку и дорожке. Если вы пойдете по этому пути, вам придется удалить стили фокуса по умолчанию для самого ввода.
Попался Вам нужно указать webkit, что вы не хотите иметь ничего общего с их стилями по умолчанию, включив -webkit-appearance: none;
на входе и на большом пальце.
input [type = range] {
-webkit-appearance: нет;
}
input [type = range] :: - webkit-slider-runnable-track {
ширина: 300 пикселей;
высота: 5 пикселей;
фон: #ddd;
граница: нет;
радиус границы: 3 пикселя;
}
input [type = range] :: - webkit-slider-thumb {
-webkit-appearance: нет;
граница: нет;
высота: 16 пикселей;
ширина: 16 пикселей;
радиус границы: 50%;
фон: золотарник;
маржа сверху: -4px;
}
input [type = range]: focus {
наброски: нет;
}
input [type = range]: focus :: - webkit-slider-runnable-track {
фон: #ccc;
}
Firefox
В Firefox для дорожки используется стиль псевдоселектора :: - moz-range-track
, а для ползунка — :: - moz-range-thumb
.
В настоящее время в Firefox есть небольшая ошибка, из-за которой контур : нет.
не удаляет стили фокуса. Если у вас сплошной цвет фона, вы можете исправить это, спрятав контур под рамкой.
Вам также необходимо указать input [type = range]
той же ширины, что и ваша дорожка. Он не будет расширяться, чтобы содержать трек сам по себе.
input [type = range] {
/ * исправлена ошибка, из-за которой FF не мог применить стиль фокуса * /
граница: сплошной белый 1px;
/ * требуется для правильного определения размера дорожки в FF * /
ширина: 300 пикселей;
}
input [type = range] :: - moz-range-track {
ширина: 300 пикселей;
высота: 5 пикселей;
фон: #ddd;
граница: нет;
радиус границы: 3 пикселя;
}
input [type = range] :: - moz-range-thumb {
граница: нет;
высота: 16 пикселей;
ширина: 16 пикселей;
радиус границы: 50%;
фон: золотарник;
}
/ * скрыть контур за рамкой * /
input [type = range]: - moz-focusring {
контур: сплошной белый 1px;
контур-смещение: -1px;
}
input [type = range]: focus :: - moz-range-track {
фон: #ccc;
}
Internet Explorer 10 +
Диапазон типов ввода поддерживается в IE10 и выше.Мы можем стилизовать ползунок с помощью псевдо :: - ms-thumb
, а дорожку — с помощью :: - ms-track
.
IE не позволит большому пальцу выйти за пределы дорожки, так что вам придется довольствоваться более высокой дорожкой, по крайней мере такой же большой, как большой палец.
Обновление , 15.10.2014 : Большой палец все еще не может переполнить дорожку, но Грэм Фаулер указал на умный обходной путь. Мы можем имитировать достаточно широкую дорожку, добавив толстую прозрачную рамку сверху и снизу дорожки.Мы также переместим большинство наших стилей в :: - ms-fill-lower
и :: - ms-fill-upper
вместо :: ms-track
, чтобы убедиться, что такие вещи, как border-radius
рендерить правильно.
Чтобы удалить отметки по умолчанию, вам нужно установить на дорожке цвет: прозрачный
.
Вы также можете использовать :: - ms-fill-lower
и :: - ms-fill-upper
для дальнейшей настройки внешнего вида дорожки для любого размера бегунка.Здесь мы улучшили пользовательский интерфейс, придав нижней части более тёмно-серый цвет.
input [type = range] :: - ms-track {
ширина: 300 пикселей;
высота: 5 пикселей;
/ * убираем цвет bg с дорожки, вместо этого будем использовать ms-fill-lower и ms-fill-upper * /
фон: прозрачный;
/ * оставляем место для большого пальца, чтобы он мог переполняться прозрачной рамкой * /
цвет границы: прозрачный;
ширина границы: 6 пикселей 0;
/ * убираем метки по умолчанию * /
цвет: прозрачный;
}
input [type = range] :: - ms-fill-lower {
фон: # 777;
радиус границы: 10 пикселей;
}
input [type = range] :: - ms-fill-upper {
фон: #ddd;
радиус границы: 10 пикселей;
}
input [type = range] :: - ms-thumb {
граница: нет;
высота: 16 пикселей;
ширина: 16 пикселей;
радиус границы: 50%;
фон: золотарник;
}
input [type = range]: focus :: - ms-fill-lower {
фон: # 888;
}
input [type = range]: focus :: - ms-fill-upper {
фон: #ccc;
}
Вот полный фрагмент кроссбраузерного кода и результат.
html — Как задать стиль input type = «range»
На этот вопрос уже есть ответы :
Закрыт 12 месяцев назад.
Я пытаюсь стилизовать этот элемент. Я никогда не делал этого раньше и не могу найти решение своей проблемы.
Я просто хочу добавить border-radius к краям, добавить box-shadow к этой точке, которая является перетаскиваемой, и основная причина, по которой я спрашиваю, заключается в том, как добавить эту более низкую непрозрачность в сторону, которая еще не выбрано.
Я не знаю, нужно ли это делать с помощью Javascript, или я могу просто сделать это с помощью css, но моя проблема:
Так теперь выглядит мой ассортимент
Моя цель — это
Поскольку я никогда раньше не стилизовал этот элемент, весь этот CSS взят из нескольких статей, которые я нашел в Google.Есть ли что-нибудь для этого, например, фон: активный и фон: неактивный ?
Спасибо.
.container {
цвет фона: красный;
ширина: 30%;
заполнение: 1em;
выравнивание текста: центр;
}
input [type = "range"] {
ширина: 100%;
}
input [type = range] {
-webkit-appearance: нет;
}
input [type = range] :: - webkit-slider-runnable-track {
высота: 0,35 мм;
фон: белый;
граница: нет;
радиус границы: 3 пикселя;
}
input [type = range] :: - webkit-slider-thumb {
-webkit-appearance: нет;
граница: нет;
высота: 1.1em;
ширина: 1.1em;
радиус границы: 50%;
фон: белый;
маржа сверху: -4px;
}
input [type = range]: focus {
наброски: нет;
}
ВЫСОТА
ВЕС
html — Проблемный ползунок ввода диапазона стилей
html — Проблемный ползунок ввода диапазона стилей — qaruПрисоединяйтесь к Stack Overflow , чтобы учиться, делиться знаниями и строить свою карьеру.
Спросил
Просмотрено 7к раз
Я пытаюсь сделать базовый стиль во вводе диапазона html следующим образом:
HTML
CSS
input [type = range] :: - webkit-slider-thumb {
-webkit-appearance: нет;
фон: красный;
высота: 20 пикселей;
ширина: 20 пикселей;
}
Я также сделал Codepen, на который можно посмотреть.
Вы заметите, что если вы закомментируете стили background
, height
и width
, большой палец исчезнет. Значит, что-то работает. Но с примененными стилями я ожидал, что это будет красный квадрат 20px
X 20px
. Но, увы, я просто вижу стиль большого пальца по умолчанию.
Пожалуйста, сверьтесь с ответом ниже
input [type = range] {
-webkit-appearance: нет;
}
input [type = range] :: - webkit-slider-runnable-track {
ширина: 300 пикселей;
высота: 5 пикселей;
фон: #ddd;
граница: нет;
радиус границы: 3 пикселя;
}
input [type = range] :: - webkit-slider-thumb {
-webkit-appearance: нет;
граница: нет;
высота: 16 пикселей;
ширина: 16 пикселей;
радиус границы: 50%;
фон: золотарник;
маржа сверху: -4px;
}
input [type = range]: focus {
наброски: нет;
}
input [type = range]: focus :: - webkit-slider-runnable-track {
фон: #ccc;
}
input [type = range] {
/ * исправлена ошибка, из-за которой FF не мог применить стиль фокуса * /
граница: сплошной белый 1px;
/ * требуется для правильного определения размера дорожки в FF * /
ширина: 300 пикселей;
}
input [type = range] :: - moz-range-track {
ширина: 300 пикселей;
высота: 5 пикселей;
фон: #ddd;
граница: нет;
радиус границы: 3 пикселя;
}
input [type = range] :: - moz-range-thumb {
граница: нет;
высота: 16 пикселей;
ширина: 16 пикселей;
радиус границы: 50%;
фон: золотарник;
}
/ * скрыть контур за рамкой * /
input [type = range]: - moz-focusring {
контур: сплошной белый 1px;
контур-смещение: -1px;
}
input [type = range]: focus :: - moz-range-track {
фон: #ccc;
}
/ * для ie * /
input [type = range] :: - ms-track {
ширина: 300 пикселей;
высота: 5 пикселей;
/ * убираем цвет bg с дорожки, вместо этого будем использовать ms-fill-lower и ms-fill-upper * /
фон: прозрачный;
/ * оставляем место для большого пальца, чтобы он мог переполняться прозрачной рамкой * /
цвет границы: прозрачный;
ширина границы: 6 пикселей 0;
/ * убираем метки по умолчанию * /
цвет: прозрачный;
}
input [type = range] :: - ms-fill-lower {
фон: # 777;
радиус границы: 10 пикселей;
}
input [type = range] :: - ms-fill-upper {
фон: #ddd;
радиус границы: 10 пикселей;
}
input [type = range] :: - ms-thumb {
граница: нет;
высота: 16 пикселей;
ширина: 16 пикселей;
радиус границы: 50%;
фон: золотарник;
}
input [type = range]: focus :: - ms-fill-lower {
фон: # 888;
}
input [type = range]: focus :: - ms-fill-upper {
фон: #ccc;
}
Создан 12 янв.
Джишну В С Джишну В С7,58566 золотых знаков2525 серебряных знаков5555 бронзовых знаков
1Если вы можете редактировать дорожку, но НЕ бегунок, убедитесь, что у вас есть -webkit-appearance: none; в этих двух местах, чтобы переопределить поведение по умолчанию.
input [type = range] {
-webkit-appearance: нет; <------------------------------------ ОБЯЗАТЕЛЬНО
}
input [type = range] :: - webkit-slider-runnable-track {
фон: / * ... изменить цвет с помощью свойства фона ... * /;
/ * ... мои пользовательские правки ... * /
}
input [type = range]: hover :: - webkit-slider-runnable-track {
фон: / * ... изменить цвет с помощью свойства фона ... * /;
/ * ... мои пользовательские правки ... * /
}
input [type = range] :: - webkit-slider-thumb {
-webkit-appearance: нет; <------------------------------------ ТРЕБУЕТСЯ
высота: /* .. вручную установить высоту больше 0 ... * / <-------- ТРЕБУЕТСЯ
width: / * .. вручную установить ширину больше 0 ... * / <---------- ТРЕБУЕТСЯ
фон: / * ... изменить цвет с помощью свойства фона ... * /;
/ * ... мои пользовательские правки ... * /
}
input [type = range]: hover :: - webkit-slider-thumb {
фон: / * ... изменить цвет с помощью свойства фона ... * /;
/ * ... мои пользовательские правки ... * /
}
(обратите внимание, что это работает в Chrome, но вы можете разделить запятыми другие свойства, такие как input [type = range] :: - moz-range-thumb
и input [type = range] :: - ms-thumb
по мере необходимости для учета других браузеров)
8,53055 золотых знаков4343 серебряных знака6969 бронзовых знаков
Создан 15 июн.
Может показаться, что следующий селектор вызывает проблему, и ваши стили из-за этого не работают, удалите его, и стили будут применены:
:: - webkit-slider-thumb
Вот обновленный Codepen.
Обновленный ответ
К входам диапазона во всех браузерах необходимо применить несколько стилей, чтобы переопределить их основной вид. После объявления приведенных ниже стилей вы сможете настроить переключатель диапазонов.
Пожалуйста, просмотрите ниже и добавьте его к своему коду:
input [type = range] {
-webkit-appearance: нет; / * Скрывает ползунок, чтобы можно было создать собственный ползунок * /
ширина: 100%; / * Для Firefox требуется определенная ширина. * /
фон: прозрачный; / * В противном случае белый цвет в Chrome * /
}
input [type = range] :: - webkit-slider-thumb {
-webkit-appearance: нет;
}
input [type = range]: focus {
наброски: нет; / * Удаляет синюю рамку.Однако вам, вероятно, следует сделать какой-то стиль фокуса по соображениям доступности. * /
}
input [type = range] :: - ms-track {
ширина: 100%;
курсор: указатель;
/ * Скрывает ползунок, чтобы можно было добавить собственные стили * /
фон: прозрачный;
цвет границы: прозрачный;
цвет: прозрачный;
}
Пожалуйста, перейдите по этой ссылке на обновленный Codepen.
Создан 12 янв.
Нилам Хан1,9779 серебряных знаков2424 бронзовых знака
2Итак, проблема, почему стили не были применены к большому пальцу, заключается в том, что вам также нужно добавить
input [type = range] {
-webkit-appearance: нет;
}
.. Большой палец теперь представляет собой красный квадрат.
Создан 12 янв.
Скрыть ввод - это скрывает большой палец и дорожку
Уложите большой палец так, как хотите
Стиль дорожки
предостережение : дорожка совмещена с верхней частью большого пальца.Я использовал отрицательный запас, чтобы исправить это. Если бы у кого-то есть лучший способ сделать это, было бы неплохо ...
input [type = range] {
-webkit-appearance: нет;
}
input [type = range] :: - webkit-slider-thumb {
-webkit-appearance: нет;
фон: красный;
высота: 20 пикселей;
ширина: 20 пикселей;
маржа сверху: -8 пикселей;
}
input [type = range] :: - webkit-slider-runnable-track {
ширина: 300 пикселей;
высота: 5 пикселей;
фон: #ddd;
}
КОДЕПЕН
Хороший ресурс для обеспечения совместимости браузеров.
Создан 12 янв.
солсол19.7k55 золотых знаков3434 серебряных знака5151 бронзовый знак
lang-html
Stack Overflow лучше всего работает с включенным JavaScriptВаша конфиденциальность
Нажимая «Принять все файлы cookie», вы соглашаетесь с тем, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Принимать все файлы cookie Настроить параметры
Создайте красивый входной диапазон с помощью только CSS !!
Все мы, как разработчики, знаем важность элемента тега
, без него у нас не было бы возможности получать какие-либо данные от пользователя.
Есть много типов, которые мы можем использовать в элементе input
, и каждый из них изменяет поведение элемента, вот список наиболее распространенных типов ввода:
- текст : значение по умолчанию. Однострочное текстовое поле.
- button : кнопка без поведения по умолчанию, отображающая значение атрибута value, по умолчанию пустая. Если он находится внутри тега
, он отправит форму при нажатии.
- Флажок : Флажок, позволяющий выбирать / отменять отдельные значения.
- color : элемент управления для указания цвета; открытие палитры цветов, когда она активна в поддерживающих браузерах.
- email : Поле для редактирования адреса электронной почты. Похож на ввод текста , но с параметрами проверки на поддерживаемых устройствах.
- пароль : однострочное текстовое поле, значение которого скрыто.Предупреждает пользователя, если сайт небезопасен.
- номер : Элемент управления для ввода числа. Отображает счетчик и добавляет проверку по умолчанию, если поддерживается.
- скрыто : элемент управления, который не отображается, но значение которого отправляется на сервер.
- диапазон : элемент управления для ввода числа, точное значение которого не имеет значения.Отображается как виджет диапазона со средним значением по умолчанию.
Как мы видим, есть много типов, которые мы можем использовать, вы можете проверить их здесь.
В этом посте я покажу вам, как изменить стиль по умолчанию для типа ввода диапазона , чтобы он выглядел лучше.
ПРИМЕЧАНИЕ: Весь приведенный ниже код работает только в Chrome и Opera, TBH Я даже не пытался исправить какие-либо визуальные ошибки в любом другом браузере.
Самая простая реализация диапазона ввода выглядит так:
Это будет выглядеть так же, как показано выше:
У нас есть дополнительные свойства при использовании этого элемента:
-
значение
: строковое представление числа, хотя оно не может быть пустой строкой (""
). Значение по умолчанию всегда находится посередине междумин.
имакс.
. Вот как рассчитывается:
defaultValue = (rangeElem.макс
макс
имин
: максимальное и минимальное допустимые значения.шаг
: интервал шага.список
: идентификатор элемента
Хорошо! достаточно HTML Input 101, давайте добавим стиль к этому вводу !.
Сначала нам нужна базовая структура html, примерно такая:
Приведенная выше разметка отобразит это:
Он отображает хэш-метку для каждого элемента
.
Большой палец и трекер
На любом элементе управления ползунком у нас есть 2 элемента, с которыми мы можем взаимодействовать, ползунок и трекер , ползунок - это просто маленький виджет, который позволяет перетаскивать по дорожке:
Они называются Shadow DOM elements , и мы действительно можем стилизовать их с помощью CSS, так что давайте начнем с этого.
Включить теневой DOM пользовательского агента
Я рекомендую вам включить Shadow DOM в вашем браузере, поскольку мы не можем проверять эти элементы по умолчанию, и иногда проще просто манипулировать элементом непосредственно из инструментов разработчика, а не обычным процессом: изменить, сохранить и перезагрузить.
Я покажу вам, как активировать его с помощью Opera, но это работает точно так же в Chrome, и я почти уверен, что в FF это так же просто, как и в Opera (это просто флажок, не должен быть большая проблема в любом браузере).
Итак, сначала откройте Инструменты разработчика ( F12 ) в вашем браузере, как только он откроется, либо нажмите F1 , либо используйте меню кебаба (меню A.K.A 3 точки) и нажмите на опцию « settings »:
Откроется раздел настроек.Затем нам нужно только проверить параметр « Показать теневой DOM пользовательского агента» в списке Elements :
Теперь, если мы проверим ввод, вместо того, чтобы выглядеть как обычный элемент ввода:
Мы увидим немного другую разметку:
На входе есть элементы внутри, которые представляют трекер и бегунок, теперь будет легче проверять и изменять стили для этих элементов.
Укладка
Начнем с стилизации нашего элемента контейнера и удаления стандартного внешнего вида ввода
.container {
положение: относительное;
максимальная ширина: 450 пикселей;
переполнение: скрыто;
}
input [type = "range"] {
-webkit-appearance: нет;
ширина: 100%;
}
Для стилизации большого пальца и трекера у нас есть псевдоэлементы :
-
:: - webkit-slider-runnable-track
: Селектор для трекера. -
:: - webkit-slider-thumb
: Селектор для большого пальца.
IE и FF также имеют свои псевдоэлементы:
: -moz-range-track
и:: - moz-range-thumb
для FF,:: - ms-track
и:: - ms-thumb
для IE
Используя это, мы применим наши пользовательские стили, начнем с трекера:
input [type = "range"] :: - webkit-slider-runnable-track {
ширина: 100%;
высота: 1.2em;
курсор: указатель;
граница: 1px solid # 29334f;
переполнение: скрыто;
}
Мы устанавливаем границу вокруг трекера и скрываем весь переполненный контент, теперь он должен выглядеть примерно так:
Знаю, знаю! Это выглядит действительно некрасиво, поэтому давайте исправим это, применив некоторый стиль к большому пальцу:
input [type = "range"] :: - webkit-slider-thumb {
высота: 12 пикселей;
ширина: 45 пикселей;
курсор: указатель;
-webkit-appearance: нет;
нижняя граница: 1px solid # 29334f;
box-shadow: 0 0 0 красный, -40px 0 0 красный, -85px 0 0 красный, -130px 0 0 красный,
-175px 0 0 красный, -220px 0 0 красный, -265px 0 0 красный, -310px 0 0 красный,
-350px 0 0 красный, -390px 0 0 красный, -409px 0 0 красный;
фон: черный;
}
Сначала удалите внешний вид по умолчанию для большого пальца, затем мы создаем тень блока (на самом деле 10) для большого пальца и располагаем их один за другим, так что теперь ввод выглядит лучше:
Помните, у нас активен shadowDOM, если что-то не выглядит одинаково, просто проверьте элемент и измените стиль по своему усмотрению.
Теперь все, что нам нужно сделать, это добавить стиль в элемент
:
# custom-list {
дисплей: гибкий;
justify-content: пробел между;
}
# custom-list option {
положение: относительное;
фон: белый;
верх: 18 пикселей;
border-left: сплошной черный цвет 1px;
border-right: сплошной черный 1px;
}
У нашего списка данных есть гибкость отображения, и его элементы выровнены с пробелом между ними, затем мы просто размещаем все элементы списка данных перед нашим входным диапазоном (он был наверху).Наконец, мы просто устанавливаем левую и правую границы для каждого элемента option. Вот как это выглядит:
Несмотря на то, что наш входной диапазон начинает формироваться, он все еще выглядит немного странно, так что давайте исправим это.
Первая проблема, это первый элемент option
с двумя границами, нам это не нужно, поэтому давайте скроем его
# custom-list option: first-of-type {
видимость: скрыта;
}
Но этого недостаточно, нам также нужно исправить высоту option
, чтобы верхняя граница элемента option
немного перекрывала верхнюю границу трекера.
Вы можете основываться на высоте, которую мы определяем для большого пальца , в данном случае:
12px
# custom-list option {
...
минимальная высота: 12,5 пикселей; # еще немного
}
Если мы посмотрим на конец нашего входного диапазона, мы все еще видим странную границу, что-то вроде "]" (на самом деле наша входная дорожка), чтобы исправить это, давайте установим overflow: hidden
в элемент .container
:
.container {
...
переполнение: скрыто;
}
И последнее, но не менее важное: давайте удалим уродливый эффект focus
, который вводится по умолчанию:
input [type = "range"]: focus {
наброски: нет;
}
И вот! Теперь у вас есть великолепно выглядящий диапазон ввода, использующий всего несколько строк CSS.
Перед
После
Вы можете проверить полный код здесь.
Удачного кодирования !! 💻🤓
Создание ползунка доступного диапазона с помощью CSS
Мне всегда нравилось изучать, как сделать семантические доступные элементы эстетически приятными.И да, это возможно. Бросив вызов самому себе, я улучшил свои навыки работы с CSS.
Сегодня мы поговорим о input [type = "range"]
. Эти входы, в которых вы выбираете значение из ползунка с большим пальцем. Вы начинаете с HTML, который выглядит так:
ПРИМЕЧАНИЕ. Я использую визуально скрытый класс, чтобы гарантировать наличие метки для программ чтения с экрана.
Выбор цели для ползунка диапазона ввода имеет много возможностей. Вы можете использовать его для измерения громкости в децибелах. Вы можете использовать его для аудиоплеера. Вы можете использовать его в опросе при рейтинге от 1 до 10. Часто, когда люди настраивают эти функции на заказ, они даже не думают об использовании семантических функций. Они создают кучу div и не думают о доступности клавиатуры или средства чтения с экрана.
Соображения
Сегодня я собираюсь поиграться с CSS, чтобы показать вам некоторые возможности.Многое из того, что я делаю в этом посте, - это форма исследования. Я многое узнал о linear-gradient
из исследования для этой статьи, и мы рассмотрим, как я это воспринимал.
Выполняя эти шаги, я думаю о следующем:
- Поддержка браузера - Я не часто говорю о поддержке браузером. Но в соответствии с принципами POUR ваш сайт и приложение должны быть устойчивыми . В этой статье мы рассмотрим множество псевдоэлементов для надежной поддержки браузером.
- Предоставление запасного варианта - линейный градиент не всегда поддерживается. Это выглядит аккуратно, но мы должны убедиться, что у нас есть четкий способ представления диапазона, даже если это невозможно.
Начиная с
Когда мы впервые создаем этот HTML, внешний вид не впечатляет.
Первое, что мы хотим сделать, это начать с чистого листа в нашем CSS.Мы собираемся добавить позицию : relative;
на нашей обертке класса
. Затем мы добавляем внешний вид : none;
на вход нашего диапазона. Если вы посмотрите документацию Mozilla, добавление -webkit-
должно охватывать нас для Firefox, Chrome и Edge.
.wrapper {
положение: относительное;
маржа: 1бэр;
}
input [type = 'range'] {
-webkit-appearance: нет;
}
Есть несколько вещей, которые я собираюсь «нормализовать», прежде чем перейти к псевдоэлементам.Я добавляю ширину и прозрачный фон. Для этого конкретного элемента я также добавлю с максимальной шириной
.
input [type = 'range'] {
-webkit-appearance: нет;
максимальная ширина: 7 бэр; ширина: 100%; background: transparent;}
Псевдоэлементы, специфичные для браузера
Можно подумать, что можно просто добавить кучу свойств, таких как высота, цвет фона и поля, например:
input [type = 'range'] {
-моз-внешний вид: нет;
-webkit-appearance: нет;
максимальная ширина: 7 бэр;
ширина: 100%;
маржа: 0; высота: 0.9rem; background: # 464646;}
Однако, если вы используете что-то вроде BrowserStack, вы увидите что-то подобное в IE11.
В зависимости от того, что ваша аналитика говорит об использовании браузера вашей аудиторией, это может быть спорным. Возьмите эти знания и примените их так, как вам нравится. Но я верю в надежную поддержку браузера, поэтому я собираюсь рассмотреть следующие псевдоэлементы:
-
:: - webkit-slider-runnable-track
-
:: - moz-range-track
-
:: - ms-track
Примечание: если вы хотите использовать эти псевдоэлементы, вы должны создать селекторы отдельно.Это потому, что, если браузер не поддерживается, он проигнорирует весь блок.
input [type = 'range'] :: - webkit-slider-runnable-track {
высота: 0,9 бэр;
маржа: 0;
ширина: 100%;
курсор: указатель;
фон: # 464646;
}
input [type = 'range'] :: - moz-range-track {
высота: 0,9 бэр;
маржа: 0;
ширина: 100%;
курсор: указатель;
фон: # 464646;
}
input [type = 'range'] :: - ms-track {
высота: 0,9 бэр;
маржа: 0;
ширина: 100%;
курсор: указатель;
цвет: прозрачный;
фон: # 464646;
}
input [type = 'range'] :: - ms-fill-lower {
фон: прозрачный;
}
В Chrome:
В Firefox:
На краю:
В IE11:
Основное различие между свойствами внутри блоков заключается в том, что псевдоэлементу :: - ms-track
нужен цвет : прозрачный
.Нам также нужно иметь :: - ms-fill-lower
, иначе это будет выглядеть так:
Когда мы добавляем все это, у нас есть отправная точка для нашего ползунка громкости:
Теперь мы можем поиграть с частью, которую я изучал больше всего - линейным градиентом.
Использование linear-gradient
Линейный градиент меня очень долго сбивал с толку. Поскольку я больше фокусируюсь на доступности, чем на CSS, я так и не узнал всех забавных функций CSS. Мне нужна полоса громкости, которая показывает треугольник, идущий от самого низкого до самого высокого шага, давая пользователю средства чтения с экрана возможность управлять громкостью в децибелах.
Наша цель - получить что-то похожее на это:
linear-gradient
- это функция CSS, которая преобразует фон из одного или нескольких цветов в другой. Эта функция принимает множество аргументов и может быть очень простой или очень сложной.
С самой простой точки зрения вот что следует учитывать при создании линейного градиента:
- Углы и направление градиента
- Какие цвета вы хотите использовать в градиенте.
- В каком процентном соотношении вы хотите, чтобы «затухание» начиналось и прекращалось. Более формально мы называем эти цветные остановки.
У меня есть несколько примеров, с которыми я играл, которые я показываю в следующих CodePens.
Сначала радуга:
Несколько моих наблюдений:
- Если направление или угол не указаны, предполагается горизонтальный (0 градусов) угол и направление сверху вниз.
- Если вы не укажете точку остановки цвета, градиент будет распределяться равномерно.
Теперь французский флаг:
Мое первое наблюдение: я ассоциирую линейные градиенты как затухания. Но если вам нужна прямая линия, вы должны поставить «стоп» на равные значения.
.flag - fr {
фон: линейный градиент (
направо,
синий 33%,
белый 33%,
белый 66%,
красный 66%
)
}
Что, если мы захотим поиграть с затуханиями и сделать их более размытыми?
Между стопами при полной непрозрачности есть промежуток, а между этим промежутком наблюдается затухание.Веселая штука!
.flag - fr {
фон: линейный градиент (
направо,
синий 27%,
белый 33%,
белый 66%,
красный 73%)
}
Я все еще новичок в этом деле, поэтому могу поспорить, что упускаю многие детали. Но это моя версия «объясни, как будто мне пять».
Итак, это кажется касательным, но я обещаю, что это не так. Мы собираемся использовать то, что мы узнали, для создания диапазона громкости. Мы хотим визуально показать, что громкость становится выше, когда мы увеличиваем значение диапазона.Итак, мы собираемся взять код, который мы использовали в конце раздела «Начало работы», и добавить к нему linear-gradient. Помните, эти линии не будут размытыми. Нам нужно убедиться, что процент градиента совпадает.
input [type = range] :: - webkit-slider-runnable-track {
высота: 0,9 бэр;
маржа: 0;
ширина: 100%;
курсор: указатель;
фон: # 464646;
background: linear-gradient (внизу справа, прозрачный 50%, # 464646 50%);}
input [type = range] :: - moz-range-track {
высота: 0.9rem;
маржа: 0;
ширина: 100%;
курсор: указатель;
фон: # 464646;
background: linear-gradient (внизу справа, прозрачный 50%, # 464646 50%);}
input [type = range] :: - ms-track {
высота: 0,9 бэр;
маржа: 0;
ширина: 100%;
курсор: указатель;
цвет: прозрачный;
фон: # 464646;
граница: 0;
background: linear-gradient (в нижний правый, прозрачный 50%, # 464646 50%);}
Теперь это выглядит как прямоугольный треугольник с отметкой 90 градусов в правом нижнем углу.
Мой линтер SCSS будет кричать на меня о наличии двух фоновых свойств. Но мне нравится использовать сплошной цвет фона в качестве запасного варианта. Если браузер не поддерживает linear-gradient, у нас есть запасной вариант браузера.
Создание большого пальца
Теперь я хочу, чтобы большой палец был уже и выше. С точки зрения CSS это относительно просто. Вот список псевдоэлементов, чтобы убедиться, что большой палец работает в браузерах:
-
:: - webkit-slider-thumb
-
:: - moz-range-thumb
-
:: - ms- thumb
Опять же, мы должны разделить все это на отдельные селекторы, как и трек.
Мы хотим установить -webkit-appearance: none;
и установите высоту, ширину, границу и фон. Для Chrome мы добавляем отрицательное значение margin-top
, чтобы сбалансировать позиционирование. У остальных маржа отсутствует наверху
.
input [type = 'range'] :: - webkit-slider-thumb {
-webkit-appearance: нет;
высота: 1,5 бэр;
ширина: 0,5 бэр;
фон: #ffffff;
граница: сплошная 1px;
маржа сверху: -5 пикселей;
}
input [type = 'range'] :: - moz-range-thumb {
-webkit-appearance: нет;
высота: 1.5рем;
ширина: 0,5 бэр;
фон: #ffffff;
граница: сплошная 1px;
margin-top: 0;
}
input [type = 'range'] :: - ms-thumb {
-webkit-appearance: нет;
высота: 0,75 бэр;
ширина: 0,5 бэр;
фон: #ffffff;
граница: сплошная 1px;
margin-top: 0;
}
Теперь мы увидим, что дорожка высокая и белая с черной рамкой.
Теперь мы можем просто закруглить края и добавить курсор-указатель.
input [type = 'range'] :: - webkit-slider-thumb {
-webkit-appearance: нет;
высота: 1.5рем;
ширина: 0,5 бэр;
фон: #ffffff;
граница: сплошная 1px;
маржа сверху: -5 пикселей;
радиус границы: 3 пикселя; курсор: указатель;}
input [type = 'range'] :: - moz-range-thumb {
-webkit-appearance: нет;
высота: 1,5 бэр;
ширина: 0,5 бэр;
фон: #ffffff;
margin-top: 0;
радиус границы: 3 пикселя; курсор: указатель;}
input [type = 'range'] :: - ms-thumb {
-webkit-appearance: нет;
высота: 0,75 бэр;
ширина: 0,5 бэр;
фон: #ffffff;
граница: сплошная 1px;
margin-top: 0;
радиус границы: 3 пикселя; cursor: pointer;}
Источник, который мне очень помог с этим разделом: CSS Tricks
Добавление пользовательских состояний фокуса
Я хочу удалить стили фокуса (ах!) со всего ввода и поместить его на сам большой палец.Я не мог понять, как избавиться от него в Firefox, поэтому, если вы знаете, напишите мне в Твиттере и дайте мне знать!
Я собираюсь удалить контур на всем вводе и вместо этого удалить все тени прямоугольников в диапазоне ввода в фокусе:
input [type = 'range']: focus {
наброски: нет;
}
input [type = 'range']: focus :: - webkit-slider-thumb {
box-shadow: 0px 0px 7px 3px # 0065c4;
}
input [type = 'range']: focus :: - moz-range-thumb {
box-shadow: 0px 0px 7px 3px # 0065c4;
}
input [type = 'range']: focus :: - ms-thumb {
box-shadow: 0px 0px 7px 3px # 0065c4;
}
Когда становится волосатым
Если вы хотите, чтобы область между большим пальцем и началом диапазона была другого цвета, это может усложниться.Эта дифференциация указывает на прогресс, не путать с элементом прогресса.
К сожалению, используя псевдоэлементы, мы поддерживаем только Edge, IE и Firefox. Есть псевдоэлементы :: - ms-fill-lower
и :: - moz-range-progress
, но для Chrome их нет. Я пробовал делать это в JavaScript, но это звучит как кошмар производительности и слишком много математики.
Вы можете проверить CodePen, где я использую эти псевдоэлементы.
Заключение
Спасибо за чтение и обучение вместе со мной! Надеюсь, я помог вам изучить и понять, что эстетика и доступность не исключают друг друга. Вам просто нужно уделить время и все обдумать.
Оставайтесь на связи! Если вам понравилась эта статья:
Закажи сейчас!
Доступно руководство Bootcamper по веб-доступности.
Заказать сейчас
Ура! Желаю хорошей недели!
О Линдси
Линдси - эксперт по специальным возможностям, любитель JavaScript и фронтенд-разработчик, увлеченный инклюзивностью как внутри, так и за пределами сети.Узнайте больше о ней на странице «О нас».
Создайте красивый диапазон ввода, используя только CSS !!
Все мы, как разработчики, знаем важность элемента тега
, без него у нас не было бы возможности получать какие-либо данные от пользователя.
Есть много типов, которые мы можем использовать в элементе input
, и каждый из них изменяет поведение элемента, вот список наиболее распространенных типов ввода:
text : Значение по умолчанию .Однострочное текстовое поле.
кнопка : кнопка без поведения по умолчанию, отображающая значение атрибута value, по умолчанию пустая. Если он находится внутри тега , он отправит форму при нажатии.
флажок : флажок, позволяющий выбирать / отменять выбор отдельных значений.
цвет : элемент управления для указания цвета; открытие палитры цветов, когда она активна в поддерживающих браузерах.
палитра цветов
электронная почта : поле для редактирования адреса электронной почты.Похож на ввод текста , но с параметрами проверки на поддерживаемых устройствах.
пароль : однострочное текстовое поле, значение которого скрыто. Предупреждает пользователя, если сайт небезопасен.
номер : Элемент управления для ввода числа. Отображает счетчик и добавляет проверку по умолчанию, если поддерживается.
скрыто : элемент управления, который не отображается, но значение которого отправляется на сервер.
Изображение отсутствует по очевидной причине
диапазон : Элемент управления для ввода числа, точное значение которого не имеет значения.Отображается как виджет диапазона со средним значением по умолчанию.
Как мы видим, есть много типов, которые мы можем использовать, вы можете проверить их подробно здесь
В этом посте я покажу вам как изменить стиль по умолчанию для типа ввода диапазона , чтобы он выглядел лучше.
ПРИМЕЧАНИЕ. Весь приведенный ниже код работает только в Chrome и Opera, TBH Я даже не пытался исправить какие-либо визуальные ошибки в любом другом браузере.
Самая простая реализация диапазона ввода выглядит так:
Это будет отображаться так же, как показано выше:
- диапазон : элемент управления для ввода числа, точное значение которого не имеет значения.Отображается как виджет диапазона со средним значением по умолчанию.
У нас есть некоторые дополнительные свойства при использовании этого элемента:
-
значение
: строковое представление числа, хотя оно не может быть пустой строкой (""
). Значение по умолчанию всегда находится посередине междумин.
имакс.
. Вот как рассчитывается:
defaultValue = (rangeElem.max
макс.
и мин.
: максимальное и минимальное допустимые значения.
-
шаг
: интервал шага. -
список
: идентификатор элемента
Хорошо! достаточно HTML Input 101, давайте добавим стиль к этому вводу !.
Сначала нам нужна базовая структура html, примерно такая:
Приведенная выше разметка отображает следующее:
Он отображает хэш-метку для каждого элемента
.
Thumb and tracker
На любом элементе управления слайдером у нас есть 2 элемента, с которыми мы можем взаимодействовать, ползунок и трекер , ползунок - это просто маленький виджет, который позволяет перетаскивать по дорожке:
Они называются Shadow DOM elements , и мы действительно можем стилизовать их с помощью CSS, так что давайте начнем с этого.
Включить теневой DOM пользовательского агента
Я рекомендую вам включить Shadow DOM в вашем браузере, так как мы не можем проверять эти элементы по умолчанию, и иногда проще просто манипулировать элементом непосредственно из инструментов разработчика вместо обычных процесс: изменить, сохранить и перезагрузить.
Я покажу вам, как активировать его с помощью Opera, но в Chrome это работает так же, и я почти уверен, что в FF это так же просто, как и в Opera (это просто флажок, не должно быть большая проблема для любого браузера).
Откроется раздел настроек. Затем нам нужно только проверить параметр « Показать теневой DOM пользовательского агента» в списке Elements :
Теперь, если мы проверим ввод, вместо того, чтобы выглядеть как обычный элемент ввода:
Мы будем см. разметку немного по-другому:
Внутри ввода есть элементы, которые представляют трекер и бегунок, теперь будет легче проверять и изменять стили для этих элементов.
СтилизацияДавайте начнем с стилизации нашего элемента контейнера и удаления стандартного внешнего вида ввода
.container {
положение: относительное;
максимальная ширина: 450 пикселей;
переполнение: скрыто;
}
input [type = "range"] {
-webkit-appearance: нет;
ширина: 100%;
}
Для стилизации большого пальца и трекера у нас есть псевдоэлементов :
-
:: - webkit-slider-runnable-track
: Селектор для трекера. -
:: - webkit-slider-thumb
: Селектор для большого пальца.
IE и FF также имеют свои псевдоэлементы: : -moz-range-track
и :: - moz-range-thumb
для FF, :: - ms-track
и :: - ms -thumb
для IE
Используя это, мы применим наши пользовательские стили, начнем с трекера:
input [type = "range"] :: - webkit-slider-runnable-track {
ширина: 100%;
высота: 1,2 мм;
курсор: указатель;
граница: 1px solid # 29334f;
переполнение: скрыто;
}
Мы устанавливаем границу вокруг трекера и скрываем весь переполненный контент, теперь он должен выглядеть примерно так:
Я знаю, я знаю! Это выглядит действительно некрасиво, поэтому давайте исправим это, применив какой-нибудь стиль к ползунку:
input [type = "range"] :: - webkit-slider-thumb {
высота: 12 пикселей;
ширина: 45 пикселей;
курсор: указатель;
-webkit-appearance: нет;
нижняя граница: 1px solid # 29334f;
box-shadow: 0 0 0 красный, -40px 0 0 красный, -85px 0 0 красный, -130px 0 0 красный,
-175px 0 0 красный, -220px 0 0 красный, -265px 0 0 красный, -310px 0 0 красный,
-350px 0 0 красный, -390px 0 0 красный, -409px 0 0 красный;
фон: черный;
}
Сначала удалите внешний вид по умолчанию для большого пальца, затем мы создаем тень блока (на самом деле 10) для большого пальца и располагаем их один за другим, так что теперь ввод выглядит лучше:
Помните, у нас есть Если shadowDOM активен, если что-то выглядит не так, просто проверьте элемент и измените стиль по своему усмотрению.
Теперь все, что нам нужно сделать, это добавить стиль в элемент
:
# custom-list {
дисплей: гибкий;
justify-content: пробел между;
}
# custom-list option {
положение: относительное;
фон: белый;
верх: 18 пикселей;
border-left: сплошной черный цвет 1px;
border-right: сплошной черный 1px;
}
У нашего списка данных есть гибкий экран, и его элементы выровнены с промежутком между ними, затем мы просто помещаем весь элемент списка данных перед нашим входным диапазоном (он был наверху).Наконец, мы просто устанавливаем левую и правую границы для каждого элемента option. Вот как это выглядит:
Несмотря на то, что наш входной диапазон начинает обретать форму, все равно выглядит немного странно, поэтому давайте исправим это.
Первая проблема, это первый элемент option
с двумя границами, нам это не нужно, поэтому давайте скроем его
# custom-list option: first-of-type {
видимость: скрыта;
}
Но этого недостаточно, нам также нужно исправить высоту option
, чтобы верхняя граница элемента option
немного перекрывала верхнюю границу трекера.
Вы можете основываться на высоте, которую мы определяем для большого пальца , в данном случае: 12px
# custom-list option {
...
минимальная высота: 12,5 пикселей; # еще немного
}
Если мы посмотрим на конец нашего входного диапазона, мы все еще видим странную границу, что-то вроде "]" (на самом деле это наша входная дорожка), чтобы исправить это, давайте установим overflow: hidden
в .container
element:
.container {
...
переполнение: скрыто;
}
И последнее, но не менее важное: давайте удалим уродливый эффект focus
, который по умолчанию имеет input:
input [type = "range"]: focus {
наброски: нет;
}
Вот и все !! Теперь у вас есть великолепно выглядящий диапазон ввода, использующий всего несколько строк CSS.
До
После
Вы можете проверить полный код здесь.
Удачного кодирования !! 💻🤓
30+ слайдеров диапазона CSS - бесплатный код + демонстрации
1.Ползунок диапазона одноколесного велосипеда
Ввод диапазона, при котором фигурка изображена на одноколесном велосипеде, колесом которого является ручка. Наблюдайте, как он крутит педали, и флаг показывает значение, когда вы перетаскиваете колесо влево и вправо! Обновление 20.05.20: Пытался исправить отзывчивый размер из-за критики со стороны веб-разработчиков за то, что это не реагирует. Я могу ...
Прочитайте больше
Автор: Джон Кантнер (jkantner)
Дата создания: 5 марта 2020 г.
Сделано с помощью: HTML, CSS, JS
Теги: одноколесный велосипед, ввод диапазона, элементы управления формой, линии, фигурка
2.CSS Custom Range Slider
Автор: Brandon McConnell (brandonmcconnell)
Создано: 20 декабря 2018 г.
Сделано с помощью: HTML, SCSS, JS
3. Калькулятор веса Марса диапазона ползунка
Автор: Marine Piette (mayuMPH)
Создано: 1 августа 2018 г.
Сделано с помощью: HTML, SCSS, JS
4. Ввод кроссбраузерного диапазона с сплошной нижней заливкой
Используется бокс тень на элементе псевдо-ползунка, чтобы создать заливку в пределах ввода диапазона.Работает везде, где я тестировал, поддерживает ввод диапазона.
Автор: Ноа Блон (noahblon)
Дата создания: 10 ноября 2015 г.
Сделано с помощью: HTML, CSS
5. Минимальный стиль входного диапазона (только CSS)
Автор: Renaud Tertrais (renaudtertrais)
Создано: 21 августа 2015 г.
Сделано с помощью: HTML, Less, JS
Теги: flat ui css3 минимальный ввод
6.Prettify `
`Цель: создать хорошо оформленный кроссбраузерный слайдер с одним элементом. Протестировано и работает в Firefox 36, 39 (ночью), Chrome 41, 43 (канарейка) / Opera 28, IE 11 в Windows 8. CSS только в Firefox и IE. Для Chrome / Opera требуется очень мало JS. Имеет парочку приятных дополнений в Chrome / Opera - ро ...
Прочитайте больше
Автор: Ана Тудор (thebabydino)
Дата создания: 21 марта 2015 г.
Сделано с помощью: SCSS, JS
Теги: слайдер, javascript
7.Prettify
Цель: создать хорошо оформленный кроссбраузерный слайдер с 1 элементом. Протестировано и работает в Firefox 36, 39 (ночью), Chrome 41, 43 (канарейка) / Opera 28, IE 11 в Windows 8. Требуется очень мало JS. В Chrome / Opera есть несколько приятных дополнений - форма большого пальца и нумерация блоков. Эти ар ...
Прочитайте больше
Автор: Ана Тудор (thebabydino)
Дата создания: 19 марта 2015 г.
Сделано с помощью: HTML, SCSS, JS
Теги: javascript, 80007
слайдер.Prettify
2Цель: создать хорошо оформленный кроссбраузерный слайдер с одним элементом. Протестировано и работает в Firefox 36, 39 (ночью), Chrome 41, 43 (канарейка) / Opera 28, 29 beta, IE 11 в Windows 8. Только CSS в Firefox и IE / для Chrome / Opera не требуется много JS. Строки выглядят не очень хорошо в Chrome 41 / Opera. Произошел переворот ...
Прочитайте больше
Автор: Ана Тудор (thebabydino)
Дата создания: 17 марта 2015 г.
Сделано с помощью: HTML, SCSS, JS
Теги: javascript,
слайдер
PrettifyЦель: создать хорошо оформленный кроссбраузерный слайдер с 1 элементом. Протестировано и работает в Firefox 36, 39 (ночью), Chrome 41, 43 (канарейка) / Opera 28, IE 11 в Windows 8. Имеет несколько приятных дополнений в Chrome / Opera - отображение меток вдоль дорожек. Это достигается за счет использования псевдоэлементов на t ...
Прочитайте больше
Автор: Ана Тудор (thebabydino)
Дата создания: 16 марта 2015 г.
Сделано с помощью: SCSS
Теги: слайдер
10.Тип ввода-диапазон
Цель: создать хорошо оформленный кроссбраузерный слайдер с одним элементом. Протестировано и работает в Firefox 36, 39 (ночью), Chrome 41, 43 (канарейка) / Opera 28, IE 11 в Windows 8. Требуется очень мало JS. В Chrome / Opera есть небольшая приятная особенность - символ выключения на большом пальце. Это достигается с помощью пс ...
Прочитайте больше
Автор: Ана Тудор (thebabydino)
Дата создания: 15 марта 2015 г.
Сделано с помощью: HTML, SCSS, JS
Теги: javascript, 110007
слайдер.Кроссбраузерный слайдер с одним элементом
Цель: создать красиво оформленный кроссбраузерный слайдер с одним элементом. Протестировано и работает в Firefox 36, 39 (ночью), Chrome 41, 43 (канарейка) / Opera 28, IE 11 в Windows 8. Только CSS в Firefox и IE / для Chrome / Opera требуется очень мало JS. Есть пара приятных дополнений в Chrome / Opera - правило отображения ...
Прочитайте больше
Автор: Ана Тудор (thebabydino)
Дата создания: 12 марта 2015 г.
Сделано с помощью: SCSS, JS
Теги: javascript, слайдер
12.# Таблица стилей # Input [type = 'range'] __ Equalizer
Это первая попытка стилизации элемента InputRange без extraDom или JS.
Автор: Long Lazuli (long-lazuli)
Дата создания: 18 февраля 2015 г.
Сделано с помощью: HTML, SCSS
Теги: css, slider, html 130007 Ползунок ввода
В этой коллекции вы можете увидеть остальные ползунки ввода 1 диапазона. Цель: создать красиво оформленный кроссбраузерный слайдер с 1 элементом.Протестировано и работает в Firefox 35, 38 (ночью), Chrome 40, 42 (канарейка) / Opera 28, IE 11 в Windows 8. IE не нуждается в JS, Firefox и Chrome / Opera полагаются на него ...
Прочитайте больше
Автор: Ана Тудор (thebabydino)
Дата создания: 15 февраля 2015 г.
Сделано с помощью: SCSS, JS
Теги: javascript, слайдер
14
Автор: Крис Койер (chriscoyier)
Дата создания: 5 ноября 2014 г.
Сделано с помощью: HTML, CSS
15.Ввод диапазона: Изменить текущее значение
В реальном времени изменить значение входного диапазона с помощью JavaScript addEventListener
Автор: Хорхе Эпуньян (juanbrujo)
Дата создания: 13 мая 2014 г.
Сделано с: HTML, Less, JS
Теги: javascript, input, range
16. 3D Html5 Range Price Slider
ползунок цен диапазона HTML5 3D CSS, вдохновленный концепцией Эрика Дайнера: http: // dribbble.com / shots / 435827-Concept-for-budget-price-slider Работает только с Chrome
Автор: Винсент Дюран (онедив)
Дата создания: 23 октября 2013 г.
Сделано с помощью: HTML , CSS, JS
Теги: css3, 3d, диапазон, слайдер
17. Создание настраиваемого диапазона ввода | Pure Css3
Создать собственный диапазон ввода Pure Css3
Автор: Okba Design (Okba-Design)
Дата создания: 21 июля 2020 г.
Сделано с помощью: HTML, CSS
Теги : create, custom, input, range, чистый
18.Ползунок диапазона с использованием HTML и CSS
Ссылка из онлайн-руководств
Автор: Мухаммад Фадзрин Маду (fadzrinmadu)
Создано: 9 июля 2020 г.
Сделано с помощью: HTML, CSS
Теги: html, css, range, слайдер
19. Вертикальный слайдер диапазона
Автор: Джош Стовалл (joshstovall)
Дата создания: 29 мая 2020 г.
Сделано с помощью: HTML, CSS
Теги: диапазон, слайдер, вертикаль, форма, ввод
20.Неуморфный дизайн ползунка диапазона на чистом CSS3
Это ползунок диапазона, модифицированный с использованием чисто CSS для создания скевморфного дизайна. Дизайн был вдохновлен трехмерной анимацией, увиденной на dribbble от herolabs. Ползунок диапазона полностью функционален и не использует никаких изображений, а только CSS. Наслаждайтесь 🙂
Автор: Elijah (prof2k)
Дата создания: 22 февраля 2020 г.
Сделано с помощью: HTML, CSS, JS
Теги: css3, design, skeumorphic, slider , диапазон
21.Боковая навигация Gatsby - перевод SVG
Нарисуйте SVG, который в конечном итоге включен в проект, воссоздающий боковую навигацию Gatsby. Ссылки Gatsby Side Navigation, окончательный результат. Gatsby Docs, в первую очередь вдохновивший на проект. Не забудьте изменить размер области просмотра, чтобы она была меньше 750 пикселей, чтобы полюбоваться навигацией.
Автор: Габриэле Корти (borntofrappe)
Дата создания: 12 ноября 2019 г.
Сделано с помощью: HTML, CSS, JS
Теги: svg, ввод, диапазон, перевод, масштаб
22.Чистый CSS - Классный слайдер
Автор: CodeMeNatalie (CodeMeNatalie)
Дата создания: 14 октября 2019 г.
Сделано с помощью: HTML, SCSS
Теги: pure, css, slider
23. Ползунок диапазона на чистом CSS (кроссбраузерный)
Автор: Manitoba (Манитоба)
Дата создания: 20 апреля 2016 г.
Сделано с помощью: HTML, CSS, JS
24.Динамический фон сетки с настраиваемыми свойствами
Фон сетки, созданный с помощью нескольких градиентов CSS, размер которых определяется настраиваемыми свойствами CSS (также известными как переменные CSS). Динамически изменяйте размер сетки с помощью ползунка диапазона (с элементом вывода). Работает на собственном HTML и ванильном JS.
Автор: Allison Richmond (vengeanceindustries)
Дата создания: 6 ноября, 2019
Сделано с помощью: HTML, SCSS, JS
Теги: ползунок диапазона, настраиваемые свойства, градиент фона , css-переменные
25.CSS Range Slider
Стилизация ползунка диапазона ввода с помощью чистого CSS. JS только для того, чтобы получить значение.
Автор: Шон Стопник (seanstopnik)
Дата создания: 3 февраля 2014 г.
Сделано с помощью: HTML, SCSS, JS
Теги: range-slider, sass, input, range , ползунок
26. Точка-ползунок с переключателем (чистый CSS)
Ползунок с перемещением по диапазону, со скользящим точечным индикатором, метками, стилем с условием действительности и БЕЗ JS.Работает на 100% на сайтах с ограниченным использованием JS.
Автор: Brandon McConnell (brandonmcconnell)
Дата создания: 22 октября 2018 г.
Сделано с помощью: HTML, SCSS
Теги: range, no-js only, form, css , range-slider
27. Тест слайдера CSS
Автор: Kasper De Bruyne (kdbkapsere)
Дата создания: 22 марта 2018 г.