Input range стилизация под окружность

Input range стилизация под окружность

Input range стилизация под окружность Input range стилизация под окружность

Видео:Price Range Slider with Min-Max Input in HTML CSS & JavaScriptСкачать

Price Range Slider with Min-Max Input in HTML CSS & JavaScript

Стилизация ползунка

Input range стилизация под окружность

Добрый день! Тема сегодняшней рубрики css — стилизация ползунка(поля range). Итак, приступим к рассмотрению!

Для начала создадим ползунок:

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

Зададим ему ширину 200px.

Здесь помимо ширины мы указали специальное свойство appearance которое отвечает за базовые стили отображения элемента вашей операционной системы. Значение ‘none’ указывает на то что мы эти стили сбрасываем. По итогу поле range будет отображаться не полностью. Это нам необходимо чтобы задать свои собственные стили для ползунка. Заметьте что вместе со свойством ‘appearance’ мы используем вендорные префиксы -webkit — Для браузеров на движке хромиум(google chrome) и -moz — для браузера mozilla firefox. Сразу отмечу что мы нацелены только на современные браузеры без всяких там IE(Internet Explorer).

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

Для браузеров webkit(google chrome, chromium) используются псевдоселекторы -webkit-slider-runnable-track, -webkit-slider-thumb, а для mozilla firefox -moz-range-track, -moz-range-thumb.

track — на конце каждого псевдоселектора отвечает за стилизацию полосы ползунка, а thumb за сам элемент ползунка. Отображение в разных браузерах может немного отличаться но в целом по стилистике будет одинаковым. Можете взять пример и поиграться со стилями!

Еще один пример стилизации:

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

На этом в принципе у меня все. Если статья оказалась для вас полезной, подписывайтесь на группу Вконтакте и переходите на мой канал Youtube.

Всем удачи и здоровья!

Оцените статью:

Статьи

Комментарии

Внимание. Все комментарии проходят модерацию перед публикацией!

В данном разделе пока нет комментариев!

Input range стилизация под окружность

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm

Видео:Input type range. Стилизация.Скачать

Input type range. Стилизация.

Стилизуем слайдер input range для всех популярных браузеров

Input range стилизация под окружность

Работает со всеми популярными браузерами:

новый Edge (на Chromium)

старый Edge (не на Chromium, ныне почивший)

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

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

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

Видео:Custom Range Slider using HTML CSS & Javascript | CodingNepalСкачать

Custom Range Slider using HTML CSS & Javascript | CodingNepal

Стилизация и создание скриптов для ползунков

В настоящее время я работаю над своим первым оплачиваемым проектом. Помимо всего прочего в этом проекте от меня требуется стилизация и написание скриптов для ползунков. Есть несколько интересных моментов, на которые мне бы хотелось обратить ваше внимание, такие как проблемы отображения в IE , Android WebKit и правильное использование событий ввода и изменения. А также краткий обзор синтаксиса.

Вот мой пример . В этом конкретном случае пользователей из Голландии с помощью ползунков просят разделить 100 миллионов евро бюджетных средств между несколькими ведомствами. При этом общее значение всех ползунков не должно превышать 100 ( миллионов ), что требует написание небольшого скрипта.

Видео:КРАСИВЫЙ ПОЛЗУНОК С ПЕРЕДВИГАЮЩИМСЯ ЗНАЧЕНИЕМ HTML+CSS+JSСкачать

КРАСИВЫЙ ПОЛЗУНОК С ПЕРЕДВИГАЮЩИМСЯ ЗНАЧЕНИЕМ HTML+CSS+JS

Ползунок, дорожка и бегунок

Вот ползунок. Технически он известен как , и он не поддерживается IE9 и ниже.

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

Input range стилизация под окружность

Основы стилей

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

Для бегунка используется -webkit-slider-thumb , -moz-range-thumb или -ms-thumb .

