У меня есть следующий элемент ввода (я намеренно пропустил атрибуты, которые не были необходимы для примера):
<input type="text" style="display: block; height: 40px; font-size: 14px; line-height: 40px"/>
В Chrome и Internet Explorer (возможно, тоже Opera) любой текст внутри ввода будет центрирован по вертикали. Однако Firefox, похоже, игнорирует эту декларацию. Вместо этого установка display: inline-block;
или использование vertical-align: middle;
не имеет никакого эффекта в Firefox.
Я также попытался установить верхний и нижний отступы на 13px
, а высоту на 14px
, что (в сочетании с размером шрифта) приведет к росту элемента 40px
. Это работает как ожидалось; за исключением тех символов с хвостами (как g , q , j и т. д.), обрезанных внизу.
Я ищу кросс-браузерное решение для вертикального выравнивания текста в поле ввода с фиксированной высотой. Элемент ввода будет иметь свои собственные стили наведения и фокуса, поэтому имитация центрирования путем позиционирования самого элемента по вертикали в пространстве высотой 40px
на самом деле не вариант.
Приветствия