Intereting Posts
Как почти стандартное изменение режима меняет рентабельность из режима стандартов? Как добавить значение по умолчанию для html ? Получить ширину и высоту экрана и высоту div jquery Преобразование RTF-файла в HTML в Objective C Преобразование HTML в PDF (не PDF в HTML) с использованием PHP Приостановка анимации CSS с помощью javascript, а также переход в определенное место в анимации Как определить, когда изменяется источник iframe? Bootstrap 3 вкладки с двухстрочными заголовками Разница между скриптами `script` и` link as = “script” Могу ли я запускать HTML-файлы непосредственно из GitHub вместо того, чтобы просто просматривать их источник? Закрыть меню гамбургера после события клика Добавление опций к выбору и выбору одного в Internet Explorer Элемент переполнения элементов гиперссылки Flexbox отключается сверху Горизонтальный CSS – поле ввода 100% и маржа для кнопки margin: auto не работает в IE7

Атрибут размера для поля ввода не выполняется

Взято непосредственно из W3Schools :

Определение и использование Атрибут size определяет ширину поля ввода.

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

Так..

Если это так, то почему мое поле достаточно велико, чтобы отобразить 5 CAPTIAL MMMMM?

Такая же «ошибочная» информация указана в спецификации HTML4, спецификации HTML5, Sitepoint, Mozilla Developer Network и Microsoft MSDN-библиотеке. Так что это не только вина W3Schools.

Во всяком случае, в то время как в спецификациях говорят, что атрибутом размера должно быть количество видимых символов, большинство веб-браузеров решили использовать количество единиц em, что означает ширину символа капитала M.

Чтобы указать ширину точно в пикселях или любой выбранной вами единице, используйте свойство ширины CSS.

Чтобы ответить на ваш обновленный вопрос: это ширина капитала M в размере шрифта по умолчанию, применяемая стилем CSS в текстовое поле, но размер шрифта текста внутри текстового поля обычно меньше.

Хотите сделать набор символов в коробке? Вам придется переключиться на шрифт с фиксированной шириной.

Проблема в том, что атрибут size = x не находится в пикселях … скорее, он обозначает очень приблизительный размер, который должен содержать элемент для хранения символов x . Так, например, должен отображать поле ввода, которое может содержать 2 символа.

К сожалению, это зависит от шрифта и шрифта (например, ширины шрифта переменной ширины), и поэтому вы, скорее всего, заметите, что установка атрибута размера на 2 фактически сделает поле ввода размером 5 или что-то в этом роде. Если вы используете monoширинный шрифт, size=2 должен отображать текстовое поле, которое может содержать ровно 2 символа … или, по крайней мере, близко.

Однако, чтобы установить ширину элемента в пикселях, ems и т. Д., Попробуйте использовать свойство CSS width :

  

В приведенном выше примере ширина ввода будет шириной ровно 20 пикселей, за исключением границ и / или заполнения.

Вы не можете воспринимать это буквально, поскольку это невозможно.

Ширина элемента основывается на атрибуте size и используемом размере шрифта, но он точно не соответствует этому количеству символов, потому что это невозможно.

Все символы не имеют одинаковой ширины, поэтому символы llll будут легко вписываться в вход с size="4" , но символы mmmm не будут.

Кроме того, добавлено дополнительное пространство, поэтому вход с size="2" не будет в два раза шире ввода с size="1" .

То, что используется как средняя ширина символа, может зависеть от браузера. Я тестировал в Firefox, и я не нашел ни одного символа, который точно соответствует, но символ * очень хорошо соответствует этой средней ширине.

Ответ заключается в том, что, если не использовать шрифт с фиксированной шириной, браузер не может точно определить ширину двух символов. Я думаю, что ваше поле с двумя символами, вероятно, соответствовало бы двум «m» s бок о бок.

Что касается корректности w3schools, то из W3C:

size = cdata [CN] Этот атрибут сообщает пользовательскому агенту начальную ширину элемента управления. Ширина указана в пикселях, за исключением случаев, когда атрибут type имеет значение «текст» или «пароль». В этом случае его значение относится к числу (целых) символов.

http://www.w3.org/TR/html4/interact/forms.html#edef-INPUT