我希望左侧为绿色,右侧为灰色。如上图所示将是完美的。最好是纯 CSS 解决方案(只需要担心 WebKit)。
这样的事情可能吗?
原文由 Shamoon 发布,翻译遵循 CC BY-SA 4.0 许可协议
虽然接受的答案在理论上是好的,但它忽略了这样一个事实,即拇指不能大于轨道的大小而不被 overflow: hidden
。请参阅此示例,了解如何仅使用少量 JS 来处理此问题。
// .chrome styling Vanilla JS
document.getElementById("myinput").oninput = function() {
var value = (this.value-this.min)/(this.max-this.min)*100
this.style.background = 'linear-gradient(to right, #82CFD0 0%, #82CFD0 ' + value + '%, #fff ' + value + '%, white 100%)'
};
#myinput {
background: linear-gradient(to right, #82CFD0 0%, #82CFD0 50%, #fff 50%, #fff 100%);
border: solid 1px #82CFD0;
border-radius: 8px;
height: 7px;
width: 356px;
outline: none;
transition: background 450ms ease-in;
-webkit-appearance: none;
}
<div class="chrome">
<input id="myinput" min="0" max="60" type="range" value="30" />
</div>
原文由 dargue3 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答969 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
2 回答935 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
纯 CSS 解决方案:
input[range]
的溢出,并用阴影颜色填充拇指留下的所有空间。::-ms-fill-lower
::-moz-range-progress