<textarea> HTML-элемент textarea
Базовый уровень Широко доступно *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
* Поддержка отдельных частей этой функции может различаться.
Элемент <textarea> HTML представляет собой элемент управления для редактирования обычного текста в нескольких строках. Он полезен, когда нужно позволить пользователям вводить большой объём произвольного текста, например комментарий к отзыву или сообщение в форме обратной связи.
Попробуйте
<label for="story">Tell us your story:</label> <textarea id="story" name="story" rows="5" cols="33"> It was a dark and stormy night... </textarea>
label,
textarea {
font-size: 0.8rem;
letter-spacing: 1px;
}
textarea {
padding: 10px;
max-width: 100%;
line-height: 1.5;
border-radius: 5px;
border: 1px solid #cccccc;
box-shadow: 1px 1px 1px #999999;
}
label {
display: block;
margin-bottom: 10px;
}
В приведённом выше примере показаны несколько возможностей <textarea>:
- Атрибут
idпозволяет связать<textarea>с элементом<label>для обеспечения доступности - Атрибут
nameзадаёт имя связанной точки данных, отправляемой на сервер при отправке формы. -
Атрибуты
rowsиcolsпозволяют задать точный размер<textarea>. Их стоит задать для единообразия, поскольку значения по умолчанию в разных браузерах могут отличаться. - Элемент
<textarea>задаёт своё содержимое по-разному в контекстах HTML и JavaScript:- В HTML начальное содержимое
<textarea>указывается между открывающим и закрывающим тегами, а не в виде атрибутаvalue. - В JavaScript у элементов
<textarea>есть свойствоvalue, с помощью которого можно получить или задать текущее содержимое, и свойствоdefaultValue, с помощью которого можно получить или задать начальное значение (эквивалентно обращению к текстовому содержимому HTML-элемента).
- В HTML начальное содержимое
Элемент <textarea> также поддерживает несколько атрибутов, общих для <input> форм, например autocapitalize, autocomplete, autofocus, disabled, placeholder, readonly и required.
Атрибуты
Этот элемент включает глобальные атрибуты.
autocapitalize-
Управляет автоматическим преобразованием введённого текста в заглавные буквы и, если оно включено, определяет способ преобразования.
autocomplete-
Управляет возможностью автоматического заполнения введённого текста браузером. Возможные значения:
-
off: пользователь должен явно вводить значение в это поле при каждом использовании либо документ предоставляет собственный способ автозаполнения; браузер не заполняет поле автоматически. -
on: браузер может автоматически заполнить значение на основе данных, введённых пользователем ранее. -
<token-list>: упорядоченный набор разделённых пробелами токенов автозаполнения, которому могут предшествовать токен раздела, токен группы выставления счёта или доставки и/или токен, указывающий тип получателя.
Элементы
<textarea>, в которых не указан атрибутautocomplete, наследуют состояниеautocompleteonилиoff, заданное для владельца формы элемента<textarea>. Владельцем формы является либо элемент<form>, потомком которого является этот элемент<textarea>, либо элемент формы, чейidуказан в атрибутеformэлемента input. Дополнительные сведения см. в описании атрибутаautocompleteэлемента<form>. -
autocorrect-
Управляет включением автоматической коррекции орфографии и обработки текста во время редактирования пользователем этого элемента
textarea. Допустимые значения:on-
Включить автоматическую коррекцию орфографии и замену текста.
off-
Отключить автоматическую коррекцию орфографии и замену текста.
autofocus-
Этот булев атрибут позволяет указать, что элемент управления формы должен получить фокус при загрузке страницы. В документе этот атрибут может быть задан только для одного элемента, связанного с формой.
cols-
Видимая ширина текстового элемента управления в среднем количестве символов. Если атрибут указан, его значение должно быть положительным целым числом. Если атрибут не указан, используется значение по умолчанию
20. dirname-
Этот атрибут указывает направление текста содержимого элемента. Дополнительные сведения см. в описании атрибута
dirname. disabled-
Этот булев атрибут указывает, что пользователь не может взаимодействовать с элементом управления. Если атрибут не указан, элемент управления наследует настройку родительского элемента, например
<fieldset>; если у элемента, для которого задан атрибутdisabled, нет родительского элемента, элемент управления включён. form-
Элемент формы, с которым связан элемент
<textarea>(его «владелец формы»). Значением атрибута должен бытьidэлемента формы в том же документе. Если атрибут не указан, элемент<textarea>должен быть потомком элемента формы. Этот атрибут позволяет размещать элементы<textarea>в любом месте документа, а не только внутри элементов формы. maxlength-
Максимальная длина строки (измеряемая в кодовых единицах UTF-16), которую может ввести пользователь. Если значение не указано, пользователь может ввести неограниченное количество символов.
minlength-
Минимальная длина строки (измеряемая в кодовых единицах UTF-16), которую должен ввести пользователь.
name-
Имя элемента управления.
placeholder-
Подсказка пользователю о том, что можно ввести в элемент управления. При отображении подсказки возврат каретки или перевод строки в тексте заполнителя должен восприниматься как разрыв строки.
Примечание: Заполнители следует использовать только для примера типа данных, которые нужно ввести в форму; они не заменяют полноценный элемент
<label>, связанный с полем ввода. Подробное объяснение см. в разделе Метки<input>. readonly-
Этот булев атрибут указывает, что пользователь не может изменить значение элемента управления. В отличие от атрибута
disabled, атрибутreadonlyне мешает пользователю нажимать на элемент управления или выбирать в нём текст. Значение элемента управления, доступного только для чтения, по-прежнему отправляется вместе с формой. required-
Этот атрибут указывает, что пользователь должен ввести значение перед отправкой формы.
rows-
Количество видимых строк текста в элементе управления. Если атрибут указан, его значение должно быть положительным целым числом. Если атрибут не указан, значение по умолчанию — 2.
spellcheck-
Указывает, проверяет ли браузер/ОС орфографию в элементе
<textarea>. Возможные значения:-
true: указывает, что в элементе нужно проверять орфографию и грамматику. -
default: указывает, что элемент должен следовать поведению по умолчанию, которое может зависеть от значенияspellcheckродительского элемента. -
false: указывает, что в элементе не следует проверять орфографию.
-
wrap-
Указывает, как элемент управления должен переносить значение при отправке формы. Возможные значения:
-
hard: браузер автоматически вставляет разрывы строк (CR+LF), чтобы длина каждой строки не превышала ширину элемента управления; для этого необходимо указать атрибутcols -
soft: браузер гарантирует, что все разрывы строк во введённом значении будут представлены паройCR+LF, но не добавляет в значение дополнительные разрывы строк. -
off: какsoft, но отображается какwhite-space: pre: строки, превышающиеcols, не переносятся, а элемент<textarea>становится прокручиваемым по горизонтали.
Если этот атрибут не указан, по умолчанию используется значение
soft. -
Стилизация с помощью CSS
<textarea> — это замещаемый элемент с внутренними размерами, как у растрового изображения. По умолчанию его значение display равно inline-block. По сравнению с другими элементами формы его довольно легко стилизовать: блочная модель, шрифты, цветовую схему и другие свойства можно настраивать с помощью обычного CSS.
В статье Стилизация HTML-форм приведены полезные советы по оформлению элементов <textarea>.
Несогласованность базовой линии
Спецификация HTML не определяет положение базовой линии элемента <textarea>, поэтому разные браузеры задают её по-разному. В Gecko базовая линия <textarea> проходит по базовой линии первой строки текстовой области, а в другом браузере она может проходить по нижнему краю блока <textarea>. Не используйте для него vertical-align: baseline: поведение непредсказуемо.
Управление возможностью изменения размера текстовой области
В большинстве браузеров размер элементов <textarea> можно изменить — в правом нижнем углу виден маркер перетаскивания, с помощью которого можно менять размер элемента на странице. Это регулируется свойством CSS resize. Изменение размера включено по умолчанию, но его можно явно отключить, задав значение none для свойства resize:
textarea {
resize: none;
}
Стилизация допустимых и недопустимых значений
Допустимые и недопустимые значения элемента <textarea> (например, значения в пределах и за пределами ограничений, заданных атрибутами minlength, maxlength или required) можно выделить с помощью псевдоклассов :valid и :invalid. Например, можно задать для текстовой области разные границы в зависимости от того, допустимо ли её значение:
textarea:invalid {
border: 2px dashed red;
}
textarea:valid {
border: 2px solid lime;
}
Примеры
>Простой пример
В следующем примере показана текстовая область с заданным количеством строк и столбцов, начальным содержимым и стилями CSS, не позволяющими пользователям увеличивать её ширину более чем до 500 пикселей, а высоту — более чем до 130 пикселей:
<textarea name="textarea" rows="5" cols="15">Write something here</textarea>
textarea {
max-height: 130px;
max-width: 500px;
}
Результат
Пример с использованием «minlength» и «maxlength»
В этом примере задано минимальное и максимальное количество символов — соответственно 10 и 20. Попробуйте сами.
<textarea name="textarea" rows="5" cols="30" minlength="10" maxlength="20"> Write something here… </textarea>
textarea {
max-height: 130px;
max-width: 500px;
}
Результат
Обратите внимание: minlength не мешает пользователю удалять символы, чтобы введённое количество стало меньше минимального, но при этом делает значение, введённое в <textarea>, недопустимым. Также учтите, что даже если задано значение minlength (например, 3), пустое значение <textarea> всё равно считается допустимым, если не задан атрибут required.
Пример с использованием «placeholder»
В этом примере задан заполнитель. Обратите внимание, как он исчезает, когда вы начинаете вводить текст в поле.
<textarea name="textarea" rows="5" cols="30" placeholder="Comment text."></textarea>
textarea {
max-height: 130px;
max-width: 500px;
}
Результат
Примечание: Заполнители следует использовать только для демонстрации типа данных, которые нужно ввести в форму; они не заменяют правильно связанный с полем ввода элемент <label>. Полное объяснение см. в разделе <input> метки.
Отключённые текстовые области и текстовые области только для чтения
В этом примере показаны два элемента <textarea> — один readonly, а другой disabled. Вы не можете редактировать содержимое ни одного из этих элементов, но элемент readonly может получать фокус, и его значение отправляется вместе с формами. Значение элемента disabled не отправляется, и он не может получать фокус.
<textarea name="textarea" rows="5" cols="30" readonly> I am a read-only textarea. </textarea> <textarea name="textarea" rows="5" cols="30" disabled> I am a disabled textarea. </textarea>
textarea {
display: block;
resize: horizontal;
max-width: 500px;
}
Результат
Техническая сводка
| Категории содержимого | Потоковое содержимое, фразовое содержимое, интерактивное содержимое, перечисляемый, помечаемый меткой, сбрасываемый и отправляемый элемент, связанный с формой. |
|---|---|
| Допустимое содержимое | Текст |
| Опускание тегов | Не допускается: начальный и конечный теги обязательны. |
| Допустимые родительские элементы | Любой элемент, допускающий фразовое содержимое. |
| Неявная роль ARIA | textbox |
| Допустимые роли ARIA | Роль role не допускается |
| Интерфейс DOM | HTMLTextAreaElement |
Спецификации
| Спецификация |
|---|
| HTML> # the-textarea-element> |
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
textarea |
1 | 12 | 1["До Firefox 6, когда элемент<textarea> получал фокус, точка вставки по умолчанию помещалась в конец текста. Другие основные браузеры помещают точку вставки в начало текста.", "Ко всем элементам <textarea> применяется фоновый градиент по умолчанию, который можно отключить с помощью background-image: none.", "До Firefox 89 для изменения содержимого элементов <textarea> с помощью команд Document.execCommand() требовались обходные решения (см. ошибку 1220696)."] |
≤12.1 | ≤4 | 18 | 4["До Firefox для Android 6, когда элемент<textarea> получал фокус, точка вставки по умолчанию помещалась в конец текста. Другие основные браузеры помещают точку вставки в начало текста.", "Ко всем элементам <textarea> применяется фоновый градиент по умолчанию, который можно отключить с помощью background-image: none.", "До Firefox для Android 89 для изменения содержимого элементов <textarea> с помощью команд Document.execCommand() требовались обходные решения (см. ошибку 1220696)."] |
≤12.1 | ≤3В отличие от других основных браузеров, для отключённых элементов<textarea> применяется стиль opacity: 0.4 по умолчанию. |
1.0 | 4.4 | ≤3В отличие от других основных браузеров, для отключённых элементов<textarea> применяется стиль opacity: 0.4 по умолчанию. |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
autocomplete |
66 | 79 | 59 | 53 | 9.1 | 66 | 59 | 47 | 9.3 | 9.0 | 66 | 9.3 |
cols |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
dirname |
17 | 79 | 116 | ≤12.1 | 6 | 18 | 116 | ≤12.1 | 6 | 1.0 | 4.4 | 6 |
disabled |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
form |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
maxlength |
4 | 12 | 4 | ≤12.1 | 5До Safari 17 символы новой строки считались двумя символами, а не одним. См. ошибку 249916. |
18 | 4 | ≤12.1 | 4.2До Safari на iOS 17 символы новой строки считались двумя символами, а не одним. См. ошибку 249916. |
1.0 | 4.4 | 4.2До WebView на iOS 17 символы новой строки считались двумя символами, а не одним. См. ошибку 249916. |
minlength |
40 | 17 | 51 | 27 | 10.1 | 40 | 51 | 27 | 10.3 | 4.0 | 40 | 10.3 |
name |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
placeholder |
4 | 12 | 4 | ≤12.1 | 5 | 18 | 4 | ≤12.1 | 5 | 1.0 | 4.4 | 5 |
readonly |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
required |
4 | 12 | 4 | ≤12.1 | 5 | 18 | 4 | ≤12.1 | 5 | 1.0 | 4.4 | 5 |
rows |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
wrap |
16 | 12 | 4 | ≤12.1 | 6 | 18 | 4 | ≤12.1 | 6 | 1.0 | 4.4 | 6 |
|---|
См. также
- Другие элементы, связанные с формами:
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/textarea