입력 유형 = "번호"에서 웹킷의 스핀 버튼을 비활성화 하시겠습니까?


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
위의 것보다 더 나은 솔루션 (더 완벽)
aqm

-moz-appearance : 텍스트 필드; 또한 나를 위해 일한 유일한 대답이었습니다. 감사!
Nanoripper

283

나는 이것에 대한 답의 두 번째 부분이 있음을 발견했습니다.

첫 번째 부분이 도움이되었지만 여전히 type=number입력 오른쪽에 공간이 있습니다. 입력의 여백을 0으로 만들었지 만 스피너의 여백도 0으로 설정해야합니다.

이것은 그것을 고쳤다 :

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

대박. 나는 한 유사한 문제를 하지만 ... 완전히 새로운 문제를 야기 약간 다른 CSS 전략과,
루카스 에더

1
누구나 위아래로 스크롤 할 수있는 스크롤 동작을 수정하는 방법을 알고 있습니까? 입력 요소에 min=0.01(그리고 max임의의 값으로) 설정 했지만 스크롤 휠을 페이지 위아래로 올리는 것을 선호합니다. AngularJS를 사용하고 있으며 atm을 찾을 수 없습니다.
JaKXz

2
이 특정 문제에 대한 권위있는 소스에 다시 및 이러한 종류의 정보를 링크 : css-tricks.com/snippets/css/turn-off-number-input-spinners을
조쉬 Habdas

1
분명히, 이것은 마우스 스크롤 기능을 제거하지 않습니다!
babalu

1
-moz-appearance : Firefox 용 텍스트 필드
Kevin Suttle

16

이것이 최선의 방법인지 확실하지 않지만 Chrome 8.0.552.5 dev에서 스피너가 사라집니다.

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

@JethroLarson 무슨 작동하지 않습니까? -webkit-outer-spin-button대신 시도해보십시오 .
robertc

이것은 type = "date"에 효과적이었습니다. input [type = date] ::-webkit-outer-spin-button {-webkit-appearance : none; }
uglymunky

11

오페라에 스피너가 나타나지 않도록하는 것은 불가능한 것 같습니다. 임시 해결 방법으로 스피너를위한 공간을 만들 수 있습니다. 내가 알 수있는 한 다음 CSS는 Opera에서만 충분한 패딩을 추가합니다.

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

4
@Knu 실제로, 대답의 코드가 Opera에서 입력을 사용할 수 없기 때문에 여기에서 언급 할 가치가 있습니다.
Goulven

4
@ 구울 벤치 (Goulvench) 제발하지 마십시오 :) 나는 그것을 매우 유용하게 찾았습니다. 다른 누군가도 마찬가지입니다.
frnhr

-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.