2009-02-25 9 views
90

Używam komponentów textarea w mojej aplikacji i dynamicznie kontroluję ich wysokość. Gdy użytkownik pisze, wysokość jest zwiększana za każdym razem, gdy jest wystarczająca ilość tekstu. Działa to dobrze na IE, Firefox i Safari.Ukrywanie tekstu Zmienianie rozmiaru uchwytu w Safari

Jednak w Safari istnieje narzędzie "uchwyt" w prawym dolnym rogu, które umożliwia użytkownikowi zmianę rozmiaru obszaru tekstowego poprzez kliknięcie i przeciągnięcie. Zauważyłem również ten problem z tekstem na stronie stackoverflow Zadaj pytanie. To narzędzie jest mylące i zasadniczo przeszkadza.

Czy jest jakiś sposób, aby ukryć uchwyt zmiany rozmiaru?

(nie jestem pewien, czy „obsługiwać” to właściwe słowo, ale nie mogę wymyślić lepszego określenia).

Odpowiedz

164

można zastąpić zachowanie zmiany rozmiaru z CSS:

textarea 
{ 
    resize: none; 
} 

lub po prostu

<textarea style="resize: none;">TEXT TEXT TEXT</textarea> 

Prawidłowe właściwości są: zarówno poziome, pionowe, żaden

+22

Nie ma to tutaj zastosowania, ale Safari stosuje się również do właściwości CSS min-height, max-height, min-width i max-width, aby pozostawić zmianę rozmiaru włączoną, ale określić limity rozmiaru. – stevemegson

+1

Dziękujemy! Miał właśnie zadać to samo pytanie :) – alex

+0

Co jeśli chcę pokazać go po najechaniu kursorem po ustawieniu zmiany rozmiaru: brak? –

2

Użyj następującą regułę CSS, aby wyłączyć to zachowanie dla wszystkich TextArea elementów:

textarea { 
    resize: none; 
} 

Jeśli chcesz wyłączyć go dla niektórych (ale nie wszystkich) TextArea elementy, ty mieć kilka opcji (dzięki this page).

Aby wyłączyć konkretny TextArea z atrybutem name ustawiony foo (tj <TextArea name="foo"></TextArea>):

textarea[name=foo] { 
    resize: none; 
} 

Lub przy użyciu identyfikatora (tzn <TextArea id="foo"></TextArea>):

#foo { 
    resize: none; 
} 

Zauważ, że ten dotyczy tylko przeglądarek opartych na WebKit (np. Safari i Chrome), które dodają uchwyt zmiany rozmiaru do elementów sterujących TextArea.