Я хотел бы создать единый класс для установки ширины как текста, так и поля ввода текста, чтобы любая платформа печатала как предопределенные, так и введенные пользователем цифры. До сих пор кажется, что нет способа сделать так, чтобы текстовое поле ввода и ширина шрифта были одинаковыми на всех платформах?
Введите ширину текстового поля и ширину шрифта
- Вы должны быть более конкретными ... какова ширина шрифта? какие платформы? что вы подразумеваете под печатью как предопределенных, так и введенных пользователем цифр? 24.06.2014
Ответы:
Шрифты имеют немного разную ширину в разных ОС. Лучшее, что вы можете сделать, это выбрать универсальный шрифт с фиксированной шириной, чтобы вы использовали один и тот же (ну, очень похожий) шрифт в каждой системе. Затем установите ширину текстового поля с помощью css width: XXXpx;
Я бы начал с этого шрифта:
http://www.google.com/fonts#UsePlace%3ause/Collection%3aDroid+Sans+Mono
(не уверен, почему эта ссылка перенаправляется. Попробуйте скопировать/вставить ее)
Это позволит вам довольно близко.
Есть несколько причин, по которым строка цифр в обычном содержимом может иметь ширину, отличную от строки цифр, как значение поля ввода текста: начертания шрифта могут отличаться, размеры шрифта могут отличаться, а поле ввода может иметь некоторую ширину. отступы, некоторые поля или границы по умолчанию. Чтобы справиться с этим, задайте эти свойства явно. Пример:
<style>
span, input {
font-family: Arial, sans-serif;
font-size: 100%;
padding: 0;
margin: 0;
border: none;
}
</style>
<span>1234567890</span><br>
<input value=1234567890>
После этого значение в поле ввода будет выглядеть как обычное содержимое, а это серьезная проблема с удобством использования. Чтобы справиться с этим, установите границу одинаковой ширины для обоих элементов, но прозрачную для span
:
<style>
span, input {
font-family: Arial, sans-serif;
font-size: 100%;
padding: 0;
margin: 0;
border-width: 1px;
}
span {
border-style: solid;
border-color: transparent;
}
</style>
(Поскольку значение transparent
как border-color
не поддерживается повсеместно, может быть безопаснее использовать определенное значение цвета, которое соответствует цвету фона окружающего элемента.)