如何通过CSS样式合并两个type = range的输入?

时间:2019-04-20 10:19:23

标签: html css html5 css3

我有两个类型为“ range”的输入。我想将两者合并。

我想制作一个双滑块,但是,如果我将两个元素放在另一个之上,则只有最上面的一个接受鼠标单击。我不希望使用任何外部库来执行此操作。我是通过 css 样式完成此操作的,但主要问题是它无法在Mozilla浏览器和IE中工作。它只适用于chrome浏览器,我认为这是由于指针事件引起的:尚未在Mozilla浏览器中运行。有想法吗?

**css :**
.price-slider {
    position: relative;
    width: 400px;
    margin: 0 auto 20px;
    height: 35px;
    text-align: center;
}

.price-slider input {
    pointer-events: none;
    position: absolute;
    left: 0;
    top: 15px;
    width: 100%;
    outline: none;
    height: 18px;
    margin: 0;
    padding: 0;
    border-radius: 8px;
}

.price-slider input::-webkit-slider-thumb {
    pointer-events: all;
    position: relative;
    z-index: 1;
    outline: 0;
    height: 24px;
    widows: 24px;
    border-radius: 12px;
    background-color: white;
    border: 2px solid black;
    -webkit-appearance: none;
}

**HTML:**
<div class="price-slider">
    <input value="0" min="0" value="0" max="100" step="1" type="range" />
    <input value="100" min="0" value="100" max="100" step="1" type="range" />
</div>

1 个答案:

答案 0 :(得分:1)

这应该可以解决您的问题,但有关信息,pointer-events属性也可以在firefox中使用,而无需任何前缀。

.price-slider {
  position: relative;
  width: 400px;
  margin: 0 auto 20px;
  height: 35px;
  text-align: center;
}

.price-slider input {
  pointer-events: none;
  position: absolute;
  left: 0;
  top: 15px;
  width: 100%;
  outline: none;
  height: 18px;
  margin: 0;
  padding: 0;
  border-radius: 8px;
}

.price-slider input::-webkit-slider-thumb {
  pointer-events: all;
  position: relative;
  z-index: 1;
  outline: 0;
  height: 24px;
  widows: 24px;
  border-radius: 12px;
  background-color: white;
  border: 2px solid black;
  -webkit-appearance: none;
}

.price-slider input::-moz-range-thumb {
  pointer-events: all;
  position: relative;
  z-index: 1;
  outline: 0;
  height: 24px;
  widows: 24px;
  border-radius: 12px;
  background-color: white;
  border: 2px solid black;
  -moz-appearance: none;
}

input::-moz-range-track {
  background: #ccc;
}
<div class="price-slider">
    <input value="0" min="0" value="0" max="100" step="1" type="range">
    <input value="100" min="0" value="100" max="100" step="1" type="range">
</div>