Размер текстового поля html

Как установить размер текстового поля HTML?

12 ответов

107 Решение Rowno [2010-01-24 04:27:00]

В зависимости от того, что вы подразумеваете под "текстовым полем".

Имейте в виду, что размер текстового поля является "жертвой" reset таблиц стилей не включают теги в своих reset, так что это то, что нужно иметь в виду.

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

Я добавил 1 пиксельное дополнение, потому что некоторые браузеры, как правило, делают текстовое поле слишком забитым, если заполнение равно 0px. В зависимости от вашего дизайна вы можете захотеть добавить еще больше дополнений, но очень рекомендую вам сами определять дополнение, иначе вы оставите его в разных браузерах, чтобы сами решить. Для большей согласованности между браузерами вы также должны определить границу самостоятельно.

10 tcao [2012-02-27 03:57:00]

Код вашего текста:

Итак, сначала вы выбираете свой элемент с атрибутами (смотрите первый пример) или классы (смотрите последний пример). Позже вы назначаете значения высоты и ширины вашему элементу.

Internet Explorer Chrome Opera Safari Firefox Android iOS
3.0+ 1.0+ 4.0+ 1.0+ 1.0+ 1.0+ 1.0+

Задача

Задать ширину текстового поля в пикселах через стили.

Решение

Ширина текстового поля, создаваемого с помощью тега , определяется стилевым свойством width , значение которого можно устанавливать в пикселах, процентах или других допустимых единицах, как показано в примере 1.

Пример 1. Ширина поля

HTML5 CSS 2.1 IE Cr Op Sa Fx

Результат данного примера показан ниже.

Рис. 1. Текстовое поле с фиксированной шириной

В данном примере задана ширина поля в пикселах путем добавления свойства width к идентификатору поля user .

Читайте также  Почему отключается телефон при зарядке 50 процентов

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

Ответ достаточно прост и решается следующим методом:

Для начала, надо понять, что происходит с input-элементом при выставлении его ширины в 100% и добавления слева и справа отступов для текста.
Согласно стандартам CSS (а в данном случае их поддерживают все браузеры), результирующая ширина элемента input, при отсутствии границ (border) и внешних отступов полей (margin), будет равна:

w >
Т.е. она будет больше на величину внутренних горизонтальных отступов, и получившийся при этом элемент будет выступать за отведенную для него область.
Чтобы итоговая ширина была равна 100%, можно использовать систему из двух контейнеров:

Каждый контейнер выполняет свою роль:

  1. input-width – этот контейнер задает результирующую ширину текстового поля;
  2. width-setter – этот контейнер задает ширину input-элемента за вычетом горизонтальных внутренних отступов.

Вот набор стилей, который разъяснит эту конструкцию:

Из стилей получается, что элемент input-width задает ширину, которую должно было занимать текстовое поле. Элемент width-setter задает ширину input-элемента меньше на горизонтальные внутренние отступы. Стоит заметить, что его внешние отступы поля (margin) должны быть равны padding-left и padding-right для элемента input.
При таком описании input-элемент будет выступать из width-setter на величину своих горизонтальных отступов (padding), а в IE6 — растягивать всех «родителей» под собственные размеры (пример 1). Также в браузерах IE6-7 input-элемент имеет отступы, которые нельзя убрать, обнуляя свойство margin. Чтобы изменить такое расположение, надо сдвинуть текстовое поле влево, на размер левого отступа (padding-left). Можно это осуществить через position:relative, но при этом в IE6 останется растянутым под ширину текстового поля input контейнер width-setter. Для устранения растяжения надо сделать так, чтобы элемент не мог влиять на размеры своего родителя, задав, например, ему position:absolute.
Опишем по-новому исходный набор контейнеров:

Читайте также  Почему остановлено приложение гугл плей

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

Примечание. Приведенный метод реализации резинового текстового поля проверен на Doctype: HTML 4.01, XHTML 1.0 и HTML (HTML 5) — и имеет кроссбраузерность: IE6-8, Opera 9+, FF 2.0+, Safary 2.0+, Chrome. При отсутствии Doctype кроссбраузерная работоспособность метода не гарантирована.

Ссылка на основную публикацию
Adblock
detector