Chromeでinput type="number"をCSSでスタイリングする方法(スピナーの表示・非表示)
ChromeなどのWebKit系ブラウザでは、input type="number" の右側に表示されるスピナー(上下矢印ボタン)は、デフォルトのCSSでは直接スタイリングできません。そこで活用するのが、WebKit独自の疑似要素 ::-webkit-inner-spin-button です。
スピナーを非表示にする方法
数値入力フィールドからスピナーを完全に取り除きたい場合は、以下のように -webkit-appearance: none; を指定します。
input[type=number]::-webkit-inner-spin-button {
-webkit-appearance: none;
}
このスタイルを適用すると、入力フィールドにはスピナーが表示されなくなります。デザインの統一感を持たせたい場合や、独自のカウンターUIを実装したい場合に便利です。
スピナーを表示してスタイリングする方法
逆に、通常は非表示になりがちなスピナーを常に表示させたい場合は、opacity プロパティを活用します。
input[type=number]::-webkit-inner-spin-button {
opacity: 1;
}
opacity: 1; を指定することで、フォーカスしていない状態でもスピナーが常に表示されるようになります。さらにこの疑似要素に対して幅やマージンなどを追加することで、見た目を細かく調整することも可能です。
出力結果
上記のコードを実際にブラウザで実行すると、次のような表示結果が得られます。

補足:クロスブラウザ対応について
::-webkit-inner-spin-button はWebKit系ブラウザ(Chrome・Safari・Edgeなど)向けの手法です。Firefoxでスピナーを非表示にしたい場合は、-moz-appearance: textfield; を併せて指定するのが定番のテクニックです。主要ブラウザすべてで統一した見た目を実現するために、両方のベンダープレフィックス対応を行っておくことをおすすめします。
-
CSSの:validセレクターで有効な値を持つinput要素をスタイリングする方法
CSSの:validセレクターを使用すると、有効な値が入力されたすべての<input>要素に対してスタイルを適用できます。 :validセレクターとは :validセレクターは、フォームの入力内容がバリデーション(妥当性チェック)を通過した場合にのみスタイルを適用する擬似クラスです。たとえば、type=emailの入力欄に正しい形式のメールアドレスが入力されたときだけ、背景色や文字色を変えるといった使い方ができます。逆に、無効な値が入力された場合にスタイルを適用したい場合は「:invalid」セレクターを使用します。両者を組み合わせることで、ユーザーに入力の正誤を視覚的にフィードバ
-
【CSS】number型入力フィールドの矢印(スピナー)を非表示にする方法
<input type=number> で作成した数値入力フィールドには、ブラウザ標準で上下の矢印(スピナーボタン)が自動的に表示されます。デザインの統一やUIの都合で、これらの矢印を非表示にしたいケースはよくあります。そんなときは、CSSを少し追加するだけで簡単に削除できます。 スピナーを削除するサンプルコード 以下は、CSSを使用して数値入力フィールドから矢印/スピナーを取り除くコード例です。 <!DOCTYPE html> <html> <head> <meta name="viewport" content=&q