2010-01-29 12 views
6

Muszę ukryć kursor migający w polu CSS/Javascript.Jak ukryć migający kursor pola tekstowego?

Czy to możliwe?

+0

Dlaczego? Czy użytkownik będzie wprowadzał dane do tego pola? Jeśli tak, to brzmi jak koszmar użyteczności. – Buggabill

+0

Czy chcesz, aby wpisywały się w tym polu tekstowym? Jakie jest użycie? Zawsze możesz przekierować fokus na kliknięcie lub fokus na pudełku ... ale jaki jest tutaj przypadek użycia? – curtisk

+1

Mam nadzieję, że nie. Byłoby to dość denerwujące, gdybym nie wiedział, gdzie piszę. –

Odpowiedz

1
<input type=text disabled="disabled"/> 

ponieważ nie widzę żadnego innego powodu, dla którego mógłbyś chcieć.

edit:

i odgadnąć chcesz zezwolić użytkownikowi na przewijanie tekstu, który jest większy niż obszar, ale nie pokazują miga?

Jeśli tak, nadal chcesz to wyłączyć. nie tylko ukryć migający kursor. jeśli użytkownik nie może tam wpisać, powinien być wyłączony. Kropka.

Teraz, jeśli nadal chcesz zezwolić użytkownikowi na wyświetlenie całej zawartości, musisz wprowadzić dane tak duże, jak zawartość. nie ma ucieczki.

a następnie ograniczyć rozmiar z rodzicem div z CSS overflow: hidden lub scroll.

<div style="overflow: scroll-x;"><input size=255 value="some string 255 char long" /></div> 
+0

Potrzebuję edytować pole tekstowe, ale migający kursor nie powinien być wyświetlany. – Santhosh

+0

@santose: Dlaczego? Na czym polega problem z kursorem? po prostu ciekawy? – curtisk

+0

Chcę go dostosować tam, gdzie nie powinien wyglądać pole tekstowe – Santhosh

12

Można ustawić maxlength w polu tekstowym, a następnie użyć text-indent aby przesunąć kursor z powrotem więcej znaków niż MAXLENGTH.

Na przykład, można ustawić maxlength=20 a następnie na polu tekstowym ustawić text-indent: -20em ten sposób tekst zaczyna się od granic polu i nigdy nie może przyjść do widzenia.

+0

Bardzo sprytnie .-) –

+0

ale to także ukrywa cały tekst w polu tekstowym ... chyba autor chce coś takiego, jak pozwolić ci przewinąć tekst, ale nie pokazać migającego kursora ... ale to tylko domysły, ponieważ jego pytanie było 2 linijkami. – gcb

2

To jest dość stare, ale miałem do czynienia z podobnym problemem. Dla przeglądarek, które go obsługują (czyli nie IE8), możesz ustawić kolor elementu wejściowego na taki sam jak jego tło (prawdopodobnie biały), a następnie kursor będzie niewidoczny.

-1

Ustaw kursor w tym samym kolorze co tło?

4

Oto moje rozwiązanie z innym pytaniem, że już odpowiedział:

https://stackoverflow.com/a/23472096/1806628


Podstawowym założeniem jest to, że kolor kursor jest taki sam jak kolor tekstu za. Pierwszą rzeczą, którą robisz, jest uczynienie tekstu przezroczystym, odejmując od niego kursor. Następnie możesz uczynić tekst widocznym ponownie za pomocą cienia tekstowego.

 
input[type="text"]{ 
    color : transparent; 
    text-shadow : 0 0 0 #000; 
} 
input[type="text"]:focus{ 
    outline : none; 
} 

Ostrzeżenie:

Nie wydaje się, aby pracować pod iOS 8. (dzięki @Altaveron za info)


Kolejny pomysł mój jest nieco bardziej hacky i wymaga javascript.

HTML i CSS część:

dokonać pola 2 wejściowe i jedną pozycję dokładnie na szczycie drugiego z z-index, itdDzięki temu górne pole wejściowe staje się całkowicie przezroczyste, bez ostrości, bez koloru i podobne. Musisz ustawić widoczne, niższe wejście na wyłączone, tak aby wyświetlało tylko treść powyższego wejścia, ale w rzeczywistości nie działa.

Javascript część:

Po wszystkich wyżej zsynchronizowaniu dwa wejścia. Po naciśnięciu klawisza lub po zmianie kopiujesz zawartość wyższego wejścia do niższego.

Podsumowując wszystkie powyższe: wpisujesz niewidoczne dane wejściowe, które zostaną wysłane do backendu po przesłaniu formularza, ale każda aktualizacja tekstu w nim zawartego będzie wyświetlana w dolnym widocznym, ale wyłączonym polu tekstowym.

0

Jeśli jest to wejście z atrybutem readonly = "readonly", Safari na iOS nadal pokazuje migający kursor podczas ustawiania ostrości.

Tak, aby usunąć miga, co następuje pracował dla mnie:

-webkit-user-select: none; 
user-select: none; 
Powiązane problemy