0Pricing
HTML Academy · Урок

Textarea для многострочного ввода

Собирайте многострочный текст с помощью элемента textarea

«Textarea для многострочного ввода» — бесплатный урок HTML Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения HTML Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс HTML Academy содержит 4 уроков всего.

Текстовое поле

Элемент <textarea> принимает многострочный текстовый ввод:

<label for="message">Message</label>
<textarea
  id="message"
  name="message"
  rows="5"
  cols="40"
  placeholder="Enter your message here..."
></textarea>
<!-- textarea is NOT a void element -- it has a closing tag -->
<!-- Default content goes between the tags, not in a value attribute -->

Атрибуты количества строк и столбцов

rows и cols задают исходный видимый размер:

<!-- rows: height in lines (default: 2) -->
<!-- cols: width in characters (default: 20) -->
<textarea rows="6" cols="50">...</textarea>

<!-- Better: use CSS for sizing -->
<textarea style="width: 100%; height: 150px; resize: vertical;">

Задание содержимого по умолчанию

Текст по умолчанию размещается между открывающим и закрывающим тегами:

<textarea name="bio">
Hello! I am a developer who loves HTML.
</textarea>
<!-- Note: whitespace inside textarea IS rendered -->
<!-- The newline after the opening tag will appear in the textarea -->
<!-- Avoid whitespace between tags if you don't want it -->

Изменение размера с помощью CSS

Управляйте изменением размера пользователем с помощью свойства CSS resize:

textarea {
  resize: vertical;    /* allow only vertical resize */
  /* resize: horizontal -- only horizontal */
  /* resize: both      -- both directions (default) */
  /* resize: none      -- prevent resizing */

  width: 100%;
  min-height: 120px;
  max-height: 400px;
  padding: 0.5rem;
  box-sizing: border-box;
}

Автоматически растущее текстовое поле

Сделайте текстовое поле растущим по мере ввода пользователя с помощью JavaScript:

<textarea id="auto-grow" rows="3" style="overflow: hidden;"></textarea>

<script>
const ta = document.getElementById('auto-grow');
ta.addEventListener('input', () => {
  ta.style.height = 'auto';
  ta.style.height = ta.scrollHeight + 'px';
});
</script>

Минимальная и максимальная длина

Ограничьте длину текста в текстовом поле:

<label for="bio">Bio (max 500 characters)</label>
<textarea
  id="bio"
  name="bio"
  maxlength="500"
  minlength="10"
  rows="4"
></textarea>

<!-- Live character count: -->
<small id="char-count">0/500</small>
<script>
document.getElementById('bio').addEventListener('input', function() {
  document.getElementById('char-count').textContent =
    this.value.length + '/500';
});
</script>

Проверка орфографии

Атрибут spellcheck управляет проверкой орфографии:

<!-- Enable (default for textarea) -->
<textarea spellcheck="true">...</textarea>

<!-- Disable (for code editors, technical input) -->
<textarea spellcheck="false">...</textarea>

Перенос строк

Атрибут wrap управляет способом отправки текста с переносами строк:

<!-- wrap="soft" (default): text wraps visually but newlines not added -->
<textarea wrap="soft">...</textarea>

<!-- wrap="hard": newlines inserted at wrap points when submitted -->
<!-- Requires cols to be set -->
<textarea wrap="hard" cols="40">...</textarea>

Только для чтения и отключение

Сделайте текстовое поле недоступным для редактирования:

<!-- readonly: visible, selectable, submitted -->
<textarea readonly>This is read-only text.</textarea>

<!-- disabled: cannot interact, not submitted -->
<textarea disabled>Disabled textarea.</textarea>

Доступность текстовых полей

Рекомендации по доступности текстовых полей:

  • Всегда связывайте <label> с полем с помощью for/id
  • Используйте aria-describedby, чтобы связать текст справки или счётчики символов
  • Оповещайте программы чтения с экрана об изменениях ограничения символов с помощью живых областей
<label for="comment">Comment</label>
<textarea id="comment" aria-describedby="comment-hint"></textarea>
<p id="comment-hint">Maximum 200 characters.</p>

Стилизация текстового поля

Распространённые способы стилизации текстового поля:

textarea {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #ddd;
  border-radius: 0.375rem;
  font-family: inherit;    /* match surrounding font */
  font-size: 1rem;
  line-height: 1.5;
  resize: vertical;
  min-height: 100px;
  box-sizing: border-box;
  transition: border-color 0.2s;
}
textarea:focus {
  outline: none;
  border-color: #0070f3;
  box-shadow: 0 0 0 3px rgba(0,112,243,0.2);
}

Быстрая проверка

Как задать предварительно заполненный текст в текстовом поле?

Повторение: текстовое поле

Основные сведения о текстовых полях:

  • Многострочный текстовый ввод с закрывающим тегом
  • Содержимое по умолчанию размещается между открывающим и закрывающим тегами, а не в атрибуте value
  • rows и cols задают исходный размер; предпочтительнее использовать CSS
  • maxlength и minlength управляют длиной
  • resize: vertical в CSS обеспечивает контролируемое изменение размера
  • Автоматическое увеличение: задавайте height: scrollHeight при событии ввода

Часто задаваемые вопросы

Урок «Textarea для многострочного ввода» бесплатный?

Да — полный текст урока «Textarea для многострочного ввода» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс HTML Academy, подпишись на CoddyKit PRO. Курс HTML Academy содержит 4 уроков всего.

Чему я научусь в уроке «Textarea для многострочного ввода»?

Собирайте многострочный текст с помощью элемента textarea Ты практикуешь HTML Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать HTML Academy?

Предыдущий опыт не требуется. HTML Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Textarea для многострочного ввода»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке HTML Academy?

Да. Каждый урок HTML Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Выпадающие меню Select и option
  2. Textarea для многострочного ввода
  3. Группы флажков и переключателей
  4. Datalist для автодополнения
← Назад к HTML Academy