В нижнем углу текстового поля, созданного с помощью тега textarea
, есть треугольник. Потянув за него, пользователь самостоятельно может поменять размер элемента.
<textarea>По умолчанию</textarea>
Убрать возможность изменения размера textarea
<style> textarea { resize: none; } </style> <textarea>Запретить изменять размер</textarea>
resize
- пользователь не может изменять размер
- пользователь может изменять и ширину, и высоту
- пользователь может изменять ширину
- пользователь может изменять высоту
- пользователь может изменить block-направление (будет это ширина или высота зависит от значений
writing-mode
иdirection
) - пользователь может изменить inline-направление (будет это ширина или высота зависит от значений
writing-mode
иdirection
) - none
- наследует значение родителя
- none
Содержимое
<style> div { resize: none; /* свойствоresize
не наследуется, применяется к нестрочным элементам сoverflow
неvisible
*/ overflow: auto; } </style> <div>Содержимое</div>
Почему не работает resize
overflow
не должно иметь значение visible
(то, что по умолчанию)
Нельзя изменять размер
<style> div { border: 1px solid; resize: both; } </style> <div>Нельзя изменять размер</div>
Можно изменять размер
<style> div { border: 1px solid; resize: both; overflow: auto; } </style> <div>Можно изменять размер</div>
Элемент не должен быть строчным
Нельзя изменять размер<style> span { border: 1px solid; resize: both; overflow: auto; } </style> <span>Нельзя изменять размер</span>Можно изменять размер
<style> span { border: 1px solid; resize: both; overflow: auto; display: inline-block; } </style> <span>Нельзя изменять размер</span>
Почему к textarea
применяется resize
Для тега textarea
нельзя установить ни display: inline;
[mozilla.org], ни overflow: visible;
[mozilla.org].
<style> textarea { display: inline; overflow: visible; } </style> <textarea>При переполнении содержимое не выходит за границы установленной ширины и высоты элемента</textarea>
Пользователь может растянуть элемент в обе стороны одновременно по горизонтали (и влево, и в право)
Сначала занимает свободное пространство родителя.
<style> textarea { display: block; margin: 0 auto; resize: horizontal; } </style> <textarea>Можно изменять размер</textarea>
Пример использования: «Демонстрация работы градиента»
Ограничить предел расширения
<style> textarea { max-width: 30em; max-height: 30em; } </style> <textarea>Можно изменять размер</textarea>
Зависимость размера треугольника от толщины полосы прокрутки
Если есть полоса прокрутки, то уголок располагается под ней, иначе наезжает на содержимое.
<textarea style="scrollbar-width: auto;">auto</textarea>
<textarea style="scrollbar-width: thin;">thin</textarea>
<textarea style="scrollbar-width: none;">none</textarea>
<!-- На момент правки статьи отсутствует поддержка scrollbar-width
в WebKit -->
Убрать треугольник в textarea
<style> textarea::-webkit-resizer { /* нестандартный псевдоэлемент только для WebKit */ display: none; } </style> <textarea>Можно изменять размер</textarea>
Изменить стиль области захвата, образованного resize
<style> textarea::-webkit-resizer { /* нестандартный псевдоэлемент только для WebKit */ background: linear-gradient(315deg, blue 16%, #0000 16% 26%, blue 26% 33%, #0000 33% 43%, blue 43% 50%, #0000 50% 100%) no-repeat; background-size: 90% 90%; } </style> <textarea>Можно изменять размер</textarea>