【问题标题】:How to control the shape of the range input knob in Firefox?如何在 Firefox 中控制范围输入旋钮的形状?
【发布时间】:2026-02-12 03:35:02
【问题描述】:

警告:下面的原始问题文本具有误导性。

实际上范围输入控件的外观在 Firefox 33.0.2 中没有改变。


HTML5范围输入控件:

<input type="range" />

以前在 Firefox 中大致是这样的:

自最新更新 v33.0.2 以来,它看起来像这样:

原始设计与我们网站的外观和感觉完美匹配。现在的那个看起来很不合适。

有没有办法(CSS 或 Firefox 配置设置)强制原始的尖头外观?

【问题讨论】:

标签: css html firefox html-input


【解决方案1】:

是的,您可以使用::-moz-range-track 伪选择器和::-moz-range-thumb 伪选择器。根据this site,您还需要为input[type=range] 提供与您的轨道选择器相同的宽度。

JSFiddle

CSS:

input[type=range] {
    width: 300px;
    }
input[type=range]::-moz-range-track {
    background: #dedede;
}
input[type=range]::-moz-range-thumb {
    background: grey;
    border-radius: 0px 0px 510px 510px;
}

【讨论】:

  • 有趣 - 似乎分配 background ::-moz-range-track 会使旋钮变圆,而从 ::-moz-range-track 中删除样式则完全使其再次变得尖尖。我很确定我没有对该元素应用任何样式。所以应该有其他东西可以应用它,我需要看看。
  • 感谢您对正确方向的提示,我找到了问题。
【解决方案2】:

在 Firefox 33.0.2 中 Range 输入控件的外观实际上并没有改变 - 很抱歉造成混淆。

发生的情况是 border: CSS 规则意外应用于 input[type="range"],它没有显示为可见边框,因为它后来被 border: initial 重置。

应用边框这一事实使范围控件进入主题模式,在该模式下它会绘制一个圆形旋钮(我不知道这种模式)。

解决方案是首先确保border: 不应用于控件。然后它会看起来很尖。

【讨论】:

    【解决方案3】: