Кратко
СкопированоАтрибутом size
можно задать ширину поля <input>
в символах или количество видимых опций списка в случае <select>
.
Пример
СкопированоЗададим ширину <input>
с помощью size
. Поле ввода растянется так, чтобы в видимую часть поместилось не меньше 9 символов моноширинного шрифта.
<label for="input-field">Поле ввода:</label><input id="input-field" size="9" placeholder="123456789">
<label for="input-field">Поле ввода:</label> <input id="input-field" size="9" placeholder="123456789">
В примере ниже зададим size
для <select>
. Число 3 определит количество видимых параметров списка.
<label for="city-select">Ваш город:</label><select id="city-select" size="3"> <option value="novosibirsk">Калининград</option> <option value="petrozavodsk">Петрозаводск</option> <option value="petrozavodsk">Зеленоград</option> <option value="petersburg">Санкт-Петербург</option> <option value="samara">Самара</option> <option value="perm">Пермь</option></select>
<label for="city-select">Ваш город:</label> <select id="city-select" size="3"> <option value="novosibirsk">Калининград</option> <option value="petrozavodsk">Петрозаводск</option> <option value="petrozavodsk">Зеленоград</option> <option value="petersburg">Санкт-Петербург</option> <option value="samara">Самара</option> <option value="perm">Пермь</option> </select>
Поскольку size
, видимая часть списка содержит только 3 города. Чтобы изучить остальные, нужно воспользоваться прокруткой.
Как понять
СкопированоВ случае <input>
задать ширину с помощью атрибута size
можно не для всех типов ввода. Подойдут лишь те, что принимают текстовые данные:
type
= "text" type
= "password" type
= "email" type
= "url" type
= "tel" type
= "search"
Если шрифт будет не моноширинный, выставить ширину для <input>
с помощью атрибута size
окажется затруднительно — внутрь поля ввода может поместиться непредсказуемое число символов.
body { /* Подключаем немоноширинный шрифт */ font-family: "Roboto", sans-serif;}input { font-family: inherit;}
body { /* Подключаем немоноширинный шрифт */ font-family: "Roboto", sans-serif; } input { font-family: inherit; }
<label for="input-field">Поле ввода:</label><input id="input-field" size="3" placeholder="123456789">
<label for="input-field">Поле ввода:</label> <input id="input-field" size="3" placeholder="123456789">
Как видно из примера, в <input>
помещается куда больше трёх символов, хотя атрибут size
задан. Причина в нашем шрифте Roboto
, — он не моноширинный, а значит для <input>
каждый символ занимает немного разное пространство, и ему очень тяжело определиться с размерами 🤕
Подсказки
Скопировано💡 Если поставить в теге <select>
атрибут multiple
и задать size
, из списка получится обыкновенная «прокрутка».
💡 Хотя атрибут size
выглядит удобным, использовать его для <input>
следует с осторожностью. Порой даже с моноширинными шрифтами он может сделать что-то странное, растягивая поле ввода на неожиданное число символов.