Вертикально центрировать местозаполнитель ввода в Chrome

Любая идея, как вертикально центрировать этот заполнитель поля ввода в Chrome? Размеры шрифта ввода и заполнителя намеренно отличаются. Заполнитель ввода в Firefox и Safari отображается вертикально по центру, но отображается ниже Chrome.

Вот пример, в котором вы видите, что центрирование не работает в Chrome.

<input class = "input" placeholder = "vertical center"/>

.input {
    font-size: 14px;

    &::placeholder {
        font-size: 8px;
        text-align: left;
        color: green;

        // transform-origin: 0% 50%;
        // transform: translate3d(0, -2px, 0);
    }
}

Вот codepen, показывающий проблему: https://codepen.io/illusionfactory/pen/xxJZrYp?editors=1111

Я пробовал ответы из других постов, например, преобразование заполнителя, но, похоже, это не сработало.

Перевод перемещает его, но тогда выравнивание не во всех браузерах. Любая помощь приветствуется.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
72
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

вы можете попробовать с css flexbox.

    &::placeholder {
margin: 0;
font-size: 11px;
display:flex;
align-items:center;
justify-content:center; 
color: green;

}

если вы хотите узнать о css flex box, пожалуйста, обратитесь это это может вам помочь.

Ответ принят как подходящий

input {
  padding: 12px 2px;
  font-size: 19px;
}

input::-webkit-input-placeholder {
  color: green;
  font-size: 8px;
  position: relative;
  top: -4px;
}
<input placeholder = "Vertical Center"/>

размеры шрифта не могут быть удалены, поэтому, к сожалению, это не работает

1192805 28.12.2022 17:30

@ 1192805 Добавлен размер шрифта

Eric Fortis 28.12.2022 22:16

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

1192805 29.12.2022 00:22

@ 1192805 В этом случае вы можете использовать position: relative и отрегулировать top, пока он не окажется в центре. Смотрите редактирование.

Eric Fortis 29.12.2022 02:42

пробовал это раньше, но это заставляет заполнитель перемещаться и в сафари, который тогда не центрируется. в идеале все три браузера отображали бы его вертикально по центру

1192805 29.12.2022 03:26

@ 1192805 Понятно, единственный вариант, который я вижу в этом случае, — создать собственный заполнитель, перекрывая элемент прямо поверх ввода. И скрыть его, когда ввод сфокусирован. Если бы текстовый ввод мог иметь прозрачный фон, я бы поместил ввод сверху, что было бы проще реализовать.

Eric Fortis 29.12.2022 03:31

Другие вопросы по теме