Подтвердить что ты не робот

HTML5, Placeholder, высоту строки в Webkit

У меня есть поле ввода:

<input type="text" placeholder="whatever">

со стилями:

input {
    margin: 0;
    padding: 0 6px;
    font-size: 19px;
    line-height: 19px;
    height: 36px;
    width: 255px;
}

Проблема заключается в том, что высота строки не вступает в силу для placeholder в webkit CHROME. поэтому текст в поле ввода выравнивается уродливым способом. Кто-нибудь еще видел это и теперь, как его исправить?

Спасибо

4b9b3361

Ответ 1

Глядя на ваши теги, я предполагаю, что вы пишете что-то вроде...

<input type="text" placeholder="whatever">

К сожалению, Chrome связывает ваши руки, когда дело доходит до стилизации заполнитель, селектор выглядит так:

input::-webkit-input-placeholder {}

Вы можете найти варианты стиля, gotchas и поддерживаемые браузеры в Стилирование места размещения HTML

Ответ 2

Заполнители полей ввода, похоже, не любят значения высоты строки пикселя, но это будет вертикально центрировать его на входе:

::-webkit-input-placeholder { line-height: normal; }

Ответ 3

Похоже, что удаление вашего объявления высоты строки полностью работает. Он работал у меня в FF7, Chrome15 и Safari 5.1. Также хорошо выглядел в IE9 и FF3.6, но не выглядит хорошо в IE8.

Ответ 4

Я не думаю, что могу полностью воспроизвести вашу проблему, но, возможно, вы можете исправить ее, используя padding: 7px 6px;. Для этого нужно надеяться, что верхнее и нижнее дополнение будет равно 7px, что в значительной степени выполняет аналогичную работу line-height. С разными размерами (ширина/размер шрифта) вы должны иметь возможность выбрать подходящее дополнение, вычислив (height - fontsize) / 2, возможно, дать или взять пиксель или два для совершенства.