Приховування ручки для зміни розміру текстильної рідини в Safari


97

Я використовую компоненти textarea у своїй програмі та динамічно контролюю їх висоту. Оскільки користувачі набирають тип, висота збільшується, коли є достатньо тексту. Це добре працює на IE, Firefox та Safari.

Однак у Safari в нижньому правому куті є інструмент "ручка", який дозволяє користувачеві змінити розмір текстової області натисканням та перетягуванням. Я також помітив цю проблему з textarea на сторінці stackoverflow Задати запитання. Цей інструмент заплутаний і в основному заважає.

Отже, чи можна приховати цю ручку зміни розміру?

(Я не впевнений, чи "ручка" - це правильне слово, але я не можу придумати кращий термін.)

Відповіді:


177

Ви можете змінити поведінку розміру за допомогою CSS:

textarea
{
   resize: none;
}

або просто просто

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

Дійсні властивості: обидва, горизонтальні, вертикальні, жодні


22
Тут не суворо доречно, але Safari також поважає властивості CSS мінімальної висоти, максимальної висоти, мінімальної ширини та максимальної ширини, щоб залишити розмір включеним, але встановити обмеження щодо того, наскільки він може змінювати розмір.
stevemegson

1
Дякую! Я збирався задати це ж питання :)
alex

Що робити, якщо я хочу показати його на наведення курсора після встановлення розміру: жодного?
Майкл Форест

@Michael Forrest: чи пробували ви textarea: hover {resize: nasledit! Важливо; }? Я ніколи цього не пробував, лише здогадка.
Тамас Цінеге

7
Одне застереження: Не дозволяти користувачеві змінити розмір <textarea>взагалі може бути проблемою зручності використання. Налаштування resize:vertical;часто є кращим варіантом. Це не повинно зіпсувати ваш макет, і це дає користувачеві більше відчуття контролю.
Web_Designer

2

Використовуйте таке правило CSS, щоб відключити цю поведінку для всіх TextAreaелементів:

textarea {
    resize: none;
}

Якщо ви хочете відключити його для деяких (але не всіх) TextAreaелементів, у вас є пара варіантів (завдяки цій сторінці ).

Щоб відключити специфічно TextAreaз nameнабором атрибутів до foo(тобто <TextArea name="foo"></TextArea>):

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

Або, використовуючи ідентифікатор (тобто <TextArea id="foo"></TextArea>):

#foo {
    resize: none;
}

Зауважте, що це стосується лише веб-браузерів веб-браузера (тобто Safari та Chrome), які додають ручку зміни розміру до TextAreaелементів керування.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.