簡潔な答え:
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" />
より長い答え:
既存の回答に追加するには...
Firefox:
Firefoxの現在のバージョンでは、これらの要素の-moz-appearance
プロパティの(ユーザーエージェント)デフォルト値はnumber-input
です。これを値に変更すると、textfield
効果的にスピナーが削除されます。
input[type="number"] {
-moz-appearance: textfield;
}
場合によっては、スピナーを最初に非表示にしてから、ホバー/フォーカスに表示することもできます。(これは現在、Chromeのデフォルトの動作です)。その場合は、以下を使用できます。
input[type="number"] {
-moz-appearance: textfield;
}
input[type="number"]:hover,
input[type="number"]:focus {
-moz-appearance: number-input;
}
<input type="number"/>
クロム:
Chromeの現在のバージョンでは、これらの要素の-webkit-appearance
プロパティの(ユーザーエージェント)デフォルト値はすでにtextfield
です。スピナーを除去するために、-webkit-appearance
プロパティの値に変更する必要がありますnone
上::-webkit-outer-spin-button
/の::-webkit-inner-spin-button
疑似クラス(それは-webkit-appearance: inner-spin-button
デフォルトでは)。
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
<input type="number" />
古いバージョンのChromeでmargin: 0
マージンを削除するために使用されることを指摘する価値があります。
現在、これを書いている時点で、「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を見ていて、横に上下の矢印がある典型的な入力フィールドを見ています。