Проблема с нестандартным дизайном слайдера

Я хочу создать собственный HTML-слайдер <input type = "range">, который имеет несколько цветных конечных точек, например:

Проблема с нестандартным дизайном слайдера

В настоящее время я могу добиться результата, показанного на картинке, следующим образом:

input[type = "range"] {
  &:before{
    content:'';
    position:absolute;
    background-color:red;
    // width, height, positioning, ...
  }
  &:after{
    content:'';
    position:absolute;
    background-color:green;
    ...
  }

При перемещении ручки в начало или конец диапазона получается следующее:

Проблема с нестандартным дизайном слайдера

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

Я также попытался дать разные значения z-index классам, зависящим от браузера (например, ::-webkit-slider-runnable-track, ::-webkit-slider-thumb, ...), но это тоже не помогло.

Можно ли закрасить цветные точки «между» направляющей и ручкой так, чтобы точка находилась наверху направляющей, а ручка закрывала ее?

Можете ли вы скопировать и вставить полный код, чтобы я мог это исправить

Sonia 17.10.2018 13:32

Я создал для него скрипку: jsfiddle.net/rnsh4wax В настоящее время он работает только для Chrome

martink 17.10.2018 13:52
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
1
2
71
1

Ответы 1

input[type = "range"]:before{
  content:'';
  z-index: 5;
  position:absolute;
  width: 10px;
  height: 10px;
  top: 10px;
  left:-10px;
  background-color:red;
}
input[type = "range"]:after{
  content:'';
  z-index: -1;
  position:absolute;
  width: 10px;
  height: 10px;
  right: -10px;
  top: 10px;
  background-color:green;
}

Вы не можете поместить элементы :before и :after за родительскими элементами. Так что, может быть, если вы поместите элементы :before/:after до и после шкалы диапазона с left:-10px; и right: -10px;, ваша проблема будет решена?

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

martink 18.10.2018 16:32

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

aflyzer 18.10.2018 16:45

Другие вопросы по теме