入力type =“ number”でWebkitのスピンボタンを無効にしますか?


203

私は主にモバイルユーザー向けのサイトを持っていますが、デスクトップ向けのサイトもあります。

Mobile Safariでは、<input type="number">数字のみを入力する必要がある入力フィールドに数字キーボードが表示されるため、を使用するとうまく機能します。

ただし、ChromeとSafariでは、数値入力を使用すると、フィールドの右側にスピンボタンが表示されます。これは、私のデザインではがらくたのように見えます。とにかく6桁の数字のようなものを書く必要があるときは、ボタンは役に立たないので、私は本当にボタンを必要としません。

-webkit-appearanceまたは他のCSSトリックでこれを無効にすることは可能ですか?運が悪いので試してみました。


15
type="text"他の理由で使用し、数字キーボード機能のみを数値に切り替えた場合は、を使用pattern="[0-9]*"してキーボード機能を取得でき、を保持できますtype="text"stackoverflow.com/questions/6171903/…を
joshuahedlund

回答:


114

以下のCSSはChromeとFirefoxの両方で機能します

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

8
上記よりも優れたソリューション(より完全)
2015

-moz-appearance:textfield; 加えて私のために働いた唯一の答えでした。ありがとう!
Nanoripper 2018

283

これに対する答えの2番目の部分があることを発見しました。

最初の部分は私を助けてくれましたが、まだtype=number入力の右側にスペースがありました。入力のマージンをゼロにしましたが、スピナーのマージンもゼロにする必要があったようです。

これはそれを修正しました:

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

驚くばかり。私にも同様の問題がありましたが、CSS戦略が少し異なるため、まったく新しい問題が発生します...
Lukas Eder

1
スクロールアップを無限にスクロールできるスクロール動作を修正する方法を誰かが知っていますか?input要素でmin=0.01(およびmax任意の値に)設定しましたが、スクロールホイールをページの上下に移動させるだけです。AngularJSを使用していますが、ATMが見つかりません。
JaKXz 14年

2
この特定の問題とこの種の情報の信頼
Josh Habdas

1
明確にするために、これはマウスのスクロール機能を削除しません!
2015

1
-moz-外観:Firefoxのためのテキストフィールド
ケビンSuttle

16

これが最善の方法かどうかはわかりませんが、これによりスピナーがChrome 8.0.552.5 devで表示されなくなります。

input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none;
}

@JethroLarson何が機能していないのですか?-webkit-outer-spin-button代わりに試すことができます。
robertc 2010年

これは、type = "date"に最適です。input[type = date] ::-webkit-outer-spin-button {-webkit-appearance:none; }
uglymunky、2011年

11

Operaにスピナーが表示されないようにすることは不可能のようです。一時的な回避策として、スピナー用のスペースを作ることができます。私の知る限り、次のCSSはOperaでのみ十分なパディングを追加します。

noindex:-o-prefocus,
input[type=number] {
    padding-right: 1.2em;
}

4
@Knu確かに、回答のコードではOperaで入力を使用できないため、ここで言及する価値があります。
Goulven、

4
@Goulvenchはしないでください:)私はそれが非常に便利だと思いました、他の誰かもそうかもしれません。
frnhr 2013年

-2

次のトリックでスピナーを隠すこともできます:

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  opacity:0;
  pointer-events:none;
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.