在输入数字中隐藏微调器 - Firefox 29

时间:2014-04-29 18:48:58

标签: jquery css firefox input spinner

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

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

是否可以使用CSS或jQuery禁用它?

7 个答案:

答案 0 :(得分:447)

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

&#13;
&#13;
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type=number] {
    -moz-appearance:textfield;
}
&#13;
<input type="number" step="0.01"/>
&#13;
&#13;
&#13;

答案 1 :(得分:40)

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

如果您想默认隐藏微调器,您最初可以设置-moz-appearance: textfield,如果想要,微调器将显示在:hover / :focus上,您可以使用-moz-appearance: number-input覆盖以前的样式。

input[type="number"] {
    -moz-appearance: textfield;
}
input[type="number"]:hover,
input[type="number"]:focus {
    -moz-appearance: number-input;
}
<input type="number"/>

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

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

答案 2 :(得分:10)

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中使用。

答案 3 :(得分:6)

/* 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;}

答案 4 :(得分:4)

面对Firefox更新到29.0.1后的同一问题,这里也列出了这一点 https://bugzilla.mozilla.org/show_bug.cgi?id=947728

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

我更喜欢CSS方式 E.g: -

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

你也可以内联:

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

答案 5 :(得分:2)

这对我有用:

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

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

答案 6 :(得分:-1)

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

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