В CSS 3 появилось свойство resize, которе указывает, можно ли пользователю изменять размеры текстового поля и других элементов. Возможны значения:
none |
Запрещено изменять размеры |
both |
Можно изменять размеры |
horizontal |
Только по горизонтали |
vertical |
Только по вертикали |
inherit |
Наследует значение родителя |
1
Запретить растягивание
resize: none
– запрещает растягивание textarea и убирает уголок ресайза.
textarea {
resize: none;
width: 400px;
height: 150px;
}
CSS
Старый метод:
textarea {
min-width: 400px;
max-width: 400px;
max-height: 150px;
min-height: 150px;
}
CSS
Результат:
2
Растягивание только по горизонтали
textarea {
resize: horizontal;
width: 400px;
height: 150px;
}
CSS
Старый метод:
textarea {
width: 400px;
height: 150px;
max-height: 150px;
min-height: 150px;
}
CSS
Результат:
3
Растягивание только по вертикали
textarea {
resize: vertical;
width: 400px;
height: 150px;
}
CSS
Старый метод:
textarea {
width: 400px;
max-width: 400px;
min-width: 400px;
height: 150px;
}
CSS
Результат:
4
Растягивание div
Чтобы сделать возможность растягивать другие элементы, помимо resize: both
, нужно ещё добавить display: inline-block
и overflow: auto
.
<div class="box">...</div>
HTML
.box {
resize: both;
display: inline-block;
overflow: auto;
min-width: 150px;
min-height: 150px;
background: url(/bg.jpg) 50% 50% no-repeat;
background-size: cover;
}
CSS
Результат:
Тег <textarea> в HTML используется для создания многострочного поля для ввода, другими словами, текстовой области.
Текстовое поле для ввода, созданное с помощью тега <textarea>, не имеет ограничений по количеству вводимых символов.
Размеры textarea HTML регулируются с помощью атрибутов rows и cols. Атрибут тега <textarea> rows регулирует высоту области, задавая количество строк, выводимых на экран без прокрутки (скроллинга). Атрибут тега <textarea> cols регулирует ширину текстовой области, рассчитывается в пикселях, как средняя ширина символа, умноженная на значение атрибута.
По умолчанию изменять размер textarea можно растягивая текстовую область за правый нижний край. Если нужно сделать <textarea> фиксированного размера, следует использовать CSS-правило resize: none;. Это отключит возможность растягивать область ввода.
Тег <textarea> HTML является элементом формы. Подробно о создании форм описано в статье: Все про формы и поля в HTML. Создание и работа с формами.
Синтаксис
<textarea>текст</textarea>
Примеры использования <textarea> в HTML коде
HTML код текстовой области <textarea>
<textarea name="message" cols="30" rows="4" placeholder="Введите сообщение"></textarea>
<textarea> с фиксированным размером (no resize textarea)
По умолчанию пользователь может изменять размер текстовой области <textarea> (растягивать область ввода за край).
Для того, чтобы запретить изменение размера <textarea> используйте CSS свойство resize. Значение none поставит запрет на изменение размеров текстовой области, как ширины, так и высоты.
Если необходимо, чтобы у textarea была фиксированная ширина, установите значение у CSS свойства resize в vertical, при этом высоту области можно будет изменить. Если нужно иметь возможность изменять ширину <textarea> при фиксированной высоте, используйте значения horizontal.
Отображение в браузере:
HTML код <textarea> с фиксированной шириной и высотой
<style type="text/css">
textarea[name="details"] {
resize: none;
}
</style>
<textarea name="details" cols="30" rows="3" placeholder="Введите дополнительную информацию"></textarea>
Поддержка браузерами
Тег | |||||
<textarea> | Да | Да | Да | Да | Да |
Атрибуты тега textarea
Атрибут | Значения | Описание |
---|---|---|
autofocus | не указывается / autofocus |
Логический атрибут. Если указан, при загрузке документа фокус будет переведен на текстовую область. |
cols | число |
Определяет ширину текстовой области. Ширина области рассчитывается в пикселях как ширина символа, умноженная на значение этого атрибута. Значение приблизительно равняется количеству символов моноширинного шрифта, которые должны занимать полную строку в текстовой области. |
disabled | не указывается / disabled |
Логический атрибут. Если указан, делает текстовую область неактивной. Данные текстовой области, отмеченной этим атрибутом, не будут переданы на сервер при отправке формы. Также отключает возможность ввода текста в текстовую область. |
form | id формы |
Указывает на форму, к которой относится текстовая область. Используется, если <textarea> находится вне HTML кода формы. Если текстовая область находится внутри тега <form>, то использовать атрибут form не нужно, текстовая область по умолчанию привязана к форме, внутри которой находится. |
maxlength | число |
Определяет максимальное количество символов, которые пользователь может ввести в текстовую область. По умолчанию объем текста в текстовой области не ограничен. |
name | текст |
Имя текстовой области. Используется при передаче данных формы на сервер. Значение (текст) текстовой области будет передано в переменной, имеющей имя, указанное в этом атрибуте. |
placeholder | текст |
Текст, который будет отображаться внутри текстовой области, когда она не заполнена текстом. Обычно это описание того, что должен ввести пользователь, либо пример заполнения. |
readonly | не указывается / readonly |
Логический атрибут. Если указан, пользователь не сможет изменить значение (текст) в текстовой области. Используется для создания текстовых областей, доступных только для чтения. |
required | не указывается / required |
Логический атрибут. Если указан, текстовая область будет определена как обязательная для заполнения. Форма не будет отправлена на сервер, если текстовая область не будет заполнена. Заполнение контролируется браузером. При попытке отправить форму с незаполненной обязательной текстовой областью, браузеры обычно выводят на экран ошибку заполнения. |
rows | число |
Определяет высоту текстовой области. В качестве значения необходимо указать количество строк, которые должны быть видны без прокрутки (скроллинга). |
wrap | hard soft |
Определяет правила переноса строк: Значение hard: символы переноса строки будут добавлены в конце каждой строки в текстовой области. Таким образом, введенный текст из текстовой области переданный на сервер будет иметь ширину не больше, чем ширина <textarea>. Для использования этого значения необходимо указать атрибут cols. Значение soft: символы переноса ставятся там, где их ставил пользователь. Таким образом текст из текстовой области, переданный на сервер в дальнейшем сможет растягиваться под ширину тега-контейнера. Значение по умолчанию. |
Тег <textarea> также, поддерживает глобальные HTML атрибуты.
-
Главная
-
Вредные советы
Textarea — один из важных элементов полей для ввода, особенно для форм обратной связи при создании сайтов. Поэтому он рождает множество проблем для верстальщиков и программистов. Есть несколько особенных HTML свойств textarea. О них я и хочу поведать.
Размеры textarea
Начнем с первых и важных свойства textarea, а именно как задать размеры (высоту и ширину) текстового поля. Для этого есть два варианта. В первом варианте задаем cols (количество символов в строке) и rows (количество строк).
<textarea cols="30" rows="5"></textarea>
Или указывать размер в CSS свойствах:
textarea {
width : 450px;
height : 120px;
}
В первом случае мы точно знаем, сколько символов поместится в форме, во втором случае будет проблема, так как иногда буквы будут обрезаны.
Замещающий текст в HTML5
Существует новый атрибут в качестве части формы HTML5, называется placeholder. Это свойство textarea показывает текст приглушенно серым цветом (также работает для полей Input), который исчезает при наведении фокуса на поле или при вводе хотя бы одного символа в поле.
<textarea placeholder="Замещающий текст" cols="30" rows="5"></textarea>
Работает только в современных браузерах. Есть решение для всех браузеров, оно, конечно, не будет таким красивым. Для работы необходим JS.
<textarea cols="20" onblur="if(this.value=='') this.value='поиск...';" onfocus="if(this.value=='поиск...') this.value='';">поиск...</textarea>
Обратите внимание, что значение должно быть одинаковым, иначе не будет работать.
Как убрать свечение у textarea?
Все webkit-браузеры, Firefox 3.6, все 10-е оперы навешивают голубую рамку (каемку) вокруг textarea, когда они находятся в фокусе. Вы можете удалить ее из браузера следующим образом:
textarea {
outline : none;
}
Помните, что свечение textarea и полей для ввода текста является стандартом и важным элементом юзабилити сайта. Удаляя это оформление, вы создаете сложности для посетителя вашего сайта.
Как удалить маркер изменения размера у textarea?
Webkit-браузеры предлагают маленький элемент пользовательского интерфейса в правом нижнем углу textarea, при помощи которого пользователи могут изменить размеры текстового поля. Если по каким-либо причинам вы хотите удалить, то используем CSS:
textarea {
resize : none;
}
Nowrap — убрать переносы
Чтобы текст автоматически не переносился, в CSS можно использовать #whatever { white-space: nowrap}. Но это описание не работает с textarea. Если вы хотите иметь возможность не переносить слова на новую строку в textarea, пока вы не нажмете Enter (будет возникать горизонтальная полоса прокрутки, а не срабатывает), вам придется использовать атрибут wrap=»off».
<textarea wrap="off" cols="30" rows="5"></textarea>
Как убрать полосу прокрутки textarea в Internet Explorer?
IE старых версий ставят вертикальную прокрутку по умолчанию на всех textarea. Вы можете спрятать его через overflow: hidden, но тогда вы не получите никакой прокрутки везде, когда текста станет больше, чем высота поля. Слава богу, overflow:auto удалит прокрутки, но включит прокрутку автоматически в случае необходимости.
textarea {
overflow : auto;
}
Источник: Textarea tricks
Тег <textarea> произошел от английского выражения «text area» и означает «область текста». В HTML тег <textarea> применяется для создания текстового поля, где можно будет вводить текст с неограниченным количеством строк.
Тег <textarea> чем-то похож на тег <input>, но отличается от последнего тем, что его текстовое поле поддерживает форматирование. Например, если пользователь в <textarea> введет текст, выполняя переносы между строчками, тогда текст так и сохранится и в таком же формате передастся на сервер. Тег <input> такое сделать не может.
Проблема в том, что, когда вы обозначаете текстовое поле тегом <textarea>, само поле уже определяют высота и ширина, установленные по умолчанию. Однако эти размеры не всегда могут вас устраивать. Но благо есть способы их отредактировать.
Тег <textarea>: основные атрибуты, высота, размер, свойства
Тег <textarea> для собственной унификации может быть определен следующими атрибутами:
«accesskey» — добавляет сочетание кнопок для перехода по текстовой области;
«autofocus» — активирует фокус пользователя на текстовой области;
«cols» — определяет ширину области в текстовых символах;
«disabled» — используется для блокировки доступа к полю;
«form» — налаживает связь с формой по ее идентификатору;
«maxlength» — определяет максимальное количество символов, вмещаемых текстовым полем;
«name» — определяет название текстовой области, которое необходимо для идентификации этой области;
«placeholder» — определяет текст, который будет показан пользователю перед заполнением поля;
«readonly» — накладывает ограничение на редактирование текстовой области пользователем, таким образом, пользователь не сможет ничего вписать в эту область;
«required» — определяет, что текстовая область обязательна для заполнения;
«rows» — определяет высоту области количеством вмещаемых строк;
«tabindex» — определяет очередность перехода между элементами области, когда это делается с помощью клавиши «Tab»;
и др.
Тег <textarea>: высота и ширина
Высота и ширина текстовой области тега <textarea> — это самые часто используемые свойства области. Значения этих свойств по умолчанию не всегда могут устраивать веб-разработчика. Для того чтобы их изменить, можно воспользоваться двумя инструментами:
встроенными атрибутами «cols» и «rows»;
CSS-свойствами «width» и «height».
Атрибут «cols» определяет ширину текстовой области, которая используется для ввода текста пользователем. В его значении указывается какое-то число. Это число будет определять количество видимых символов в горизонтальной плоскости. Таким образом, вы сможете, используя этот атрибут, контролировать ширину текстового поля, которая будет зависеть от количества видимых символов.
Атрибут «rows» определяет высоту текстовой области. В его значении указывается какое-то число. Это число будет означать количество видимых строк текста в вертикальной плоскости. Таким образом, вы сможете, используя этот атрибут, контролировать высоту текстового поля, которая будет зависеть от количества строк.
Синтаксис примера, как определяется высота и ширина текстовой области тега таким способом:
<textarea cols=»70″ rows=»7″> Область для текста</textarea>
CSS-свойства «width» и «height» не нужно представлять, так как с их помощью определяются ширина и высота всех HTML-элементов, а не только текстовая область. Тем не менее несколько слов об этих свойствах скажем, например:
определить эти свойства можно тремя способами: в отдельном CSS-файле, в разделе «head» веб-страницы или в атрибутах;
в качестве единиц измерения размеров высоты и ширины можно использовать любые допустимые значения;
эти CSS-свойства будут иметь преимущества перед встроенными атрибутами тега, если одновременно использовать оба варианта обозначения размеров текстовой области.
Синтаксис такого способа выглядит так:
<textarea style=»width:400px; height:250px;»>Область для текста</textarea>
Заключение
Тег <textarea> определяет область для ввода текста. При этом размеры этого поля, такие как высота и ширина, можно определить самостоятельно несколькими способами.
textarea — что такое textarea, какие параметры есть у textarea, как переводится!? В общем разберем все, что касается поля ввода textarea.
Что такое textarea
Textarea это двойной тег в html.
Как обозначается textarea!?
В отличии от одинарного тега input, то textarea – это двойной тег…
Пример тега textarea
<textarea></textarea>
Результат вывода тега textarea
Как переводится textarea
Textarea — переводится, как Text — текст, area — поле, если соединить вместе, то Textarea можно перевести, как поле для текста…
Тип textarea type=»text»
Для textarea – указывать тип поля text(type=»text») не нужно!
Ширина и высота textarea
Ширину и высоту для textarea можно выразить несколькими способами и типами.
1). Использование в высоте и ширине textarea cols и rows
<textarea rows=»число» cols=»число»></textarea>
Обязательный атрибут для textarea rows + cols
Обязателен в HTML4, не обязателен в HTML5.
cols – столбец определяемый шириной моноширного(все буквы одной ширины) шрифта по умолчанию, rows — количество строк…
Значения
Любое целое положительное число.
Пример textarea rows + cols
<textarea rows=»5″ cols=»50″></textarea>
Результат:
2). Использование в высоте и ширине textarea пиксели
Не стану все меры расписывать(использую очень-очень редко): «em, vw, vh, vmin, vmax и функция calc» приведем пример использования пикселей в качестве единицы измерения:
<textarea style=»width: 500px; height: 50px;»></textarea>
Пример ширина и высота textarea в пикселях:
3). Использование в высоте и ширине textarea процентов
Использование в качестве единицы измерения процентов… поставим ширину 60% высоту 50%
Код:
<textarea style=»width: 100%; height: 50%;»></textarea>
Пример ширина и высота textarea в процентах:
Вопрос на засыпку! Почему в выше приведенном примере высота textarea в процентах никак не сработала!?
Вывод можете из ниже приведенного кода:
<div style=» width: 100%; height: 200px; border:1px solid red»>
<textarea style=»width: 60%; height: 50%;»></textarea>
</div>
Пример 2 ширина и высота textarea в процентах:
Но если мы помести наш textarea в какой-то другой блок с явно выставленными размерами, то:
4). Растянуть textarea на всю ширину блока/страницы
Как растянуть textarea на всю ширину блока, страницы!? Если как мы выяснили, если ничего не препятствует растягиванию textarea на всю ширину блока/страницы, то просто ставим в ширину textarea 100%.
Пример textarea(<textarea style=»width: 100%;»></textarea>) с шириной на всю ширину блока/страницы
5). Растянуть textarea на всю высоту блока/страницы
На эту тему делал отдельную страницу
Как сделать подсказку внутри textarea
Для того, чтобы сделать подсказку внутри textarea нам потребуется атрибут placeholder, вставляем в первый тег textarea placeholder с текстом…
<textarea style=»width: 100%; height: 50px;» placeholder=»Подсказка внутри textarea»></textarea>
Подсказка внутри textarea пример:
Как убрать обводку textarea при нажатии/вводе
Для того, чтобы удалить обводку, при нажатии вводе данных в поле ввода textarea поставьте в стилях css, либо внутри поля поставьте свойство : outline:none;
<textarea style=»width: 100%; height: 50px; outline:none;» placeholder=»Подсказка внутри textarea»></textarea>
Пример удаления обводки в textarea
Как запретить растягивание textarea
Иногда требуется запретить растягивание textarea.
Как запретить растягивание по горизонтали textarea
Для того, чтобы запретить растягивание по горизонтали нужно указать, как растягивание возможно, если мы введем в стили resize: vertical;, то растягиваться textarea будет только по вертикали…
<textarea style=»width: 100%; height: 50px; outline:none; resize: vertical;» placeholder=»Как запретить растягивание по горизонтали»></textarea>
Пример textarea с запретом растягивания по горизонтали!
Как запретить растягивание по вертикали textarea
Для того, чтобы запретить растягивание по вертикали нужно выставить в каком направлении растягивать можно! Ставим в стили textarea resize: horizontal;
Пример textarea с запретом растягивания по вертикали!
Как запретить растягивание по всем направлениям textarea
Для того, чтобы запретить растягивание по всем направлениям, в стилях textarea ставим outline:none;
Пример textarea с запретом растягивания ппо всем направлениям textarea !
Как поставить textarea посередине страницы, блока
Для того, чтобы поставить textarea посередине, нужно в стили textarea добавить… margin: auto; display: block;
<textarea style=»width: 300px; height: 50px; outline:none; resize: none; margin: auto; display: block;» placeholder=»Как поставить textarea посередине страницы, блока»></textarea>
Пример как расположить textarea посередине страницы, блока
Как сделать в textarea внутренние отступы
Для того, чтобы сделать внутренние отступы в textarea нужно добавить в стили textarea padding: числоpx;, давайте на примере textarea сделаем внутренний отступ 20px
<textarea style=»width: 400px; height: 50px; outline:none; resize: none; margin: auto; display: block; padding: 20px;» placeholder=»Как сделать в textarea внутренние отступы»></textarea>
Пример textarea с внутренними отступами 20px
Если вам требуется сделать отступ с какой-то одной из четырех сторон, то вместо единичного значения в padding ставим 4 значения и указываем, с какой стороны вам нужно сделать внутренний отступ!
padding: верхpx справаpx снизуpx слеваpx;
Если отступ с какой-то стороны не требуется ставим 0px
Как сделать в textarea наружные отступы
Для того, чтобы продемонстрировать наружные отступы, нам потребуется наш textarea поместить во внутрь другого блока… теперь уже данный блок поставим посередине и для div поставим display: table;, чтобы он не растягивался на всю ширину…
<div style=»border: 1px solid red; display: table; margin: auto;»>
<textarea style=»width: 400px; height: 50px;resize: none; margin: 20px;» placeholder=»Как сделать в textarea наружные отступы»></textarea>
</div>
Пример как сделать в textarea наружные отступы
По аналогии с padding :
Если вам требуется сделать отступ с какой-то одной из четырех сторон, то вместо единичного значения в margin 4 значения и указываем, с какой стороны вам нужно сделать наружный отступ!
margin: верхpx справаpx снизуpx слеваpx;
Если отступ с какой-то стороны не требуется ставим 0px
Дополнительные вопросы о textarea
Иногда требуется короткий ответ на поставленный вопрос, который нашелся после анализа поисковых запросов…
Нужно ли указывать тип у textarea
Вопрос: «Нужно ли указывать тип у textarea«.
Ответ:
Нет.