К дорожке можно « обратиться » с помощью -webkit-slider-runnable-track , -moz-range-track или -ms-track .

Нельзя комбинировать эти селекторы в одном правиле, даже несмотря на то, что правильнее использовать для всех браузеров одни и те же стили ( кроме отступов для бегунка ). Если браузер находит один селектор, который он не распознает, то игнорирует все остальные. Поэтому вам придется повторяться или использовать генератор CSS на серверной стороне.

IE и MS Edge требуют прозрачный color и border-color на дорожке, или они отобразят стили дорожки по умолчанию. Кроме того, для ползунка им нужны иные отступы, чем в других браузерах.

В моем примере высота ползунка примерно 40 пикселей. Оказывается, в основных стилях ползунка установлено свойство overflow: hidden , которое скрывает большую часть ползунка в Edge и IE . Чтобы исправить это, мне пришлось явно задать высоту ползунка.

В IE , но не в Edge , ползунок имеет отступ. Поэтому задайте отступ padding: 0 и спасите себя от головной боли.

Я читал несколько раз, что MS Edge должен поддерживать свойства -webkit- . Но на практике оказалось, что невозможно работать с одним набором стилей и для Edge , и для WebKit/Blink . Я советую использовать отдельные -ms- стили хотя бы потому, что они нужны для IE10 и IE11 . Лучше всего определить стили -ms- после -webkit- : таким образом -ms- стили будут точно выполняться в Edge .

В браузерах, построенных на основе движков WebKit и Blink , бегунок имеет по умолчанию box-sizing: border-box , в то время как во всех остальных браузерах, значение этого свойства равно content-box . Лучше задать box-sizing для бегунка в явном виде.

WebKit и Blink также требуют -webkit-appearance: none , но с одним исключением. Смотрите ниже.

CSS шаблон

Все эти несущественные проблемы приводят к следующему шаблону CSS :

Свойство appearance и ошибка Android WebKit

Еще один недостаток в браузерах на основе WebKit и Blink заключается в том, что вы должны установить свойство -webkit-appearance: none для ползунка и для бегунка ( но не для дорожки ). Это показано в шаблоне CSS , приведенном выше.

Настоящая проблема в том, что Android WebKit требует от вас не использовать это объявление. Если вы добавите -webkit-appearance: none , Android WebKit будет неправильно отображать ваши стили. Удаление этого кода исправляет ошибку, но тогда стили ползунка не будут отображаться в Safari , Chrome и некоторых других браузерах. Решим эту проблему вместе.

Мы задали в CSS -webkit-appearance: none , это единственное решение, у которого есть будущее. В Android WebKit мы хотим изменить значение на slider-horizontal . Но как мы узнаем, что мы в Android WebKit ?

Распознавание браузера? Так не принято в наших кругах – что и к лучшему: это не сработало бы в Xiaomi Chromium 34 ( или 35 ), который базируется на Chromium и, следовательно, требует значение none, но при этом « маскируется » под Android .

Моим первоначальным планом было получить доступ к стилям бегунка и посмотреть, соответствуют ли они моим. Если они не подходят, то мы применяем slider-horizontal :

Оказывается, этот подход всегда выводит стили по умолчанию, а не ваш CSS . Говоря в общих чертах, скрипты, которые пытаются сделать что-то с дорожкой или бегунком, имеют тенденцию не работать.

Затем я увидел, что это применение getComputedStyle() не поддерживается в Android WebKit . Ни один стиль не возвращается, даже стили по умолчанию.

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

Вы можете выполнить тест один раз и использовать результаты для каждого ползунка. Неважно, какое свойство CSS вы тестируете, проверьте, действительно ли оно существует. Если значение не возвращается, то устанавливаем -webkit-appearance: slider-horizontal для каждого ползунка. Проблема решена. Даже лучше, другие браузеры игнорирует нас, пока мы используем — webkit- .

Заполнение полосы прогресса

