Почему некорректно работает line-height в input?
Есть простой инпут:
<input class="form__input js-email-input" id="email-input" type="email" name="email" placeholder="E-mail" required=""> |
<input class="form__input js-email-input" id="email-input" type="email" name="email" placeholder="E-mail" required="">
Для него заданы CSS-свойства:
.form__input { border: 1px solid #AEB1C8; border-radius: 8px; padding: 13px; font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 16px; line-height: 1; width: 100%; background-color: #E6E8F1; color: #444188; outline: none; } |
.form__input { border: 1px solid #AEB1C8; border-radius: 8px; padding: 13px; font-family: 'Montserrat', sans-serif; font-weight: 400; font-size: 16px; line-height: 1; width: 100%; background-color: #E6E8F1; color: #444188; outline: none; }
Свойство line-height работает некорректно. Если я задаю line-height = 16px, то высота самого поля составляет 19px, но если я задам line-height = 18px, то высота инпута уже будет 18px и свойство срабатывает правильно. В чем проблема? Почему я не могу задать line-height = 1? Все значения более 18px срабатывают корректно.
Дополнительно:
Минимальный line-height в текстовых полях 1.15 или типа того. И может отличаться в разных браузерах.
О каком браузере речь у вас, вообще неизвестно.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Проблема с корректным отображением line-height в input возникает из-за того, что большинство браузеров не позволяют изменять line-height внутри input элемента. Это связано с тем, что line-height непосредственно связан с высотой текста внутри элемента, а в случае с input это значение устанавливается браузером и не может быть изменено с помощью CSS.
Однако, есть несколько способов обойти эту проблему. Один из них - использовать псевдоэлемент ::placeholder для задания line-height. Например, вы можете добавить следующий CSS код:
input::placeholder { line-height: 2; }
Еще один способ - использовать псевдоэлемент ::before или ::after для создания эффекта line-height. Например:
input { position: relative; } input::before { content: ""; display: block; height: 10px; /* задайте нужную высоту line-height */ }
Также, вы можете попробовать использовать другие способы стилизации input элемента, например задавать padding или font-size, чтобы добиться нужного отображения текста внутри input.
Надеюсь, эти способы помогут вам решить проблему с line-height в input элементе. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.