Hide Up & Down Arrow Buttons (Spinner) in Input Number - Firefox 29
Solution 1
According to this blog post, you need to set -moz-appearance:textfield;
on the input
.
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;
}
<input type="number" step="0.01"/>
Solution 2
It's worth pointing out that the default value of -moz-appearance
on these elements is number-input
in Firefox.
If you want to hide the spinner by default, you can set -moz-appearance: textfield
initially, and if you want the spinner to appear on :hover
/:focus
, you can overwrite the previous styling with -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"/>
I thought someone might find that helpful since I recently had to do this in attempts to improve consistency between Chrome/FF (since this is the way number inputs behave by default in Chrome).
If you want to see all the available values for -moz-appearance
, you can find them here (mdn).
Solution 3
In SASS
/SCSS
style, you can write like this:
input[type='number'] {
-moz-appearance: textfield;/*For FireFox*/
&::-webkit-inner-spin-button { /*For Webkits like Chrome and Safari*/
-webkit-appearance: none;
margin: 0;
}
}
Definitely this code style can use in PostCSS
.
Solution 4
/* 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;}
Solution 5
Faced the same issue post Firefox update to 29.0.1, this is also listed out here https://bugzilla.mozilla.org/show_bug.cgi?id=947728
Solutions:
They(Mozilla guys) have fixed this by introducing support for "-moz-appearance" for <input type="number">
.
You just need to have a style associated with your input field with "-moz-appearance:textfield;
".
I prefer the CSS way E.g.:-
.input-mini{
-moz-appearance:textfield;}
Or
You can do it inline as well:
<input type="number" style="-moz-appearance: textfield">
Related videos on Youtube
NereuJunior
Updated on July 16, 2022Comments
-
NereuJunior almost 2 years
On Firefox 28, I'm using
<input type="number">
works great because it brings up the numerical keyboard on input fields which should only contain numbers.In Firefox 29, using number inputs displays spin buttons at the right side of the field, which looks like crap in my design. I really don't need the buttons, because they are useless when you need to write something like a 6~10 digit number anyway.
Is it possible to disable this with CSS or jQuery?
-
Black Sheep about 10 yearscan you use
input type text
? -
gen_Eric about 10 yearsIf you don't want the spin arrows, then don't use
type="number"
. You can usetype="text"
and thepattern
attribute to set a regex to make sure it's a number. -
Black Sheep about 10 yearsmaybe this help you: css-tricks.com/snippets/css/turn-off-number-input-spinners
-
NereuJunior about 10 yearsI don't can change the type, because i have some scripts where I use jquery selector input[type=number].
-
NereuJunior about 10 years-webkit-inner-spin-button -webkit-outer-spin-button with -webkit-appearance: none; margin: 0; Dont Work in Firefox.
-
CodeManX over 8 years@RocketHazmat:
type="number"
is required for mobile browsers to show the numeric keyboard instead of the full keyboard. -
TomasVeras over 8 years
<input type="tel">
it's only numbers and it doesn't include spinners. -
WhyNotHugo about 8 yearsChanging
type="text"
is a bad idea because touch devices will show the wrong keyboard. -
Pankaja Gamage almost 7 yearssetting
type="text"
is a bad idea, you will have to make sure you enter only numeric characters and also you will have to use separate validation if you want to make use of themin
ormax
attributes -
Mikael Dúi Bolinder about 5 yearsPossible duplicate of Can I hide the HTML5 number input’s spin box?
-
-
Michael Scheper over 9 yearsI wrapped this in
@-moz-document url-prefix() { ... }
and it does what I want: hides the spinners in Firefox, where they look bad, but keep them alive in other browsers, including ones that bring up the numeric keyboard as the OP mentioned. -
Richard Deeming about 9 yearsSome more useful information from Geoff Graham: Numeric Inputs – A Comparison of Browser Defaults
-
Bhupinder kumar over 7 yearshow we can remove from IE ?
-
Richard Deeming over 7 years@Bhupinderkumar: As far as I can see, neither IE11 nor Edge display spinner buttons on numeric inputs.
-
Jovanni G over 6 yearsthis works and indeed it removes the spinners, but then you are now able to enter alphanumeric characters into it. Hope somebody finds a way to handle that scenario without having to check the entered keys if they are numbers or not.
-
Richard Deeming over 6 years@JovanniG: Even if you don't remove the spinners, you can still enter non-numeric characters into the input in Firefox. Try it with the demo on MDN. Chrome prevents non-numeric input in both examples.
-
Richard Deeming about 6 years@alxndr: The question was about Firefox, not Chrome. The Chrome part was added later by Jan-Terje Sørensen. But thanks for the down-vote anyway.
-
Richard Deeming about 6 years@alxndr: Also, I've just tried the "Run code snippet" in Chrome 66, and it works as expected.
-
John Trump almost 2 yearsMaybe you can move the browser prefix attributes like
-moz-
to last to prevent override by none prefix attributes. ``` { appearance: none; -webkit-appearance: none; -moz-appearance: textfield; } ```