В моем примере дорожка слева от бегунка должна иметь цвет фона отличный от дорожки справа. IE/Edge и Firefox предлагают для этого использовать псевдоэлементы, WebKit и Blink – нет. Этот код решает проблему во всех версиях IE , Firefox и Edge :

Что касается браузеров на основе WebKit- и Blink, то тут нужно решение с JavaScript. Я одолжил свое из примеров Ana Tudor . В этом решении используется линейный градиент со стоп-цветом, вычисляемым от текущего значения ползунка. Посмотрите скрипт , особенно код функции handleSlider() .

Всплывающие подсказки

Ana Tudor также показала, как можно использовать псевдоэлемент :before в качестве стилизованной подсказки, содержащей текущее значение. К сожалению, выяснилось, что в этом случае IE/Edge и Firefox не поддерживают :before или :after . В IE/Edge есть встроенная подсказка ( смотрите ниже ), но в Firefox невозможно отобразить всплывающие подсказки.

Я пробовал движущийся элемент, реагирующий на перемещение бегунка, но написание скриптов не срабатывает, и получить текущие координаты бегунка невозможно. Также пытался использовать текущее значение ползунка вместо координат, но попытка завершилась провалом. В конечном счете, мы решили использовать статическую подсказку ( которая в действительности не выглядит как подсказка ).

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

События ввода и изменения

Когда пользователь передвигает бегунок по дорожке, ползунок может вызывать события ввода или изменения. Одни браузеры непрерывно « порождают » события во время перемещения, другие – только после остановки перемещения.

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

Хотя стабильное отслеживание каждого отдельного пикселя перемещения возможно в некоторых браузерах, а другие браузеры вообще не поддерживают это. И это привело бы к лишним затратам ресурсов, особенно на мобильных устройствах. Но я был бы рад, если кто-нибудь опровергнет эти предположения.

🌟 Видео

Custom Range Slider Design HTML | CSS | Javascript (Quick Tutorial)Скачать

Custom Range Slider Design HTML | CSS | Javascript (Quick Tutorial)

JS-плагины №10. Range слайдер для цены - nouislider.jsСкачать

JS-плагины №10. Range слайдер для цены - nouislider.js

Custom Animated Range Slider using HTML CSS & JavaScriptСкачать

Custom Animated Range Slider using HTML CSS & JavaScript

Input Range Formatting | HTML CSS | Sekhon Design & CodeСкачать

Input Range Formatting | HTML CSS | Sekhon Design & Code

JavaScript quick tips 🍇 | HTML range input | setInterval() methodСкачать

JavaScript quick tips 🍇 | HTML range input | setInterval() method

#50 input:in-range | CSS | Frontend #shortsСкачать

#50 input:in-range | CSS | Frontend #shorts

Custom Range Slider - HTML + CSS + JSСкачать

Custom Range Slider - HTML + CSS + JS

#16 Перетаскивание Drag and Drop, делаем слайдер Range на JavaScript и CSSСкачать

#16 Перетаскивание Drag and Drop, делаем слайдер Range на JavaScript и CSS

CSS Custom Range Slider 2 | Html CSS and JavascriptСкачать

CSS Custom Range Slider 2 | Html CSS and Javascript

Range Input with React & Styled componentsСкачать

Range Input with React & Styled components

Красивое текстовое поле с плейсхолдером вверху HTML + CSSСкачать

Красивое текстовое поле с плейсхолдером вверху HTML + CSS

Урок по CSS - стилизуем input type=range: Часть 1Скачать

Урок по CSS - стилизуем input type=range: Часть 1

Стилизация форм на HTML и CSSСкачать

Стилизация форм на HTML и CSS

JavaScript. Число над слайдеромСкачать

JavaScript. Число над слайдером

Custom Range Slider | HTML, CSS & Javascript | With Source CodeСкачать

Custom Range Slider | HTML, CSS & Javascript | With Source Code
Поделиться или сохранить к себе: