效果很好,因为它会在只包含数字的输入字段上显示数字键盘。在 Firefox 29 中,使用数字输入会在字段右侧显示旋转按钮,这在我的设计中看起来很垃圾。我真的不需要这些按钮,因为无论如何当你需要写一个 6~10 位的数字时,它们都是无用的。是否可以使用 CSS 或 jQuery 禁用此功能?" /> 效果很好,因为它会在只包含数字的输入字段上显示数字键盘。在 Firefox 29 中,使用数字输入会在字段右侧显示旋转按钮,这在我的设计中看起来很垃圾。我真的不需要这些按钮,因为无论如何当你需要写一个 6~10 位的数字时,它们都是无用的。是否可以使用 CSS 或 jQuery 禁用此功能?"> 效果很好,因为它会在只包含数字的输入字段上显示数字键盘。在 Firefox 29 中,使用数字输入会在字段右侧显示旋转按钮,这在我的设计中看起来很垃圾。我真的不需要这些按钮,因为无论如何当你需要写一个 6~10 位的数字时,它们都是无用的。是否可以使用 CSS 或 jQuery 禁用此功能?" />
ChatGPT解决这个技术问题 Extra ChatGPT

在输入数字中隐藏向上和向下箭头按钮(微调器) - Firefox 29

在 Firefox 28 上,我使用 <input type="number"> 效果很好,因为它会在只包含数字的输入字段上显示数字键盘。

在 Firefox 29 中,使用数字输入会在字段右侧显示旋转按钮,这在我的设计中看起来很垃圾。我真的不需要这些按钮,因为无论如何当你需要写一个 6~10 位的数字时,它们都是无用的。

是否可以使用 CSS 或 jQuery 禁用此功能?

如果您不想要旋转箭头,请不要使用 type="number"。您可以使用 type="text"pattern 属性来设置正则表达式以确保它是一个数字。
-webkit-inner-spin-button -webkit-outer-spin-button with -webkit-appearance: none;边距:0;不要在 Firefox 中工作。
@RocketHazmat:移动浏览器需要 type="number" 才能显示数字键盘而不是全键盘。
<input type="tel"> 它只是数字,不包括微调器。
更改 type="text" 是个坏主意,因为触摸设备会显示错误的键盘。

r
rubo77

根据this blog post,您需要在input 上设置-moz-appearance:textfield;

输入[type=number]::-webkit-outer-spin-button, input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none;边距:0; } 输入[类型=数字] { -moz-外观:文本字段; }


我将它包装在 @-moz-document url-prefix() { ... } 中,它做了我想要的:在 Firefox 中隐藏微调器,它们看起来很糟糕,但在其他浏览器中保持它们的活力,包括那些像 OP 提到的那样调出数字键盘的浏览器。
Geoff Graham 提供的一些更有用的信息:Numeric Inputs – A Comparison of Browser Defaults
这有效,并且确实删除了微调器,但是您现在可以在其中输入字母数字字符。希望有人找到一种方法来处理这种情况,而不必检查输入的键是否是数字。
@JovanniG:即使您不删除微调器,您仍然可以在 Firefox 的输入中输入非数字字符。用 demo on MDN 试试。 Chrome 在这两个示例中都阻止了非数字输入。
@alxndr:另外,我刚刚尝试了 Chrome 66 中的“运行代码片段”,它按预期工作。
J
Josh Crozier

值得指出的是,这些元素上的 -moz-appearance 的默认值在 Firefox 中是 number-input

如果您想默认隐藏微调器,您可以初始设置 -moz-appearance: textfield,如果您希望微调器出现在 :hover/:focus 上,您可以使用 { 覆盖之前的样式4}。

输入[type="number"] { -moz-appearance: textfield; } input[type="number"]:hover, input[type="number"]:focus { -moz-appearance: number-input; }

我认为有人可能会发现这很有帮助,因为我最近不得不这样做以试图提高 Chrome/FF 之间的一致性(因为这是 Chrome 中默认数字输入的行为方式)。

如果您想查看 -moz-appearance 的所有可用值,可以找到它们 here (mdn)。


A
AmerllicA

SASS/SCSS 样式中,您可以这样写:

input[type='number'] {
  -moz-appearance: textfield;/*For FireFox*/

  &::-webkit-inner-spin-button { /*For Webkits like Chrome and Safari*/
    -webkit-appearance: none;
    margin: 0;
  }
}

绝对可以在 PostCSS 中使用这种代码样式。


n
navin prakash
/* for chrome */
    input[type=number]::-webkit-inner-spin-button,
    input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;}             


/* for mozilla */  
   input[type=number] {-moz-appearance: textfield;}

A
Abhijeet

在 Firefox 更新到 29.0.1 后面临同样的问题,这也列在这里 https://bugzilla.mozilla.org/show_bug.cgi?id=947728

解决方案:他们(Mozilla 人)通过为 <input type="number"> 引入对“-moz-appearance”的支持来解决此问题。您只需要使用“-moz-appearance:textfield;”与您的输入字段相关联的样式。

我更喜欢 CSS 方式,例如:-

.input-mini{
-moz-appearance:textfield;}

或者

你也可以内联:

<input type="number" style="-moz-appearance: textfield">

Y
Yahel Yechieli

这对我有用:

    input[type='number'] {
    appearance: none;
}

在 Firefox、Safari、Chrome 中解决。此外,不再支持 -moz-appearance: textfield; (https://developer.mozilla.org/en-US/docs/Web/CSS/appearance)


E
Exis

在 2021 年,有一个更好的解决方案可以让您的 Firefox 像 Google Chrome 一样。您也应该使用焦点和悬停。

input[type="number"] {
    appearance: none; /* textfield also works! */
}

input[type="number"]:focus, 
input[type="number"]:hover {
    appearance: auto;
}

如需更多信息,请阅读documentation


D
Darex1991

我混合了上面答案和 scss 中 How to remove the arrows from input[type="number"] in Opera 的几个答案:

input[type=number] {
  &,
  &::-webkit-inner-spin-button,
  &::-webkit-outer-spin-button {
    -webkit-appearance: none;
    -moz-appearance: textfield;
    appearance: none;

    &:hover,
    &:focus {
      -moz-appearance: number-input;
    }
  }
}

Tested on chrome, firefox, safari

也许您可以将 -moz- 之类的浏览器前缀属性移到最后,以防止被无前缀属性覆盖。 ``` { 外观:无; -webkit 外观:无; -moz 外观:文本字段; }```