Czy istnieje spójny sposób w różnych przeglądarkach, aby ukryć nowe pola spinów, które niektóre przeglądarki (takie jak Chrome) renderują dla wprowadzania HTML typu numer? Szukam metody CSS lub JavaScript, aby zapobiec pojawianiu się strzałek w górę / w dół.
<input id="test" type="number">
<input type="number" min="4" max="8" />
Chrome i widzę typowe pole wprowadzania ze strzałkami w górę i w dół z boku.<input type="number" pattern="[0-9]*" inputmode="numeric">
. Więcej informacji: stackoverflow.com/a/31619311/806956<input type="text" placeholder="number (digits only)" pattern="[0-9]+" class="validate number-validation" ... >
i przy użyciu jQuery Validati lub podobny do walidacji uchwytu. Nie przetestowałem tego podejścia, dlatego jest to komentarz, a nie odpowiedź.Odpowiedzi:
Ten CSS skutecznie ukrywa przycisk spinania w przeglądarkach webkit (przetestowałem go w Chrome 7.0.517.44 i Safari w wersji 5.0.2 (6533.18.5)):
Zawsze możesz użyć inspektora (webkit, ewentualnie Firebug dla Firefoksa), aby wyszukać dopasowane właściwości CSS dla elementów, które Cię interesują, poszukać Pseudo-elementów. Ten obraz pokazuje wyniki dla typu elementu wejściowego = „liczba”:
źródło
display: none;
jako jedynej rzeczy w selektorzetype=number
jeśli musisz ukryć te strzałki. Np. Obecnie będą nadal wyświetlane w Operze i zaczną być wyświetlane w przeglądarce Firefox, IE itp., Gdy zaimplementują ten typ danych wejściowych.max=
imin=
na<input>
alternatywnych rozwiązaniach, takich jaktype="text"
niepoprawny HTML5. Ludzie wspominają również o Operze, w tym o błystkach. Czy istnieje rozwiązanie dla Opery podobne do Safari / Chrome?input::-webkit-clear-button
Firefox 29 obecnie dodaje obsługę elementów liczbowych, więc oto fragment służący do ukrywania błystek w przeglądarkach internetowych i Moz:
źródło
Krótka odpowiedź:
Dłuższa odpowiedź:
Aby dodać do istniejącej odpowiedzi ...
Firefox:
W bieżących wersjach Firefoksa wartością domyślną (dla agenta użytkownika)
-moz-appearance
właściwości tych elementów jestnumber-input
. Zmiana tego na wartośćtextfield
skutecznie usuwa błystkę.W niektórych przypadkach możesz chcieć początkowo ukryć pokrętło , a następnie wyświetlić je po najechaniu myszą / skupieniu. (Jest to obecnie domyślne zachowanie w Chrome). Jeśli tak, możesz użyć następujących opcji:
Chrom:
W obecnych wersjach Chrome, wartość domyślna (user agent) z
-webkit-appearance
nieruchomości na tych elementów jest jużtextfield
. W celu usunięcia z tarczy, na-webkit-appearance
potrzeby wartości nieruchomości, który ma być zmienionynone
na::-webkit-outer-spin-button
/::-webkit-inner-spin-button
klas pseudo (jest-webkit-appearance: inner-spin-button
domyślnie).Warto zauważyć, że
margin: 0
w starszych usuwa się margines wersjach Chrome.Obecnie, w chwili pisania tego tekstu, tutaj jest domyślna stylizacja agenta użytkownika w pseudoklasie „przycisk wewnętrzny spin”:
źródło
Według podręcznikiem użytkownika Apple dotyczącym kodowania dla mobilnego Safari , możesz użyć następujących opcji, aby wyświetlić klawiaturę numeryczną w przeglądarce iPhone'a:
pattern
Z\d*
będzie również działać.źródło
Spróbuj użyć
input type="tel"
zamiast tego. Wyskakuje klawiatura z cyframi i nie wyświetla ramek. Nie wymaga JavaScript, CSS, wtyczek ani niczego innego.źródło
type=number
robi.Dodaj tylko ten css, aby usunąć pokrętło po wprowadzeniu liczby
źródło
input[type=number]{ -webkit-appearance }
powinno wystarczyć dla chrome, ale oczywiście trzeba również zmodyfikować pseudoelementy. jakiś pomysł dlaczego?Spotkałem ten problem z
input[type="datetime-local"]
, który jest podobny do tego problemu.I znalazłem sposób na rozwiązanie tego rodzaju problemów.
Najpierw musisz włączyć funkcję chrome-root-shadow w „DevTools -> Ustawienia -> Ogólne -> Elementy -> Pokaż cień DOM agenta użytkownika”
Następnie możesz zobaczyć wszystkie cieńowane elementy DOM , na przykład,
<input type="number">
pełny element z zaciemnionym DOM to:Zgodnie z tymi informacjami możesz napisać CSS, aby ukryć niechciane elementy, tak jak powiedział @Josh.
źródło
Nie to, o co prosiłeś, ale robię to z powodu błędu skupienia w WebKit ze spinboxami:
To może dać ci pomysł na pomoc w tym, czego potrzebujesz.
źródło
To jest lepsza odpowiedź, którą chciałbym zasugerować po najechaniu myszą i bez myszy
źródło
margin: 0
osiąga czy teżspin-button
pseudoelementy nie wydają się być wyzwalane przezhover
nowsze przeglądarki?Aby ta funkcja działała w przeglądarce Safari, dodawanie! Ważne w dostosowaniu pakietu internetowego wymusza ukrywanie przycisku obracania.
Nadal mam problemy z wypracowaniem rozwiązania dla Opery.
źródło
W przeglądarce Firefox dla Ubuntu, tylko za pomocą
zrobił dla mnie lewę.
Dodawanie
Doprowadziłby mnie do
za każdym razem, gdy próbowałem. To samo dotyczy wewnętrznego przycisku wirowania.
źródło
-webkit-*
jest dla Chrome,-moz-*
jest dla Mozilli Firefox. To dlatego nie działało dla ciebie.źródło
Może zmień wprowadzanie liczb za pomocą javascript na wprowadzanie tekstu, jeśli nie chcesz pokrętła;
i powstrzymaj użytkownika od wprowadzania tekstu;
poproś javascript, aby zmienił go z powrotem, na wypadek gdybyś potrzebował tarczy;
działało dobrze dla moich celów
źródło
W przeglądarkach WebKit i Blink oraz wszelkiego rodzaju przeglądarkach użyj następującego CSS:
źródło
webkit
? Odpowiadając na dziewięcioletnie pytanie czternastoma istniejącymi odpowiedziami, ważne jest, aby dodać wyjaśnienie, w jaki sposób i dlaczego twoja odpowiedź działa, oraz wspomnieć, jaki nowy aspekt pytania, na które odpowiada.Potrzebowałem tego do pracy
Dodatkowa linia
appearance: none
była dla mnie kluczem.źródło
Znalazłem bardzo proste rozwiązanie
Obsługiwane jest większość przeglądarek: https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode
źródło