Resposta curta:
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" />
Resposta mais longa:
Para adicionar à resposta existente ...
Raposa de fogo:
Nas versões atuais do Firefox, o valor padrão (agente do usuário) da -moz-appearancepropriedade nesses elementos é number-input. Alterar isso para o valor textfieldefetivamente remove o botão giratório.
input[type="number"] {
-moz-appearance: textfield;
}
Em alguns casos, convém que o botão giratório fique oculto inicialmente e apareça em foco / foco. (Este é atualmente o comportamento padrão no Chrome). Nesse caso, você pode usar o seguinte:
input[type="number"] {
-moz-appearance: textfield;
}
input[type="number"]:hover,
input[type="number"]:focus {
-moz-appearance: number-input;
}
<input type="number"/>
Cromada:
Nas versões atuais do Chrome, o valor padrão (agente do usuário) da -webkit-appearancepropriedade nesses elementos já é textfield. Para remover o controle giratório, o -webkit-appearancevalor da propriedade precisa ser alterado para nonenas ::-webkit-outer-spin-button/ ::-webkit-inner-spin-buttonpseudo classes (é -webkit-appearance: inner-spin-buttonpor padrão).
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
<input type="number" />
Vale ressaltar que margin: 0é usado para remover a margem nos antigos versões antigas do Chrome.
Atualmente, ao escrever isso, aqui está o estilo padrão do agente do usuário na pseudo classe 'inner-spin-button':
input::-webkit-inner-spin-button {
-webkit-appearance: inner-spin-button;
display: inline-block;
cursor: default;
flex: 0 0 auto;
align-self: stretch;
-webkit-user-select: none;
opacity: 0;
pointer-events: none;
-webkit-user-modify: read-only;
}
<input type="number" min="4" max="8" />Chrome e vendo um campo de entrada típico com as setas para cima e para baixo ao lado.