Атрибут rows тега <textarea>
Описание
Атрибут rows в теге <textarea> определяет видимую высоту текстового поля в строках текста. Это атрибут физического размера, влияющий на отображение элемента без прокрутки.
<textarea rows="5">
Это текстовое поле отображает 5 строк текста без прокрутки.
Попробуйте ввести несколько строк, чтобы увидеть поведение.
</textarea>
Особенности работы:
- 1 row ≈ высота одной строки текста в текущем шрифте
- Минимальное допустимое значение - 1
- Если не указан, браузер использует значение по умолчанию (обычно 2)
- Реальная высота может отличаться в зависимости от CSS-стилей
Рекомендации:
- Используйте вместе с
colsдля базовых размеров - Для точного контроля размеров лучше использовать CSS (height)
- Выбирайте значение в зависимости от ожидаемого объема текста
- Тестируйте отображение с разными шрифтами
Пример с адаптивным дизайном:
<style>
.adaptive-textarea {
width: 100%;
min-height: calc(1.5em * 3); /* 3 строки */
max-height: 300px;
resize: vertical;
}
</style>
<textarea rows="3" class="adaptive-textarea">
Адаптивное текстовое поле с минимальной высотой в 3 строки
</textarea>
Ограничения:
- Неточность из-за различий в высоте строк
- Может переопределяться CSS-свойствами
- Не учитывает line-height в расчетах
- Плохо адаптируется под мобильные устройства
Сравнение с CSS:
| Характеристика | Атрибут rows | CSS height |
|---|---|---|
| Точность | Приблизительная | Точная |
| Адаптивность | Нет | Да |
| Зависимость от шрифта | Сильная | Слабая |
| Рекомендация | Для простых случаев | Для профессиональных решений |
Пример хорошей практики:
<div class="textarea-wrapper">
<label for="description">Описание:</label>
<textarea id="description" rows="4"
style="min-height: calc(1.5em * 4);">
</textarea>
<div class="hint">Рекомендуем 3-5 предложений</div>
</div>
<style>
.textarea-wrapper {
margin-bottom: 1rem;
}
.hint {
font-size: 0.8em;
color: #666;
}
</style>
Примечание: Для современных адаптивных интерфейсов:
- Используйте CSS-свойства min-height и max-height
- Рассмотрите единицы измерения em, rem, vh
- Добавляйте возможность изменения размера (resize)
- Используйте медиа-запросы для адаптации