Отключить кнопки прокрутки webkit на типе ввода = «число»?

183

У меня есть сайт, который в основном предназначен для мобильных пользователей, но и для рабочего стола.

В Mobile Safari использование <input type="number"> отлично работает, потому что оно вызывает цифровую клавиатуру на входных полях, которые должны содержать только цифры.

В Chrome и Safari, однако, с помощью цифровых входов отображаются кнопки со стрелками в правой части поля, которые выглядят как дерьмо в моем дизайне. Мне действительно не нужны кнопки, потому что они бесполезны, когда вам все равно нужно писать что-то вроде 6-значного номера.

Можно ли отключить это с помощью -webkit-appearance или другого трюка CSS? Я пробовал без большой удачи.

  • 14
    Если вы предпочитаете использовать type="text" по другим причинам и переключаетесь только на цифры для числовой функции клавиатуры, вы можете использовать pattern="[0-9]*" чтобы получить функцию клавиатуры, позволяющую сохранить type="text" . См. Stackoverflow.com/questions/6171903/…
Теги:
webkit

5 ответов

87
Лучший ответ

Ниже 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
    лучшее решение, чем указано выше (более полное)
  • 2
    Согласен с @aqm
Показать ещё 2 комментария
295

Я обнаружил, что есть вторая часть ответа на этот вопрос.

Первая часть помогла мне, но у меня все еще было право на право ввода type=number. Я отключил маржу на входе, но, видимо, мне также пришлось обнулить маржу на счетчике.

Это зафиксировало это:

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
  • 0
    Потрясающие. У меня была похожая проблема , но с немного другой стратегией CSS, которая привела к совершенно новым проблемам ...
  • 1
    Кто-нибудь знает способ исправить поведение прокрутки, где вы можете прокручивать вверх и вниз бесконечно? Я установил min=0.01max для некоторого произвольного значения) в моем элементе ввода, но я бы предпочел, чтобы колесо прокрутки просто перемещалось вверх и вниз по странице. Я использую AngularJS и ничего не могу найти.
Показать ещё 7 комментариев
15

Не уверен, что это лучший способ сделать это, но это приводит к тому, что прядильщики исчезают в Chrome 8.0.552.5 dev:

input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none;
}
  • 0
    Выиграть. Большое спасибо!
  • 2
    Кажется, не работает все время.
Показать ещё 3 комментария
10

Кажется невозможным запретить появляться в Opera Opera. В качестве временного обходного пути вы можете освободить место для прядильщиков. Насколько я могу судить, следующий CSS добавляет достаточно заполнения, только в Opera:

noindex:-o-prefocus,
input[type=number] {
    padding-right: 1.2em;
}
  • 4
    @Knu Действительно, но здесь стоит упомянуть, потому что код в ответе не позволяет вводить данные в Opera.
  • 4
    @Goulvench, пожалуйста, не надо :) Я нашел это очень полезным, кто-то еще может тоже.
0

Вы также можете скрыть счетчик с помощью следующего трюка:

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  opacity:0;
  pointer-events:none;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню