2012-05-30 17 views
9

Dzięki tym stylom css zapobiegam zaznaczeniu zaznaczonego tekstu na stronie. Ale powoduje to zablokowanie pól wejściowych przed wprowadzaniem danych przez użytkownika w Safari.Wybrane przez użytkownika: brak powoduje, że pole wejściowe staje się niedostępne w Safari

* { 
-webkit-touch-callout: none; 
-webkit-user-select: none; // locks fields on Safari 
-khtml-user-select: none; // locks fields on Safari 
-moz-user-select: none; 
-ms-user-select: none; 
user-select: none;  
} 

Czy istnieje sposób na Safari, aby uniemożliwić wybór użytkownika bez ingerencji w pola wejściowe?

Odpowiedz

19

Dlaczego po prostu nie zastosować stylu do wszystkiego poza wejściami?

CSS3 sposób: *:not(input){...}

+0

To działało. Dzięki. – user823527

+0

Nie zapomnij o tekstach: '*: not (input textarea) {...}' –

+7

@tomaspolach Twoja składnia jest niepoprawna. Poprawna składnia to: *: not (input): not (textarea) –

0

potrzebowałem czegoś trochę bardziej precyzyjny.

input[type=text] 
{ 
    -webkit-user-select: text; 
} 

input[type=password] 
{ 
    -webkit-user-select: all; 
} 
+0

jaka jest różnica w zakresie funkcjonalności? Przepraszam, wiem, że mogę go wypróbować, po prostu bardzo zajęty ... –

+0

To tylko wybiera określone elementy wejściowe z atrybutem typu ustawionym na tekst lub hasło. Jest to wymagane w przypadku starszych przeglądarek, które nie obsługują opcji "nie". Jednak zrobiłbym to: '* {... user-select: none; } input {... user-select: text; } ' –

0

Na każde przypadkach w CSS:

*:not(input), *:focus:not(input) { 
    -webkit-touch-callout: none; 
    -webkit-user-select: none; 
    -khtml-user-select: none; 
    -moz-user-select: none; 
    -ms-user-select: none; 
    user-select: none; 
    outline-style:none;/*IE*/ 
} 
Powiązane problemy