Html input textarea: Тег | htmlbook.ru

Кросбраузерные input и textarea — Xiper

Автор: Евгений Рыжков Дата публикации:

Задача

Задать оформление для полей input[type=»text/password»] и textarea максимально одинаковое во всех популярных браузерах.

Теория

По умолчанию разные браузеры по разному отображают текстовые поля форм — различны:

  • внутренние отступы (padding), сброс отступов через универсальный селектор тут не помогает
  • шрифт (только для <textarea>) и его размер (хорошо видно в Safari)
  • горизонтальное выравнивание текста (текст не на одной горизонтальной линии) в полях и рядом стоящих элементах (например, <label>)
поля в FF 3.5

поля в IE 6

поля в Opera 9.6

поля в Safari 3.2

Разница становится заметней, когда привязываем необычное оформление полей.

Решение

Явно задаем для input[type=»text»], input[type=»password»] и textarea размер шрифта (font-size), внутренние отступы (padding). Для textarea так же указываем имя шрифта (font-family).

Заметка: для более предсказуемого поведения полей так же можно задать оформление границ (border), но это подпортит вид полей в некоторых браузерах (например, Opera поле станет прямоугольным, без скруглений углов) — используем при необходимости.


input[type="text"], input[type="password"] {
font-size: 100%;
padding: 0;
}
textarea {
font-size: 100%;
padding: 0;
font-family: arial;
}

Код для IE 6, который не понимает в CSS атрибуты (добавляем в ie6.css и подключаем к странице условными комментариями):


.formText {
font-size: 100%;
padding: 0;
}
input {
z-index: expression(
runtimeStyle.zIndex = 1,
type == "text" ? (className += " formText") : 0,
type == "password" ? (className += " formText") : 0
)
}

Update: Дополнительные проблемы могут возникнуть, если полю нужно указать высоту и/или верхний внутренний отступ (padding-top).

Для примера сделаем поле, которое должно быть высотой 24px, шириной 200px и отступом от верхней границы 3px:


input {
height: 24px;
width: 200px;
border: 1px solid #0000CC;
background: #99CCFF;
font-size: 12px;
padding: 3px 0 0 2px;
}

В итоге видим, что в разных браузерах текст в поле выравнивается по разному плюс размеры самого поля отличается:

FF 3.5opera 10ie6

На размерах поля останавливаться не будем — нужно вспомнить просто о блочной модели и том, что ие6 ее не так понимает. А вот чтобы выровнять текст, нужно следующее:

  • указать высоту поля
  • явно указать верхний и нижний отступы (padding-top / padding-bottom)
  • ну и не забыть явно указать размер шрифта (font-size)
  • задать высоту строки (line-height) равную высоте поля (height) — update by Константин

input {
height: 16px; /* высота с учетом бордюр, внутренних отступов */
width: 196px; /* ширина с учетом бордюр, внутренних отступов */
border: 1px solid #0000CC;
background: #99CCFF;
font-size: 12px;
padding: 3px 0 3px 2px; /* обязательно наличие как верхнего так и нижнего отступа */
font-family: Arial, Helvetica, sans-serif;
line-height: 16px; /* должно быть равно height, пригодится как минимум для ie6  */
}
* html input {
/* 
  update by Nikita Zhukov
  хак нужен только если IE6 работает в режиме обратной совместимости
  (в таком режиме он работает например, если используется xml-декларация)
*/
height: 24px;
width: 200px;
}

Результат.

Проверено в :

  • IE 6-8
  • Firefox 2-3
  • Opera 9.5 — 10
  • Safari 4

Update так же следует упомянуть, что поля в Safari и Chrome имеют по умолчанию внешние отступы (похоже на резервирование места для подсветки поля в фокусе). Иногда это мешает, например, когда требуется выровнять поля разных типов по одной линии (пример как это должно выглядеть можно увидеть в статье «Убираем отступы у checkbox и radio»). Чтобы было все тип-топ, достаточно обнулить отступы для этих полей.

Textarea | HTML | CodeBasics

Часто мы хотим дать пользователю возможность набрать не одну строчку текста, а сразу несколько. Например, если пользователь хочет оставить отзыв. Для этого используется элемент <textarea>, позволяющий вводить несколько строчек текста.

Оставьте свой отзыв

<form>
  <textarea></textarea>
</form>

Заметьте, что <textarea> является парным тегом.

Это означает, что вы можете вложить в него текст по умолчанию, чтобы пользователь быстрее понял, что ему необходимо ввести.

По умолчанию высота и ширина <textarea> зависит от настроек браузера. Это значит, что в разных браузерах высота и ширина может меняться. Для того, чтобы установить одинаковое значение, используются атрибуты rows и cols, означающие количество строк и столбцов соответственно.

<form>
  <textarea rows="5" cols="30">textarea с 5 строками и 30 столбцами</textarea>
</form>

textarea с 5 строками и 30 столбцами

Создайте форму, у которой файл с обработчиком данных лежит по адресу /people. Внутри формы создайте поле для многострочного ввода. Количество строк для ввода: 4. Количество столбцов: 30

Упражнение не проходит проверку — что делать? 😶

Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:

  • Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет 🤨

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

Мой код отличается от решения учителя 🤔

Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.

В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Прочитал урок — ничего не понятно 🙄

Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.

Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.

←Предыдущий

Следующий→

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics

Более 1 строки в

спросил

10 лет, 3 месяца назад

Изменено 9 месяцев назад

Просмотрено 360 тысяч раз

У меня возникли проблемы с тем, чтобы мой имел более 1 строки,

Я попытался добавить свойства в html, как вы сделали бы с обычным вот так:

Я даже пытался сделать это в CSS, но не получилось. Я искал по всему Интернету решение, но нигде не могу найти тему, касающуюся моей точной проблемы.

Текстовые области, с которыми я столкнулся, находятся на этом веб-сайте: Vilduhelst

Когда вы нажмете кнопку «Lav dit eget dilemma», они появятся.

Я ищу решение для HTML или CSS.

  • ввод
  • текстовое поле
  • строк
  • строк

4

Почему бы не использовать тег

5

Хотя игнорирует атрибут rows , вы можете воспользоваться тем, что

Конечно,

Основное различие между текстовым полем и текстовым полем ( ) заключается в том, что текстовое поле состоит только из одной строки, тогда как текстовое поле обычно состоит из нескольких строк.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *