Кратко
СкопированоПсевдокласс :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.