WebKit 桌面浏览器会在数字输入框中添加小的上下箭头,称为微调器。你可以像这样视觉上关闭它们
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
请注意,某些其他功能仍然存在,例如能够通过鼠标滚轮增加数字。

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
opacity: 1;
}
有没有人知道如何除了关闭之外,还可以为微调按钮添加样式?我的文本框高度高于默认值,我想让微调器稍微大一点,更容易点击……
是的,在margin:0的地方,你应该能够从那里为元素设置样式。
我正在寻找这个元素的文档。我想在移动设备上打开微调器。
当我们将鼠标光标保持在获得焦点的元素上并滚动鼠标滚轮时,我们能否停止修改值?如果可以,请提供解决方案。
这真的有效……
我发现增加
line-height
的值会使箭头按钮更大,而仅仅使用height
属性会使框本身保持所需的大小谢谢!
你也可以使用:before和:after来根据你的喜好设置按钮的样式
这是一个非常简单的例子和一个示例(也包括一个带样式的搜索输入框)
太棒了!
这个在Chrome中有一段时间失效了。看起来你不再能够向这些选择器添加伪元素了,这很可惜,因为只有一个选择器可以同时控制上下两个按钮
使用jQuery禁用鼠标滚轮
不要模糊它,只需阻止事件。在鼠标滚轮上失去焦点是一种糟糕的体验。
也就是说,一种糟糕的体验
为什么要模糊输入框?这对用户来说多么烦人。只需阻止事件触发。
如何反过来操作:将-webkit-textfield-decoration-container设置为只读,但将按钮设置为启用?
如何使用AngularJS或HTML5(干净地)禁用滚动?我一直在查看文档,但似乎找不到任何内容……我曾短暂地对HTML5规范中的
number
印象深刻,但后来我发现了这个错误。 :(嗨,
你找到解决方法了吗?如何使用Angular JS阻止它?请告诉我是否有任何方法?
谢谢,
Rocky
你可以编写一个这样的指令
是否有适用于Firefox 29的解决方案?
好的,这是Firefox 29的解决方案
input[type=number] {
-moz-appearance: textfield;
}
谢谢,我一直在寻找一种无需使用JavaScript且适用于Firefox的方法
不错的修复!
但这违背了将输入限制为数字的目的哈哈。
太棒了!谢谢。
感谢FF 29的解决方案。
啊哈,不错!感谢FF 29的修复@Stephan!这太完美了!
确实不错,Stephan。谢谢!
有没有办法让一些数字输入框带有微调器,而另一些没有?
我正在尝试用类名标记某些输入框。
@Don
input[type=number].input-number–noSpinners { -moz-appearance: textfield; }
input[type=number].input-number–noSpinners::-webkit-inner-spin-button,
input[type=number].input-number–noSpinners::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
将“input-number–noSpinners”类名添加到你想要没有微调器的输入框中。
谢谢。真的帮了大忙,而且完美运行
谢谢。运行完美(y)
@Pavel
谢谢,这有效!
不确定对于这篇文章来说,在这一点上或任何事情是否重要,但我刚刚完成了一些关于微调器小部件所用名称的研究。有机会的时候看看。如果其他用户正在研究实现此功能的最佳方法,他们可能会发现这些信息很有用……
“数字微调器”是这个的最佳名称吗?
http://uxfindings.blogspot.com/2014/06/is-numeric-spinner-best-name-for-this.html
这在Opera Mobile上不起作用,它坚持显示烦人的微调器按钮。
你考虑Opera Mobile本身就很烦人。
喜欢Bruno的建议,但我想让它默认应用于所有数字输入元素,所以我稍微修改了一下。使用以下代码,鼠标滚轮会自动禁用(对于数字输入),无需任何额外的HTML!
如果你希望某些字段有微调器,而另一些没有,由于对于微调器来说,使用step="0"毫无意义,你可以这样做
input[step="0"]::-webkit-inner-spin-button { -webkit-appearance: none;}
任何step为0的输入字段都不会出现微调器,其余字段则会。
太棒了,谢谢。
谢谢Simon!太棒了。
还有一件事,我们不能设置这些微调器的样式吗?比如设置更大的高度和宽度?
我用填充使它更大。
@Bruno 和 Jacob:感谢您的建议。我也想禁用相同的上下键。我该如何操作?
@Nikhil,不确定使用数字输入是否可行(至少根据我的研究)。使用文本输入怎么样?如果您想要数字输入,以便基于触摸的设备会调出数字键盘,您可能需要尝试使用两个输入字段(一个“数字”和一个“文本”),然后使用 JavaScript 或 CSS 仅显示当前设备上具有所需功能的那个。
这是一个适用于 Firefox 和其他基于 -moz 的浏览器的解决方案
@Pavel,@Liam McArthur
我尝试了您的解决方案,但它不起作用……使用 FF 32、HTML5、cshtml……
-webkit-appearance 未被识别……
这个“-moz-appearance: textfield;” 可以,但我失去了对特定类型数字的控制……
并且::-webkit-inner-spin-button 在 css 的选择中不存在……
最初发布的代码在 FireFox 中不起作用。它在 Chrome 和 Opera 中有效。FireFox 显示了微调器,但没有将其调整到指定的框高度。C 和 O 则可以。尚未在 Windows 9+ 中测试过。为什么要绕过它并在上面浪费时间?只需等待 FireFox 赶上即可。在任何时候都公开/显示特定浏览器的缺陷,而不是尝试修复它。如今,它们都很快就能弥补自己的缺陷。2014年12月18日。
它在 firefox 上不起作用。对此有什么想法吗?
酷!
在 PC 上的 FF 38.0.6 中不起作用
如果始终希望显示增量而不是在悬停时显示怎么办?
我相信您指的是 Chrome 的行为?我也想让微调器始终可见,但还没有找到方法。
任何关于如何将其分配给特定数字 id=“mynumberfield” 的提示都将非常棒!
试试
这在 FF、Opera 中不起作用,
如果我使用
input[type=number] {
-moz-appearance: textfield;
}
这会失去对特定类型数字的控制。请告诉我 FF 和 Opera 的解决方案
嗨,Ashu
我们可以使用
input[type=number] {
-moz-appearance: textfield;
}
这个
或者请参考此链接——http://exisweb.net/css-input-number-firefox——它可能会有帮助……
firefox 不支持 webkit appearance
嗨,Rami,
您可以参考此解决方案
input[type=number] {
-moz-appearance: textfield;
}
或者请参考此链接——http://exisweb.net/css-input-number-firefox——它可能会有帮助……
谢谢
此帖子应更新为
哎呀……
在我的 Chrome v51 中,-webkit-appearance:none; 似乎不再起作用。我改用了 -webkit-appearance:textfield;。
有时我需要这个微调器,有没有办法为这段代码创建一个类,请帮忙
适用于 Firefox
input[type=number] {
-moz-appearance: textfield;
}
它可以工作,但我不想在字段中输入任何文本。那么我该怎么办。这不是完美的解决方案。
非常感谢。这非常有帮助。 :)
谢谢这个。我很高兴找到一个解决方案。在某些时候,这些微调器可能非常不受欢迎。很高兴知道我始终可以切换其开/关状态
它在 Mozilla 中不起作用
请注意,文本指出此代码段适用于 WebKit 浏览器。Firefox 需要不同的解决方案。
它像专业人士一样工作,非常感谢。
在https://css-tricks.org.cn/snippets/css/turn-off-number-input-spinners/上有一个不完整的解决方案
适用于 Chrome,但对于 Firefox,您需要包含
以使其工作
鸣谢:https://stackoverflow.com/a/23374725/861615
对于 firefox
优秀!但仅适用于 Chrome,有没有办法在 Mozilla 中做到这一点?
要禁用 Chrome 和 Firefox 的滚动选项,您可以使用以下 js 代码
$(‘:input[type=number]’).on(‘wheel’, function (e) { $(this).blur(); });
在 Firefox (69.0 (64 位)) 上不起作用
对于 Firefox,您需要添加
input[type=number] {
-moz-appearance:textfield; /* Firefox */
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
$(document).on(“wheel”, “input[type=number]”, function (e) {
$(this).blur();
});
我不确定 margin: 0 是为了什么,如果不使用它,我确实看不到任何区别。除非重置边距,否则微调器是否会更改输入元素的大小?
也许是因为我使用的 CSS 规范化,所以我看不到区别。
/* Chrome、Safari、Edge、Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
/* Firefox */
input[type=number] {
-moz-appearance: textfield;
}