使用JavaScript更改范围输入样式

时间:2018-06-04 15:45:48

标签: javascript html css css-selectors pseudo-element

您可以使用::-webkit-slider-thumb::-moz-range-thumb&更改HTML5滑块的“拇指”(旋钮)的CSS样式。 ::-ms-thumb选择器。

您可以使用::-webkit-slider-runnable-track::-moz-range-track&更改HTML5滑块的“轨道”(凹槽)的CSS样式。 ::-ms-track选择器。

但是如果我想通过JavaScript改变“拇指”或“跟踪”的样式呢?

这可能吗?如果这是可能的,我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

正如您所发现的,这可以通过自定义属性来完成,并且假设浏览器兼容性不是问题(我不知道是否有任何浏览器,特别是Edge和Safari,在pseudo上有自定义属性的问题元素,但值得一试),自定义属性是使用JavaScript自定义伪元素样式的理想方式,作为CSSOM的解决方法,目前仅支持读取伪元素样式但不写入它们。

如果您担心浏览器兼容性,则必须采用传统方式,如here所述:

  

你可以随时找到其他方法,例如:

     
      
  • 将样式应用于一个或多个任意类的伪元素,然后在类之间切换(请参阅seucolega's answer以获取快速示例) - 这是惯用的方式,因为它使用了简单的选择器(哪些伪元素不是)区分元素和元素状态,它们的使用方式

  •   
  • 通过更改文档样式表来操作应用于所述伪元素的样式,这更像是一个黑客攻击

  •   

...通过对同一问题的其他答案给出的更多例子。