CSS текстовый отступ в поле ввода не обновляет позицию каретки, пока вы не начнете печатать

Когда я использую свойство text-идент в CSS, я ожидаю увидеть, когда вы сфокусируете внимание на области ввода текста, иконка курсора / курсор будет отображаться с отступом. Но кажется, что он не имеет отступа, пока вы не введете первый символ. Единственный выход - использовать левый отступ для элемента ввода, но я хочу избежать использования отступов, потому что я также устанавливаю ширину и не хочу реализовывать исправление заполнения для IE, используя электронную таблицу, специфичную для IE.

Эта ошибка происходит в Safari.

Ниже приведены изображения того, о чем я говорю.




На фокусе, когда нет текста, идентификатор текста не влияет на положение каретки:

На фокусе


Когда вы начинаете вводить текст, он корректно отступает:

Когда вы начнете печатать


После того, как вы напечатаете, а затем удалите то, что набрали, вначале отобразится то, что я хочу, чтобы оно делало с самого начала (отступ каретки).

После удаления того, что вы ввели

HTML:

<input type="text" />

CSS:

input   { text-indent: 10px; }

2 ответа

Решение

Это подтвержденная ошибка WebKit, которая недавно была устранена https://bugs.webkit.org/show_bug.cgi?id=82688

Ваша версия Safari может быть слишком старой, чтобы это исправление было включено.

Вместо этого используйте padding-left.

<style>
::-webkit-input-placeholder {text-indent:10px!important;}
:-moz-placeholder { text-indent:10px!important;}
::-moz-placeholder {text-indent:10px!important;}
:-ms-input-placeholder {text-indent:10px!important;}
</style>

Это позволяет сделать отступ в текстовом отступе, который, как мне кажется, был исправлен в более новых версиях webkit / safari. Однако это исправление должно помочь вам с более старыми версиями.

Спасибо

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