Кратко
СкопированоПсевдокласс :placeholder
выбирает на странице все <input>
или <textarea>
, у которых показывается подсказка (плейсхолдер).
Пример
Скопировано<input placeholder="Введите ваше имя">
<input placeholder="Введите ваше имя">
input { border: 1px solid black;}input:placeholder-shown { border-color: teal;}
input { border: 1px solid black; } input:placeholder-shown { border-color: teal; }
Как понять
СкопированоЕсли полю ввода задан атрибут placeholder
с каким-то значением, то внутри поля будет показана текстовая подсказка. Она пропадёт, если пользователь введёт хотя бы один символ. По сути псевдокласс :placeholder
будет применять стили к пустым полям ввода.
Как пишется
СкопированоДвоеточие и ключевое слово placeholder
.
:placeholder-shown { color: teal;}
:placeholder-shown { color: teal; }
Подсказки
Скопировано💡 Псевдокласс :placeholder
— это не то же самое, что псевдоэлемент :
. Псевдокласс применит стили к самому полю ввода. А стили, применённые к псевдоэлементу :
, изменят внешний вид текста-подсказки, но никак не затронут само поле ввода.
На практике
Скопированосоветует Скопировано
🛠 Этот псевдокласс можно использовать совместно с псевдоклассом :invalid
для стилизации некорректно заполненных полей ввода.
🛠 Иногда длина подсказки больше ширины текстового поля. В результате она некрасиво обрезается. Можно использовать псевдокласс :placeholder
, чтобы сделать обрезку чуть симпатичнее:
<p>Обычная обрезка</p><input type="text" placeholder="Можно искать по номеру телефона, фамилии или email"><p>Красивая обрезка</p><input type="text" placeholder="Можно искать по номеру телефона, фамилии или email" class="ellipsis">
<p>Обычная обрезка</p> <input type="text" placeholder="Можно искать по номеру телефона, фамилии или email"> <p>Красивая обрезка</p> <input type="text" placeholder="Можно искать по номеру телефона, фамилии или email" class="ellipsis">
.ellipsis:placeholder-shown { text-overflow: ellipsis;}
.ellipsis:placeholder-shown { text-overflow: ellipsis; }
советует Скопировано
🛠 Псевдокласс :placeholder
позволяет реализовать всплывающую подпись при фокусе в поле формы без использования JavaScript.